Skip to content

feat(apptest): my flow wave 2 - UI parity walk of the personal page#6365

Merged
delchev merged 1 commit into
masterfrom
feat/apptest-my-ui-parity
Jul 22, 2026
Merged

feat(apptest): my flow wave 2 - UI parity walk of the personal page#6365
delchev merged 1 commit into
masterfrom
feat/apptest-my-ui-parity

Conversation

@delchev

@delchev delchev commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

What

Wave 1 of the runner's my flow pinned down the personal wire contract; the UI above it had no functional coverage - exactly where the raw-FK-id columns, layout downgrades and dead-composer regressions accumulated silently.

  • @aerokit/sdk/test: myUiTest drives the personal page over the same own-row lifecycle as the wire test (record created through the scoped controller, removed in the finally; skips without an identity mapping):
    • list: every relation column of the own row renders its referenced label - asserted positively against the sampled target row's label, never the raw FK id;
    • calendar/slots: the /my route renders the calendar / slot picker, never a plain form+list downgrade;
    • document-chat: the composer accepts a message and the bubble renders; a plain document asserts the page serves.
  • AppTestIntentGenerator: the manifest's personal block gains route (#/my/<Entity>), layout (list | calendar | slots | document | document-chat) and fkColumns (the personal list's relation columns - the label-resolution targets). Manifests generated before this change carry no route, so the UI walk skips quietly until the module regenerates.

Verification

IntentEmissionCoverageIT asserts the new manifest metadata for the personal list, chat document and calendar fixtures. Ran green locally (1/1). node --check clean on the runner. The live end-to-end exercise follows with the module-side manifest regeneration.

🤖 Generated with Claude Code

… labels, calendar, chat composer)

The runner's my flow pinned down the personal WIRE contract (wave 1); the UI
above it had no functional coverage - exactly where the raw-FK-id, layout
downgrade and dead-composer regressions accumulated silently.

- @aerokit/sdk/test: myUiTest drives the personal page over the same own-row
  lifecycle as the wire test (created through the scoped controller, removed
  in the finally; skips without an identity mapping):
  - layout list: every relation column of the own row renders its referenced
    LABEL (asserted positively against the sampled target row's label);
  - layout calendar/slots: the /my route renders the calendar / slot picker,
    never a plain form+list downgrade;
  - layout document-chat: the composer accepts a message and the bubble
    renders; a plain document asserts the page serves.
- AppTestIntentGenerator: the manifest's personal block gains route (#/my/<E>),
  layout (list | calendar | slots | document | document-chat) and fkColumns
  (the personal list's relation columns - the label-resolution targets).
  Older manifests without route skip the UI walk quietly until regenerated.

IntentEmissionCoverageIT asserts the new manifest metadata for the personal
list, chat document and calendar fixtures. Ran green locally (1/1).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@delchev
delchev merged commit c116a9a into master Jul 22, 2026
10 checks passed
@delchev
delchev deleted the feat/apptest-my-ui-parity branch July 22, 2026 06:12
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.

1 participant