Commit Graph
54 Commits
Author SHA1 Message Date
Robert Bond 37a81522d5 Merged PR 2260: refactor(representations): complete slice-based refactor of representations flow
## Representations Refactor — Behaviour-Preserving Structural Improvements

This PR delivers a full refactor of the representations flow, improving structure, readability, and maintainability while preserving all existing behaviour.

The work was completed using a controlled, slice-based approach with strict guardrails and regression validation at each step. No changes have been made to user journeys, payloads, routing, or EN/CY behaviour.

The result is a cleaner, more maintainable codebase with reduced coupling and clearer separation of concerns, ready for future enhancements without increased risk.

---

## What Was Done

The refactor was delivered incrementally across the following slices:

- **R1** — Representation entry logic extraction
- **R2** — Page loader separation (SSR/data orchestration)
- **R3** — Journey step resolution extraction
- **R4** — Flow shell decomposition
- **R5** — Representation elements normalisation
- **R6** — Data/service layer cleanup
- **R7** — Summary rendering proof slice
- **R8** — Submission/finalisation boundary isolation
- **R9** — Summary rollout (Batch 1)

Each slice:
- was isolated to a single concern
- followed strict guardrails
- was validated before merge

Full detail is available in:
`context/representations-refactor-tracker.md`

---

## Key Improvements

- Reduced coupling across the representations journey
- Separated data loading, orchestration, and rendering concerns
- Simplified complex conditional logic into testable helpers
- Standardised summary rendering using shared primitives (`SummaryCard`, `SummaryRow`)
- Isolated submission/finalisation sequencing into explicit boundaries
- Improved overall readability and maintainability

---

## Behaviour Preservation

This refactor does **not** change:

- User journeys (APP / IP / Agent / LPA)
- Route and query behaviour
- Payload contracts and API interactions
- Redux state shape and usage
- Validation rules and messaging
- EN/CY behaviour
- File upload / PDF / email sequencing
- Linked-case logic

All changes are structural only.

---

## Validation

### Automated

- `npm run lint` — passed (warnings only, no new errors)
- `npm run test:reps` — passed (7/7)

### Manual

Validated end-to-end across:

- APP
- IP
- Agent
- LPA

Including:

- representation creation
- editing/resuming representations
- submission flow
- confirmation/completion behaviour
- summary rendering across case types
- EN/CY parity

---

## Risk Management

The refactor targeted several high-risk areas:

- Case summary entry logic
- Representation submission/finalisation sequencing
- Dual-mode entry (new vs existing representation)

Risk was controlled through:

- small, incremental slices
- one branch per slice
- regression validation per slice
- strict behaviour-preservation guardrails
- controlled rollout for summary rendering changes

---

## Reviewer Guidance

Suggested areas to focus on:

