Skip to content

PDJB-697: remove journey framework#1119

Merged
TomHanmer29 merged 12 commits intomainfrom
chore/PDJB-697-remove-journey-framework
Mar 25, 2026
Merged

PDJB-697: remove journey framework#1119
TomHanmer29 merged 12 commits intomainfrom
chore/PDJB-697-remove-journey-framework

Conversation

@TomHanmer29
Copy link
Copy Markdown
Contributor

@TomHanmer29 TomHanmer29 commented Mar 20, 2026

Ticket number

PDJB-697

Goal of change

Decommission the old journey framework

Description of main change(s)

Deletes all files in the old "forms" folder, and fixes the remaining functionality in the codebase.

Anything you'd like to highlight to the reviewer?

There's a few changes I'm unsure about which I will flag in comments.

Checklist

Delete any that are not applicable, and add explanation below for any that are applicable but haven't been done

  • Test suite has been run in full locally and is passing
  • QA instructions have been added to the ticket (particularly if this is the last PR required to complete the ticket)

@TomHanmer29 TomHanmer29 force-pushed the chore/PDJB-697-remove-journey-framework branch 2 times, most recently from 9d83062 to eca1967 Compare March 20, 2026 15:16
@TomHanmer29 TomHanmer29 requested a review from Copilot March 20, 2026 15:21
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR decommissions the legacy forms-based journey framework and migrates remaining code/tests to the newer journeys framework, primarily by deleting legacy framework classes/services and updating references to the new step/state APIs.

Changes:

  • Removed legacy forms journey framework code (steps/pages/journeys/tasks), legacy journey-data services, and related tests.
  • Updated controllers/services/entities/test helpers to use uk.gov.communities.prsdb.webapp.journeys (JourneyData, PageData, map helpers) and new step route-segment constants.
  • Reworked ComplianceStatusDataModel to derive certificate statuses directly from JourneyData without the deleted legacy extension helpers.

Reviewed changes

