fix(mocks): echo the caller's direction, and stop printing a URI as a column name #530

Merged
allan merged 1 commits from fix/lineage-mock-parity into release/7.23 2026-11-08 15:22:48 +00:00
Collaborator

The two lineage findings, from review 928 on #481.

  • The direction label echoed a normalised word (FORWARDS/REVERSE) where the estate prints &direction Lineage for <b>&col</b> - the caller's own word - and the client sends FORWARD. The label now echoes the request.
  • COLNAME fell back to the requested coluri when the cache held no row, so the breadcrumb printed OMSOBJ:Column\A5... where a column name belongs. The estate's COLNAME is empty in that case and the template skips an empty one, so the fallback is now empty rather than the URI.

Both are pinned in lineage.test.js and both fail with the service file reverted (5 pass / 2 fail) and pass here (7 pass).

The site-mode libref finding is not in this PR, deliberately. It is a different problem from the two above: makedata moves the control library to the clock name while stageSubmission still writes under DC_JSLIB and the seeded MPE_TABLES rows name DC_JSLIB while viewlibs answers with the clock libref - so the fix is a decision about which library is authoritative on a site-mode estate, applied across the writers and the seeded registry, not a string change in one service. Your reproduction is exact and I am not going to paper over it with a fallback that makes the edit cycle pass while the registry still disagrees.

The two lineage findings, from review 928 on #481. - **The direction label** echoed a normalised word (`FORWARDS`/`REVERSE`) where the estate prints `&direction Lineage for <b>&col</b>` - the caller's own word - and the client sends `FORWARD`. The label now echoes the request. - **`COLNAME`** fell back to the requested `coluri` when the cache held no row, so the breadcrumb printed `OMSOBJ:Column\A5...` where a column name belongs. The estate's `COLNAME` is empty in that case and the template skips an empty one, so the fallback is now empty rather than the URI. Both are pinned in `lineage.test.js` and both fail with the service file reverted (5 pass / 2 fail) and pass here (7 pass). The site-mode libref finding is not in this PR, deliberately. It is a different problem from the two above: `makedata` moves the control library to the clock name while `stageSubmission` still writes under `DC_JSLIB` and the seeded `MPE_TABLES` rows name `DC_JSLIB` while `viewlibs` answers with the clock libref - so the fix is a decision about which library is authoritative on a site-mode estate, applied across the writers and the seeded registry, not a string change in one service. Your reproduction is exact and I am not going to paper over it with a fallback that makes the edit cycle pass while the registry still disagrees.
hermes added 1 commit 2026-11-08 15:18:38 +00:00
fix(mocks): echo the caller's direction, and stop printing a URI as a column name
Build / Build-and-ng-test (pull_request) Successful in 2m40s
Build / lighthouse (pull_request) Successful in 6m6s
Build / Build-and-test-development (pull_request) Successful in 20m39s
f37c94dfb4
Two parity gaps in fetchcollineage, both visible on any lineage screen:

- The label said FORWARDS or REVERSE while the estate prints "&direction
  Lineage for <b>&col</b>" - what the caller sent. The client sends FORWARD
  (lineage.component.ts:352), so the mock was showing a word nobody sent.
- With nothing cached for the column, askedColumn fell back to the requested
  coluri, so the breadcrumb printed "OMSOBJ:Column\A5..." where a column name
  belongs. The estate's COLNAME is empty in that case and the client's template
  skips an empty one.

Both pinned in lineage.test.js, and both cases fail with the service file
reverted (5 pass, 2 fail) and pass here (7 pass).
allan merged commit a57739ad86 into release/7.23 2026-11-08 15:22:48 +00:00
allan deleted branch fix/lineage-mock-parity 2026-11-08 15:22:48 +00:00

Lighthouse

Route Performance Accessibility Best practices SEO
#/home/tables 0.86 0.93 1.00 1.00
#/editor/DC996664.MPE_X_TEST 0.30 0.96 1.00 1.00
#/view/data 0.72 0.92 1.00 1.00
#/view/data/DC996664 0.73 0.92 1.00 1.00
#/view/data/DC996664.MPE_X_TEST 0.53 0.92 1.00 1.00
#/view/usernav/groups 0.72 0.92 1.00 1.00
#/view/usernav/groups/1 0.73 0.92 1.00 1.00
#/view/usernav/users/1 0.69 0.92 1.00 1.00
#/home/excel-maps 0.79 0.92 1.00 1.00
#/home/excel-maps/BASEL-CR2 0.73 0.87 1.00 1.00
#/home/multi-load 0.78 0.90 1.00 1.00
#/review/submitted 0.86 0.91 1.00 1.00
#/review/approve 0.86 0.91 1.00 1.00
#/review/history 0.87 0.91 1.00 1.00
#/stage/DC20221006T142649516_059582_7169 0.86 0.96 1.00 0.92
#/review/submitted/DC20221006T142649516_059582_7169 0.86 0.91 1.00 1.00
#/system 0.91 0.93 1.00 1.00

Lowest accessibility score: 0.87 (the gate is a median of 0.85 while issue 497 is open).

Run: https://git.datacontroller.io/dc/dc/actions/runs/3542

<!-- lighthouse-report --> ### Lighthouse | Route | Performance | Accessibility | Best practices | SEO | |---|---|---|---|---| | `#/home/tables` | 0.86 | 0.93 | 1.00 | 1.00 | | `#/editor/DC996664.MPE_X_TEST` | 0.30 | 0.96 | 1.00 | 1.00 | | `#/view/data` | 0.72 | 0.92 | 1.00 | 1.00 | | `#/view/data/DC996664` | 0.73 | 0.92 | 1.00 | 1.00 | | `#/view/data/DC996664.MPE_X_TEST` | 0.53 | 0.92 | 1.00 | 1.00 | | `#/view/usernav/groups` | 0.72 | 0.92 | 1.00 | 1.00 | | `#/view/usernav/groups/1` | 0.73 | 0.92 | 1.00 | 1.00 | | `#/view/usernav/users/1` | 0.69 | 0.92 | 1.00 | 1.00 | | `#/home/excel-maps` | 0.79 | 0.92 | 1.00 | 1.00 | | `#/home/excel-maps/BASEL-CR2` | 0.73 | 0.87 | 1.00 | 1.00 | | `#/home/multi-load` | 0.78 | 0.90 | 1.00 | 1.00 | | `#/review/submitted` | 0.86 | 0.91 | 1.00 | 1.00 | | `#/review/approve` | 0.86 | 0.91 | 1.00 | 1.00 | | `#/review/history` | 0.87 | 0.91 | 1.00 | 1.00 | | `#/stage/DC20221006T142649516_059582_7169` | 0.86 | 0.96 | 1.00 | 0.92 | | `#/review/submitted/DC20221006T142649516_059582_7169` | 0.86 | 0.91 | 1.00 | 1.00 | | `#/system` | 0.91 | 0.93 | 1.00 | 1.00 | Lowest accessibility score: **0.87** (the gate is a median of 0.85 while issue 497 is open). Run: https://git.datacontroller.io/dc/dc/actions/runs/3542
Sign in to join this conversation.