- End-to-end representation journey (create → submit → complete)
- S...
2026-04-20 13:09:07 +00:00
robbond 8ff1af00b7 updated query and display logic for post determination fields 2026-03-17 12:00:30 +00:00
robbond 1b586da1ae 21187 implement helper function on summary 2026-01-27 11:58:40 +00:00
robbond 92ceacb57b Merge branch 'Development' into SIPS-Development 2025-08-20 12:11:55 +01:00
robbond a1b821521d remove reference to sandbox to see if helps 2025-07-03 14:09:42 +01:00
robbond 9e1d091116 removed extra heading of submission 2025-06-26 06:12:30 +01:00
robbond d0c56d1741 14626 reporting decision fields to summary 2025-06-10 12:08:01 +01:00
robbond ad5c726b54 14624 rep button logic for sips 2025-04-27 14:14:18 +01:00
robbond 81fe090ce0 Merge branch 'Development' into SIPS-Sprint-5-dev-merge-csp 2025-04-16 15:46:10 +01:00
robbond d882e65071 uodated queries to sort deep recursion 2025-04-16 08:44:45 +01:00
robbond 2dc8a721ab Merge branch 'Development' into SIPS-Development 2025-04-16 08:27:06 +01:00
robbond 87f0dcd811 changes sandbox: {} to eval: true, caused errors in evaluated queries 2025-04-15 17:25:14 +01:00
robbond a26313c798 Merge branch 'Development' into SIPS-Development 2025-04-15 13:22:35 +01:00
robbond 05f791e6a8 update jsonpath for csp fix 2025-04-15 12:59:27 +01:00
robbond ac1c127548 14625 submission ui portal 2025-04-02 18:08:07 +01:00
robbond 8a24852961 15419 update eia required field 2025-04-02 09:13:09 +01:00
robbond 1c65d49110 EIA requried fields updating 2025-03-25 10:47:22 +00:00
robbond 19a377f49f 15085 EIA required and remove case officer 2025-03-20 11:24:09 +00:00
robbond cd750a9228 14768 Project type on Sips summary 2025-03-20 11:22:41 +00:00
robbond 837d7c68f7 14758 tabs ui 2025-03-18 06:06:05 +00:00
robbond 68d03ed93d updated coords and address fix 2025-03-14 15:20:06 +00:00
robbond 34ce7f73a8 14430 + 14355 remove fields 2025-03-11 12:11:54 +00:00
robbond c5f893f91c pre submssion details on summary 2025-03-05 15:32:54 +00:00
robbond 7fad19452b 13927 sips summary page 2025-02-18 14:21:20 +00:00
robbond 49d39e052e questionnaire for callins and uploads 2024-12-03 18:27:51 +00:00
robbond b0e2bb6e14 remove unused imports 2024-06-19 06:32:38 +01:00
robbond 4c534f9319 pinswg_otherpartiesstatement to pinswg_otherpartiesstmt change 2024-05-31 09:21:25 +01:00
robbond ab54fdd8d8 fix for new appeal 2024-05-29 11:10:59 +01:00
robbond 5022afe05d mutliple raise reps defects dates or button not showing 2024-05-23 11:54:56 +01:00
robbond 2722d472e3 corrected decision label when no data 2024-05-13 16:54:04 +01:00
robbond cf04ceba50 accessibility ammends for case summary and details 2024-02-19 16:54:40 +00:00
robbond 2af463fbe9 update jsonpath library 2024-02-08 14:28:40 +00:00
robbond ef1f773022 updated 2023-11-08 13:20:43 +00:00
robbond 3e89c25832 update non val case details 2023-01-30 13:37:55 +00:00
robbond ca91f679ce uat defects and s78 dns amends 2022-11-02 13:23:54 +00:00
robbond 402cd4938f update look up for relevant authority 2022-08-02 12:11:13 +01:00
robbond 747548f574 add in start event date and type of event 2022-06-08 16:30:59 +01:00
robbond 66cf1bb956 added in date field 2022-06-08 09:30:58 +01:00
robbond b99512066b edit a partial completed appeal 2022-05-05 11:04:05 +01:00
robbond 19be69389e apostrophe fix and dns details ordering 2022-04-26 16:08:23 +01:00
robbond bc41924c85 build fix and updated myportal layout 2022-04-07 11:47:25 +01:00
robbond 2126fa9630 logic to show site address as project location 2022-03-15 14:32:12 +00:00
robbond cb9bc970b6 allowed display for english only if no welsh 2022-01-27 14:02:09 +00:00
robbond f347a0d73b Added service stage status and delete functions 2022-01-25 10:09:11 +00:00
robbond 2b824fe80d updated typo and fix for no webaddress 2022-01-05 10:22:33 +00:00
robbond efeff87e50 updated mapping 2021-12-07 11:59:33 +00:00
robbond 8185989768 hardeing changes and UAT tweaks 2021-11-18 10:03:52 +00:00
robbond 4419681ebb ithc changes and uat fixes 2021-11-17 11:31:49 +00:00
robbond ea7048037c build fix 2021-11-16 19:31:41 +00:00
robbond 831f0497c5 added hardening on documents link 2021-11-16 19:12:03 +00:00