Copilot reviewed 110 out of 110 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/test/kotlin/uk/gov/communities/prsdb/webapp/urlProviders/PropertyComplianceInfoUrlTests.kt Updates property compliance CYA route-segment usage for new framework.
src/test/kotlin/uk/gov/communities/prsdb/webapp/urlProviders/LandlordDashboardUrlTests.kt Updates property compliance CYA route-segment usage; removes legacy beans.
src/test/kotlin/uk/gov/communities/prsdb/webapp/urlProviders/InvitationUrlTests.kt Removes legacy JourneyDataService test bean usage.
src/test/kotlin/uk/gov/communities/prsdb/webapp/testHelpers/builders/TestIteratorBuilder.kt Removes legacy forms iterator test builder.
src/test/kotlin/uk/gov/communities/prsdb/webapp/testHelpers/builders/JourneyDataBuilder.kt Migrates test journey data helper to journeys.JourneyData and new step segments; removes legacy helpers.
src/test/kotlin/uk/gov/communities/prsdb/webapp/testHelpers/api/requestModels/SetJourneyDataRequestModel.kt Switches to journeys JourneyData + map helper.
src/test/kotlin/uk/gov/communities/prsdb/webapp/testHelpers/JourneyDataDeserializer.kt Switches to journeys.JourneyData.
src/test/kotlin/uk/gov/communities/prsdb/webapp/services/LocalCouncilInvitationServiceTests.kt Removes unused legacy journey-data service variable.
src/test/kotlin/uk/gov/communities/prsdb/webapp/services/LegacyIncompletePropertyFormContextServiceTests.kt Removes legacy incomplete-property context service tests.
src/test/kotlin/uk/gov/communities/prsdb/webapp/services/JourneyDataServiceTests.kt Removes legacy JourneyDataService tests.
src/test/kotlin/uk/gov/communities/prsdb/webapp/models/requestModels/formModels/UploadCertificateFormModelTests.kt Switches to journeys.objectToStringKeyedMap.
src/test/kotlin/uk/gov/communities/prsdb/webapp/models/requestModels/formModels/CheckAnswersFormModelTests.kt Switches to journeys.JourneyData.
src/test/kotlin/uk/gov/communities/prsdb/webapp/models/dataModels/ComplianceStatusDataModelTests.kt Switches to journeys.JourneyData.
src/test/kotlin/uk/gov/communities/prsdb/webapp/journeys/builders/JourneyBuilderTest.kt Switches to journeys.objectToTypedStringKeyedMap.
src/test/kotlin/uk/gov/communities/prsdb/webapp/journeys/JourneyStateServiceTests.kt Removes legacy forms JourneyData/map helper imports.
src/test/kotlin/uk/gov/communities/prsdb/webapp/journeys/JourneyDataTests.kt Aligns test package to journeys.
src/test/kotlin/uk/gov/communities/prsdb/webapp/integration/pageObjects/Navigator.kt Updates integration navigator to use new step route-segment constants and journeys.JourneyData.
src/test/kotlin/uk/gov/communities/prsdb/webapp/integration/ErrorPageTests.kt Removes CYA error-route integration coverage after endpoint removal.
src/test/kotlin/uk/gov/communities/prsdb/webapp/helpers/extensions/journeyExtensions/PropertyComplianceJourneyDataExtensionsTests.kt Removes tests for deleted legacy journey-data extensions.
src/test/kotlin/uk/gov/communities/prsdb/webapp/helpers/extensions/JourneyDataExtensionsTests.kt Removes tests for deleted legacy journey-data extensions.
src/test/kotlin/uk/gov/communities/prsdb/webapp/helpers/PropertyRegistrationJourneyDataHelperTests.kt Removes tests for deleted legacy property registration journey-data helper.
src/test/kotlin/uk/gov/communities/prsdb/webapp/helpers/JourneyDataHelperTests.kt Updates helper tests to use new step route-segment constants and journeys.JourneyData.
src/test/kotlin/uk/gov/communities/prsdb/webapp/forms/tasks/TaskListTests.kt Removes tests for deleted legacy forms task list.
src/test/kotlin/uk/gov/communities/prsdb/webapp/forms/steps/StepTests.kt Removes tests for deleted legacy forms Step.
src/test/kotlin/uk/gov/communities/prsdb/webapp/forms/steps/LookupAddressStepTests.kt Removes tests for deleted legacy forms LookupAddressStep.
src/test/kotlin/uk/gov/communities/prsdb/webapp/forms/pages/PageWithContentProviderTests.kt Removes tests for deleted legacy forms PageWithContentProvider.
src/test/kotlin/uk/gov/communities/prsdb/webapp/forms/pages/PageTests.kt Removes tests for deleted legacy forms Page.
src/test/kotlin/uk/gov/communities/prsdb/webapp/forms/pages/CheckAnswersPageTests.kt Removes tests for deleted legacy forms CheckAnswersPage.
src/test/kotlin/uk/gov/communities/prsdb/webapp/forms/journeys/GroupedUpdateJourneyTests.kt Removes tests for deleted legacy forms grouped update journeys.
src/test/kotlin/uk/gov/communities/prsdb/webapp/forms/journeys/GroupedJourneyTests.kt Removes tests for deleted legacy forms grouped journeys.
src/test/kotlin/uk/gov/communities/prsdb/webapp/forms/ReachableStepDetailsIteratorTests.kt Removes tests for deleted legacy forms reachable-step iterator.
src/test/kotlin/uk/gov/communities/prsdb/webapp/controllers/LandlordControllerTests.kt Removes legacy beans from controller test wiring.
src/test/kotlin/uk/gov/communities/prsdb/webapp/controllers/CustomErrorControllerTests.kt Removes tests for removed CYA error endpoint.
src/main/kotlin/uk/gov/communities/prsdb/webapp/services/factories/JourneyDataServiceFactory.kt Removes legacy JourneyDataServiceFactory.
src/main/kotlin/uk/gov/communities/prsdb/webapp/services/RegisteredAddressCache.kt Switches to journeys.objectToStringKeyedMap.
src/main/kotlin/uk/gov/communities/prsdb/webapp/services/PropertyComplianceService.kt Refactors when formatting in MEES-only email update-type selection.
src/main/kotlin/uk/gov/communities/prsdb/webapp/services/LegacyIncompletePropertyFormContextService.kt Removes legacy incomplete property form-context service.
src/main/kotlin/uk/gov/communities/prsdb/webapp/services/JourneyDataService.kt Removes legacy session/form-context backed journey data service.
src/main/kotlin/uk/gov/communities/prsdb/webapp/models/viewModels/taskModels/TaskListItemViewModel.kt Removes factory overload tied to legacy forms.steps.StepId.
src/main/kotlin/uk/gov/communities/prsdb/webapp/models/requestModels/formModels/FormModel.kt Switches PageData import to journeys.PageData.
src/main/kotlin/uk/gov/communities/prsdb/webapp/models/requestModels/formModels/CheckAnswersFormModel.kt Switches to journeys.JourneyData.
src/main/kotlin/uk/gov/communities/prsdb/webapp/models/dataModels/ComplianceStatusDataModel.kt Reimplements compliance status derivation without deleted legacy extensions (now uses JourneyDataHelper + route segments).
src/main/kotlin/uk/gov/communities/prsdb/webapp/journeys/shared/stepConfig/AbstractCheckYourAnswersStepConfig.kt Switches PageData import to journeys.PageData.
src/main/kotlin/uk/gov/communities/prsdb/webapp/journeys/propertyRegistration/steps/InviteJointLandlordStepConfig.kt Switches PageData import to journeys.PageData.
src/main/kotlin/uk/gov/communities/prsdb/webapp/journeys/landlordDeregistration/stepConfig/AreYouSureStepConfig.kt Normalizes file formatting and switches PageData import to journeys.PageData.
src/main/kotlin/uk/gov/communities/prsdb/webapp/journeys/StepLifecycleOrchestrator.kt Removes legacy forms.PageData import (uses journeys.PageData).
src/main/kotlin/uk/gov/communities/prsdb/webapp/journeys/JourneyStep.kt Removes legacy forms.PageData import (uses journeys.PageData).
src/main/kotlin/uk/gov/communities/prsdb/webapp/journeys/JourneyStateService.kt Removes legacy forms imports; relies on journeys map helpers.
src/main/kotlin/uk/gov/communities/prsdb/webapp/journeys/JourneyState.kt Removes legacy forms.PageData import (uses journeys.PageData).
src/main/kotlin/uk/gov/communities/prsdb/webapp/journeys/JourneyData.kt Moves/standardizes JourneyData + PageData typealiases and map helpers into journeys package.
src/main/kotlin/uk/gov/communities/prsdb/webapp/journeys/AbstractStepConfig.kt Removes legacy forms.PageData import (uses journeys.PageData).
src/main/kotlin/uk/gov/communities/prsdb/webapp/journeys/AbstractJourneyState.kt Removes legacy imports; uses journeys.objectToStringKeyedMap.
src/main/kotlin/uk/gov/communities/prsdb/webapp/helpers/extensions/journeyExtensions/PropertyComplianceJourneyDataExtensions.kt Removes legacy property compliance journey-data extensions.
src/main/kotlin/uk/gov/communities/prsdb/webapp/helpers/extensions/journeyExtensions/JourneyExtensions.kt Removes legacy journey extensions helper.
src/main/kotlin/uk/gov/communities/prsdb/webapp/helpers/extensions/journeyExtensions/JourneyDataExtensions.kt Removes legacy journey-data extensions helper.
src/main/kotlin/uk/gov/communities/prsdb/webapp/helpers/PropertyRegistrationJourneyDataHelper.kt Removes legacy property registration journey-data helper.
src/main/kotlin/uk/gov/communities/prsdb/webapp/helpers/JourneyDataHelper.kt Migrates helper types to journeys.JourneyData/journeys.PageData and map helper.
src/main/kotlin/uk/gov/communities/prsdb/webapp/helpers/CertificateUploadHelper.kt Switches PageData import to journeys.PageData.
src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/tasks/TaskListViewModelFactory.kt Removes legacy forms task-list view-model factory.
src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/tasks/JourneyTask.kt Removes legacy forms task model.
src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/tasks/JourneySection.kt Removes legacy forms section model.
src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/steps/UpdatePropertyDetailsStepId.kt Removes legacy forms step-id enum.
src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/steps/StepId.kt Removes legacy forms step-id interfaces.
src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/steps/StepDetails.kt Removes legacy forms step details model.
src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/steps/Step.kt Removes legacy forms Step implementation.
src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/steps/RegisterPropertyStepId.kt Removes legacy forms property registration step-id enum.
src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/steps/PropertyComplianceStepId.kt Removes legacy forms property compliance step-id enum.
src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/steps/LookupAddressStep.kt Removes legacy forms lookup-address step implementation.
src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/pages/UnvisitablePage.kt Removes legacy forms unvisitable page.
src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/pages/PageWithContentProvider.kt Removes legacy forms content-provider page.
src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/pages/Page.kt Removes legacy forms basic page.
src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/pages/FileUploadPage.kt Removes legacy forms file-upload page.
src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/pages/CheckAnswersPage.kt Removes legacy forms check-answers page implementation.
src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/pages/BasicCheckAnswersPage.kt Removes legacy forms basic check-answers page implementation.
src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/pages/AlreadyRegisteredPage.kt Removes legacy forms already-registered page.
src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/pages/AbstractPage.kt Removes legacy forms base page abstraction.
src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/journeys/UpdateJourney.kt Removes legacy forms update-journey abstraction.
src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/journeys/StepRouter.kt Removes legacy forms step router implementations.
src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/journeys/JourneyWithTaskList.kt Removes legacy forms task-list journey base class.
src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/journeys/Journey.kt Removes legacy forms journey base class.
src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/journeys/GroupedUpdateJourney.kt Removes legacy forms grouped update journey base class.
src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/ReachableStepDetailsIterator.kt Removes legacy forms reachable-step iterator.
src/main/kotlin/uk/gov/communities/prsdb/webapp/exceptions/CyaDataHasChangedException.kt Removes legacy exception used by removed forms CYA flow.
src/main/kotlin/uk/gov/communities/prsdb/webapp/database/entity/FormContext.kt Switches to journeys JourneyData + map helper.
src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/controllerAdvice/GlobalExceptionHandler.kt Removes CYA data-changed exception handling and redirect.
src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/UpdateRentIncludesBillsController.kt Switches PageData import to journeys.PageData.
src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/UpdateRentFrequencyAndAmountController.kt Switches PageData import to journeys.PageData.
src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/UpdateOwnershipTypeController.kt Switches PageData import to journeys.PageData.
src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/UpdateOccupancyController.kt Switches PageData import to journeys.PageData.
src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/UpdateLicensingController.kt Switches PageData import to journeys.PageData.
src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/UpdateLandlordPhoneNumberController.kt Switches PageData import to journeys.PageData.
src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/UpdateLandlordNameController.kt Switches PageData import to journeys.PageData.
src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/UpdateLandlordEmailController.kt Switches PageData import to journeys.PageData.
src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/UpdateLandlordDateOfBirthController.kt Switches PageData import to journeys.PageData.
src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/UpdateHouseholdsAndTenantsController.kt Switches PageData import to journeys.PageData.
src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/UpdateFurnishedStatusController.kt Switches PageData import to journeys.PageData.
src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/UpdateBedroomsController.kt Switches PageData import to journeys.PageData.
src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/RegisterPropertyController.kt Switches PageData import to journeys.PageData.
src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/RegisterLocalCouncilUserController.kt Switches PageData import to journeys.PageData.
src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/RegisterLandlordController.kt Switches PageData import to journeys.PageData.
src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/PropertyComplianceController.kt Switches PageData import to journeys.PageData.
src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/JoinPropertyController.kt Switches PageData import to journeys.PageData and normalizes file formatting.
src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/DeregisterPropertyController.kt Switches PageData import to journeys.PageData.
src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/DeregisterLandlordController.kt Switches PageData import to journeys.PageData and simplifies confirmation handler signature.
src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/CustomErrorController.kt Removes CYA error endpoint/route constant.
src/main/kotlin/uk/gov/communities/prsdb/webapp/constants/enums/NonStepJourneyDataKey.kt Removes legacy looked-up-addresses non-step key.
src/main/kotlin/uk/gov/communities/prsdb/webapp/constants/UrlSegmentConstants.kt Removes legacy CYA error URL segment constant.
src/main/kotlin/uk/gov/communities/prsdb/webapp/constants/SessionAttributes.kt Removes legacy CONTEXT_ID session attribute constant.
src/main/kotlin/uk/gov/communities/prsdb/webapp/constants/JourneyNames.kt Removes unused legacy update URL constant.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@TomHanmer29 TomHanmer29 force-pushed the chore/PDJB-697-remove-journey-framework branch from a23cb89 to 33a734e Compare March 20, 2026 15:55
@TomHanmer29 TomHanmer29 marked this pull request as ready for review March 20, 2026 15:55
Copy link
Copy Markdown
Collaborator

@Travis-Softwire Travis-Softwire left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few comments about the custom exception (which I think we'll still want, but we might not currently be using) + the supporting tests & classes. Also a few places where I'm surprised we're keeping files, it might be that some need renaming/ moving rather than deleting though

Base automatically changed from chore/PDJB-696-decommission-compliance-update-journey to main March 23, 2026 10:29
@TomHanmer29 TomHanmer29 force-pushed the chore/PDJB-697-remove-journey-framework branch from 33a734e to da749dd Compare March 23, 2026 17:23
Copy link
Copy Markdown
Collaborator

@Travis-Softwire Travis-Softwire left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few further comments, but happy for this to be merged once they're addressed, including raising a ticket for addressing the second tab/stale data issue in the new framework (shout if you need more context on that).

@TomHanmer29 TomHanmer29 added this pull request to the merge queue Mar 25, 2026
Merged via the queue into main with commit 61e6104 Mar 25, 2026
8 checks passed
@TomHanmer29 TomHanmer29 deleted the chore/PDJB-697-remove-journey-framework branch March 25, 2026 11:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants