feat(steps): rows read in the code's order; a hop written inside another call says so
- branch-guards callSiteInTree: a call's span and the call it is written inside the arguments of (`within`), stopping at a function or block boundary - steps.ts: each step records the hop that first reached it (position, span, enclosing call — the fold's first hop out of the root, inherited down the fold); a row is ordered by that position, a hop inside another site's arguments before that site, and `WireStep.order` carries it; links carry `within` - map-model: an `order` option — the row's initial order, sweeps over parents only, tie-broken by it; the Map and Screens tabs pass none and are unchanged - viewer: rows laid out by `order`; `inside res.json(…)` in the panel rows and the tooltip - tests: servers fixture (a token signed inside the reply's arguments: `within`, and the row `create · queue · mail · jwt.sign · 201`), model row order; spec §3.13, CHANGELOG Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01REFyW9hmNrxhwN5wxRoAkC
This commit is contained in:
co-authored by
Claude Fable 5
parent
46e3e7aaa0
commit
783f3954ec
@@ -137,3 +137,16 @@ describe('words per project', () => {
|
||||
expect(triggerWords({ kind: 'load', name: 'GET', of: '/blog/[slug]', in: 'page.tsx' })).toBe('page load · /blog/[slug]');
|
||||
});
|
||||
});
|
||||
|
||||
describe('row order', () => {
|
||||
it('lays a row out in the order the server gave, not by id', () => {
|
||||
const anchor = step('/login', 'screen', 0, { anchor: true });
|
||||
const a = step('User.findOne', 'effect', 1, { order: 0 });
|
||||
const b = step('jwt.sign', 'effect', 1, { order: 1 });
|
||||
const c = step('200', 'effect', 1, { order: 2 });
|
||||
const d = step('401', 'effect', 1, { order: 3 });
|
||||
const model = buildStepsModel(payload([anchor, d, c, b, a], [link(anchor, a), link(anchor, b), link(anchor, c), link(anchor, d)]));
|
||||
const row = model.layout.nodes.filter((n) => n.id !== anchor.id).sort((x, y) => x.x - y.x).map((n) => n.id);
|
||||
expect(row).toEqual([a.id, b.id, c.id, d.id]);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user