@substrat-run/contract-tests 0.88.0 → 0.89.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3 @@
1
+ import type { ScopeHostFixture } from './scope-host-suite.js';
2
+ export declare function idempotencyContractSuite(adapterName: string, makeFixture: () => Promise<ScopeHostFixture>): void;
3
+ //# sourceMappingURL=idempotency-suite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"idempotency-suite.d.ts","sourceRoot":"","sources":["../src/idempotency-suite.ts"],"names":[],"mappings":"AA4CA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAU9D,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,GAC3C,IAAI,CA6PN"}
@@ -0,0 +1,243 @@
1
+ /**
2
+ * Contract suite for request idempotency — `Idempotency-Key` (#116).
3
+ *
4
+ * What it pins: **a retry does not do the work twice, and the host is what makes
5
+ * that true.** Everything else about this feature is a projection — the header
6
+ * name is a wire detail `vertical-host` owns, the opt-out is a model detail
7
+ * `contracts` owns, and neither is what makes a retry free. This is: a recording
8
+ * written in the same transaction as the work, and a second request answered
9
+ * from it without running anything.
10
+ *
11
+ * **Every case counts executions rather than comparing responses.** A suite that
12
+ * asserted only on the returned value would pass against a host that re-ran the
13
+ * operation and produced the same answer again — which is exactly the bug, since
14
+ * a duplicated work order looks a great deal like the original. So the fixture
15
+ * appends a row per invocation and `idem/runs` reports the count, and that count
16
+ * is the assertion.
17
+ *
18
+ * The cases that matter are not the happy path:
19
+ *
20
+ * - **A failed request leaves no recording.** The row is written inside the
21
+ * operation's transaction, so a throw takes it with the writes it describes and
22
+ * the retry executes — correctly, because nothing happened the first time.
23
+ * - **A key belongs to the subject that sent it.** Two principals choosing `1`
24
+ * must each get their own execution; a lookup that crossed that boundary would
25
+ * replay one caller's response to another.
26
+ * - **A reused key is refused, never served.** Same key, different request means
27
+ * the client's assertion is false, and answering with the earlier response
28
+ * would be a lie it acts on.
29
+ * - **An unrecordable response fails closed.** A replay that cannot be answered
30
+ * is a 409, not a second execution.
31
+ */
32
+ import { describe, it, expect, beforeAll, afterAll } from 'vitest';
33
+ import { errorCodeOf, permissionKey, platformActorId, principalId, scopeId, tenantId, IDEMPOTENCY_REPLAY_UNAVAILABLE, IDEMPOTENCY_REUSED, } from '@substrat-run/contracts';
34
+ import { ulid } from '@substrat-run/kernel';
35
+ import { idempotencyMod } from './modules.js';
36
+ const IDEM_USE = permissionKey.parse('idem:use');
37
+ /** The `reason` slug a refusal carried, or undefined — read off the thrown error. */
38
+ function reasonOf(err) {
39
+ return err?.extensions?.['reason'];
40
+ }
41
+ export function idempotencyContractSuite(adapterName, makeFixture) {
42
+ describe(`request idempotency (Idempotency-Key): ${adapterName}`, () => {
43
+ let fixture;
44
+ let host;
45
+ let stub;
46
+ /** A second principal, for the case that a key is one caller's and not another's. */
47
+ let otherStub;
48
+ const t1 = tenantId.parse(ulid());
49
+ const s1 = scopeId.parse(ulid());
50
+ const alice = principalId.parse(ulid());
51
+ const bob = principalId.parse(ulid());
52
+ const staff = platformActorId.parse(ulid());
53
+ /** Whether each invocation was answered from a recording, newest last. */
54
+ let replays = [];
55
+ const sink = () => {
56
+ let replayed = false;
57
+ return {
58
+ options: {
59
+ onIdempotentReplay: () => {
60
+ replayed = true;
61
+ },
62
+ },
63
+ done: () => replays.push(replayed),
64
+ };
65
+ };
66
+ const create = async (thingId, key, label, as = () => stub) => {
67
+ const probe = sink();
68
+ try {
69
+ return await as().invoke('idem/create', { thingId, ...(label === undefined ? {} : { label }) }, { ...probe.options, ...(key === undefined ? {} : { idempotencyKey: key }) });
70
+ }
71
+ finally {
72
+ probe.done();
73
+ }
74
+ };
75
+ /** How many times a handler in this module has actually run. */
76
+ const runs = async () => (await stub.invoke('idem/runs', {})).count;
77
+ beforeAll(async () => {
78
+ fixture = await makeFixture();
79
+ host = fixture.host;
80
+ host.registerModule(idempotencyMod);
81
+ await host.admin.createTenant(staff, { id: t1, slug: 'idem-tenant', name: 'Idem Tenant' });
82
+ await host.admin.grantEntitlement(staff, t1, 'idem');
83
+ await host.admin.defineRole(staff, t1, {
84
+ key: 'idem-admin',
85
+ permissions: [IDEM_USE],
86
+ source: 'vertical',
87
+ });
88
+ for (const principal of [alice, bob]) {
89
+ await host.admin.assignRole(staff, {
90
+ principalId: principal,
91
+ roleKey: 'idem-admin',
92
+ node: { tenantId: t1, scopeId: null },
93
+ });
94
+ }
95
+ await host.provisionScope(staff, { tenantId: t1, scopeId: s1, vertical: 'idem-vertical' });
96
+ await host.admin.activateScope(staff, t1, s1);
97
+ stub = await host.getScope(alice, t1, s1);
98
+ otherStub = await host.getScope(bob, t1, s1);
99
+ });
100
+ afterAll(async () => {
101
+ await fixture.cleanup();
102
+ });
103
+ it('runs twice for two identical requests carrying no key', async () => {
104
+ const before = await runs();
105
+ await create('baseline');
106
+ await create('baseline');
107
+ // The baseline the whole feature is measured against: without a key there is
108
+ // no dedupe, and identical requests are two requests. A suite that skipped
109
+ // this could not tell a working replay from an operation that happens to be
110
+ // naturally idempotent.
111
+ expect(await runs()).toBe(before + 2);
112
+ });
113
+ it('runs once for a repeated request under one key, and replays the response', async () => {
114
+ const key = `k-${ulid()}`;
115
+ const before = await runs();
116
+ replays = [];
117
+ const first = await create('once', key, 'hello');
118
+ const second = await create('once', key, 'hello');
119
+ // The assertion that matters is the count, not the equality below it.
120
+ expect(await runs()).toBe(before + 1);
121
+ // `run` is a fresh ULID per execution, so identical values here mean the
122
+ // second response came from the recording rather than from a second run
123
+ // that agreed by luck.
124
+ expect(second).toEqual(first);
125
+ expect(replays).toEqual([false, true]);
126
+ });
127
+ it('scopes a key to the subject that sent it', async () => {
128
+ const key = `shared-${ulid()}`;
129
+ const before = await runs();
130
+ replays = [];
131
+ const mine = await create('theirs', key, 'a', () => stub);
132
+ const theirs = await create('theirs', key, 'a', () => otherStub);
133
+ // Two principals will choose the same key — `1` is a key someone sends. A
134
+ // lookup that found the other's row would replay a response across a
135
+ // principal boundary, which is a disclosure and not a convenience.
136
+ expect(await runs()).toBe(before + 2);
137
+ expect(theirs).not.toEqual(mine);
138
+ expect(replays).toEqual([false, false]);
139
+ });
140
+ it('refuses a key reused for a different request, and runs nothing', async () => {
141
+ const key = `reuse-${ulid()}`;
142
+ await create('reused', key, 'original');
143
+ const before = await runs();
144
+ await expect(create('reused', key, 'CHANGED')).rejects.toSatisfy((err) => {
145
+ return errorCodeOf(err) === 'conflict' && reasonOf(err) === IDEMPOTENCY_REUSED;
146
+ });
147
+ // Refused, and refused BEFORE anything ran. Serving the first request's
148
+ // response would be worse — the client would act on an answer to a question
149
+ // it did not ask.
150
+ expect(await runs()).toBe(before);
151
+ });
152
+ it('treats a different key as a different request', async () => {
153
+ const before = await runs();
154
+ await create('twice', `k-${ulid()}`, 'same input');
155
+ await create('twice', `k-${ulid()}`, 'same input');
156
+ // Dedupe is by KEY, never by content: two deliberate identical writes are
157
+ // two writes, and a client that wanted one sends one key.
158
+ expect(await runs()).toBe(before + 2);
159
+ });
160
+ it('retries — does not replay — a request that failed', async () => {
161
+ const key = `fail-${ulid()}`;
162
+ const before = await runs();
163
+ await expect(stub.invoke('idem/fails', { thingId: 'nope' }, { idempotencyKey: key })).rejects.toThrow();
164
+ // The handler wrote a row before throwing and the transaction rolled it
165
+ // back, so the count has not moved — which is also why there is nothing to
166
+ // replay.
167
+ expect(await runs()).toBe(before);
168
+ await expect(stub.invoke('idem/fails', { thingId: 'nope' }, { idempotencyKey: key })).rejects.toThrow();
169
+ // Executed again rather than replaying the failure. Recording failures would
170
+ // have meant deciding which are permanent, and a retry after a 500 is the
171
+ // most ordinary thing a client does.
172
+ expect(await runs()).toBe(before);
173
+ // The same key is still free for the request that eventually succeeds: the
174
+ // first two attempts left no row, so this is a first request.
175
+ const ok = await stub.invoke('idem/create', { thingId: 'recovered' }, { idempotencyKey: key });
176
+ expect(ok).toMatchObject({ id: 'recovered' });
177
+ });
178
+ it('refuses a replay it cannot answer rather than executing again', async () => {
179
+ const key = `big-${ulid()}`;
180
+ const before = await runs();
181
+ await stub.invoke('idem/big', { thingId: 'large' }, { idempotencyKey: key });
182
+ expect(await runs()).toBe(before + 1);
183
+ await expect(stub.invoke('idem/big', { thingId: 'large' }, { idempotencyKey: key })).rejects.toSatisfy((err) => {
184
+ return errorCodeOf(err) === 'conflict' && reasonOf(err) === IDEMPOTENCY_REPLAY_UNAVAILABLE;
185
+ });
186
+ // Fail closed. An error the caller can act on beats the duplicate execution
187
+ // the key was sent to prevent — and the original did complete, so re-running
188
+ // is the one answer that is certainly wrong.
189
+ expect(await runs()).toBe(before + 1);
190
+ });
191
+ it('refuses a key on an operation that declared `idempotency: false`', async () => {
192
+ const before = await runs();
193
+ await expect(stub.invoke('idem/secret', { thingId: 's1' }, { idempotencyKey: `s-${ulid()}` })).rejects.toThrow(/idempotency: false|cannot honour an Idempotency-Key/i);
194
+ // Refused rather than ignored: a caller who sent a key and got a 200 would
195
+ // believe the retry is safe, and here the response was never recorded — the
196
+ // second request would mint a second secret.
197
+ expect(await runs()).toBe(before);
198
+ // The operation itself still works; it is the header it refuses.
199
+ await expect(stub.invoke('idem/secret', { thingId: 's1' })).resolves.toMatchObject({
200
+ id: 's1',
201
+ });
202
+ });
203
+ it('refuses a malformed key', async () => {
204
+ const before = await runs();
205
+ for (const bad of ['', 'has space', 'x'.repeat(256)]) {
206
+ await expect(stub.invoke('idem/create', { thingId: 'bad' }, { idempotencyKey: bad })).rejects.toSatisfy((err) => errorCodeOf(err) === 'validation_failed');
207
+ }
208
+ expect(await runs()).toBe(before);
209
+ });
210
+ it('replays the entity version alongside the body', async () => {
211
+ const key = `guard-${ulid()}`;
212
+ const tags = [];
213
+ const options = {
214
+ idempotencyKey: key,
215
+ onEntityVersion: (v) => tags.push(v),
216
+ };
217
+ const first = await stub.invoke('idem/create-guarded', { thingId: 'g1' }, options);
218
+ const second = await stub.invoke('idem/create-guarded', { thingId: 'g1' }, options);
219
+ expect(second).toEqual(first);
220
+ // The two seams compose or neither works: a replayed response with no `ETag`
221
+ // leaves the client holding no validator, so its next conditional write has
222
+ // nothing to send and the lost-update protection quietly switches off.
223
+ expect(tags).toHaveLength(2);
224
+ expect(tags[1]).toBe(tags[0]);
225
+ expect(tags[0]).not.toBeNull();
226
+ });
227
+ it('does not report a version for a replay of an unguarded operation', async () => {
228
+ const key = `plain-${ulid()}`;
229
+ const tags = [];
230
+ const options = {
231
+ idempotencyKey: key,
232
+ onEntityVersion: (v) => tags.push(v),
233
+ };
234
+ await stub.invoke('idem/create', { thingId: 'p1' }, options);
235
+ await stub.invoke('idem/create', { thingId: 'p1' }, options);
236
+ // #129's rule survives the replay path: an operation that declared no
237
+ // `concurrency` never reports a tag, and a recording must not become the
238
+ // route by which one appears.
239
+ expect(tags).toEqual([]);
240
+ });
241
+ });
242
+ }
243
+ //# sourceMappingURL=idempotency-suite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"idempotency-suite.js","sourceRoot":"","sources":["../src/idempotency-suite.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,7 +4,9 @@ export { permissionContractSuite } from './permission-suite.js';
4
4
  export { atomicContractSuite } from './atomic-suite.js';
5
5
  export { searchContractSuite } from './search-suite.js';
6
6
  export { entityVersionContractSuite } from './entity-version-suite.js';
7
+ export { timelineContractSuite } from './timeline-suite.js';
7
8
  export { concurrencyContractSuite } from './concurrency-suite.js';
9
+ export { idempotencyContractSuite } from './idempotency-suite.js';
8
10
  export { listContractSuite } from './list-suite.js';
9
11
  export { scheduleContractSuite } from './schedule-suite.js';
10
12
  export { inputParseContractSuite } from './input-parse-suite.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAC/F,YAAY,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACzG,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACxF,YAAY,EACV,sBAAsB,EACtB,iBAAiB,EACjB,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,0BAA0B,EAC1B,mBAAmB,EACnB,OAAO,EACP,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,OAAO,EACP,eAAe,EACf,QAAQ,EACR,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,KAAK,aAAa,GACnB,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAC/F,YAAY,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACzG,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACxF,YAAY,EACV,sBAAsB,EACtB,iBAAiB,EACjB,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,0BAA0B,EAC1B,mBAAmB,EACnB,OAAO,EACP,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,OAAO,EACP,eAAe,EACf,QAAQ,EACR,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,KAAK,aAAa,GACnB,MAAM,wBAAwB,CAAC"}
package/dist/index.js CHANGED
@@ -3,7 +3,9 @@ export { permissionContractSuite } from './permission-suite.js';
3
3
  export { atomicContractSuite } from './atomic-suite.js';
4
4
  export { searchContractSuite } from './search-suite.js';
5
5
  export { entityVersionContractSuite } from './entity-version-suite.js';
6
+ export { timelineContractSuite } from './timeline-suite.js';
6
7
  export { concurrencyContractSuite } from './concurrency-suite.js';
8
+ export { idempotencyContractSuite } from './idempotency-suite.js';
7
9
  export { listContractSuite } from './list-suite.js';
8
10
  export { scheduleContractSuite } from './schedule-suite.js';
9
11
  export { inputParseContractSuite } from './input-parse-suite.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAE/F,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE5E,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAOxF,OAAO,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,0BAA0B,EAC1B,mBAAmB,EACnB,OAAO,EACP,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,OAAO,EACP,eAAe,EACf,QAAQ,EACR,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,mBAAmB,GAEpB,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAE/F,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE5E,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAOxF,OAAO,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,0BAA0B,EAC1B,mBAAmB,EACnB,OAAO,EACP,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,OAAO,EACP,eAAe,EACf,QAAQ,EACR,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,mBAAmB,GAEpB,MAAM,wBAAwB,CAAC"}
package/dist/modules.d.ts CHANGED
@@ -1808,6 +1808,110 @@ export declare const concurrencyModManifest: {
1808
1808
  } | undefined;
1809
1809
  };
1810
1810
  export declare const concurrencyMod: ModuleRegistration;
1811
+ export declare const idempotencyModManifest: {
1812
+ id: string & z.$brand<"ModuleId">;
1813
+ version: string;
1814
+ kernelContract: string;
1815
+ permissions: {
1816
+ key: string & z.$brand<"PermissionKey">;
1817
+ description: string;
1818
+ }[];
1819
+ events: {
1820
+ emits: {
1821
+ type: string;
1822
+ schemaVersion: number;
1823
+ }[];
1824
+ consumes: {
1825
+ type: string;
1826
+ schemaVersion: number;
1827
+ }[];
1828
+ };
1829
+ migrations: {
1830
+ journalDir: string;
1831
+ compatibleFrom: string;
1832
+ };
1833
+ attachmentTargets: {
1834
+ entityType: string;
1835
+ readPermission: string & z.$brand<"PermissionKey">;
1836
+ writePermission?: (string & z.$brand<"PermissionKey">) | undefined;
1837
+ }[];
1838
+ entityRelations?: {
1839
+ entityType: string;
1840
+ parentType: string;
1841
+ }[] | undefined;
1842
+ guards?: {
1843
+ before: string;
1844
+ predicate: string;
1845
+ config: Record<string, unknown>;
1846
+ }[] | undefined;
1847
+ schedules?: {
1848
+ operation: string;
1849
+ cadence: {
1850
+ everyMinutes: number;
1851
+ };
1852
+ input?: Record<string, unknown> | undefined;
1853
+ permissions: (string & z.$brand<"PermissionKey">)[];
1854
+ }[] | undefined;
1855
+ withdraws?: string[] | undefined;
1856
+ entitlementKey: string;
1857
+ envSpec?: {
1858
+ key: string;
1859
+ label?: string | undefined;
1860
+ description: string;
1861
+ placeholder?: string | undefined;
1862
+ required: boolean;
1863
+ secret: boolean;
1864
+ default?: string | undefined;
1865
+ group?: string | undefined;
1866
+ }[] | undefined;
1867
+ ownerGrants?: (string & z.$brand<"PermissionKey">)[] | undefined;
1868
+ entitlements?: string[] | undefined;
1869
+ provides?: string[] | undefined;
1870
+ requires?: string[] | undefined;
1871
+ api?: string | undefined;
1872
+ searchables?: {
1873
+ entityType: string;
1874
+ fields: string[];
1875
+ table?: string | undefined;
1876
+ idColumn?: string | undefined;
1877
+ tokenizer?: "prefix" | "substring" | undefined;
1878
+ }[] | undefined;
1879
+ lists?: {
1880
+ entityType: string;
1881
+ sortable: string[];
1882
+ filterable?: string[] | undefined;
1883
+ table?: string | undefined;
1884
+ idColumn?: string | undefined;
1885
+ }[] | undefined;
1886
+ ui?: {
1887
+ routes?: {
1888
+ path: string;
1889
+ screen: string;
1890
+ permission: string & z.$brand<"PermissionKey">;
1891
+ }[] | undefined;
1892
+ nav?: {
1893
+ label: string;
1894
+ icon?: string | undefined;
1895
+ to: string;
1896
+ permission: string & z.$brand<"PermissionKey">;
1897
+ }[] | undefined;
1898
+ entityViews?: {
1899
+ entityType: string;
1900
+ view: string;
1901
+ }[] | undefined;
1902
+ widgets?: {
1903
+ slot: string;
1904
+ component: string;
1905
+ permission: string & z.$brand<"PermissionKey">;
1906
+ }[] | undefined;
1907
+ settingsPanels?: {
1908
+ label: string;
1909
+ component: string;
1910
+ permission: string & z.$brand<"PermissionKey">;
1911
+ }[] | undefined;
1912
+ } | undefined;
1913
+ };
1914
+ export declare const idempotencyMod: ModuleRegistration;
1811
1915
  export declare const contractTestModules: ModuleRegistration[];
1812
1916
  export declare const brokenModManifest: {
1813
1917
  id: string & z.$brand<"ModuleId">;
@@ -1 +1 @@
1
- {"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"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"}
package/dist/modules.js CHANGED
@@ -7,8 +7,8 @@
7
7
  * validates) draw from this one source. The assertions live in the suites; the
8
8
  * artifacts live here.
9
9
  */
10
- import { dataSubjectId, moduleManifest, operationInputsOf, operationConcurrencyOf, permissionKey, principalId, z, } from '@substrat-run/contracts';
11
- import { assertAllowed, } from '@substrat-run/kernel';
10
+ import { dataSubjectId, moduleManifest, operationInputsOf, operationConcurrencyOf, operationIdempotencyOptOutsOf, IDEMPOTENCY_RESULT_LIMIT, permissionKey, principalId, z, } from '@substrat-run/contracts';
11
+ import { assertAllowed, readHistory, readTimeline, ulid, } from '@substrat-run/kernel';
12
12
  // -- manifests ---------------------------------------------------------------
13
13
  export const testModManifest = moduleManifest.parse({
14
14
  id: '@test/mod',
@@ -294,6 +294,46 @@ export const contractTestBareOps = {
294
294
  // documented hole, pinned deliberately so it is a known property rather than a
295
295
  // surprise. The fix is a compile-checked `concurrency` against `emits` (#129),
296
296
  // not a change here.
297
+ // -- #800: the supported read of an entity's history ------------------------
298
+ // Emit N events about one entity in ONE invocation. `ctx.now()` is stable for
299
+ // the whole operation (#812), so every row lands with the IDENTICAL
300
+ // `occurred_at` — which is what makes a timestamp cursor lose rows, and what
301
+ // the suite needs to be able to construct on purpose rather than hope for.
302
+ 'test/emit-burst': ((ctx, input) => {
303
+ for (let n = 0; n < input.count; n++) {
304
+ ctx.emit({
305
+ type: 'test.happened',
306
+ schemaVersion: 1,
307
+ entity: { entityType: 'test-thing', entityId: input.entityId },
308
+ piiClass: 'none',
309
+ payload: { n },
310
+ });
311
+ }
312
+ return ctx.now();
313
+ }),
314
+ // The reads under test. They take the whole page shape so the suite can drive
315
+ // limit, cursor and order without a variant operation per case.
316
+ 'test/timeline': ((ctx, input) => readTimeline(ctx, { entityType: input.entityType, entityId: input.entityId }, input)),
317
+ 'test/history': ((ctx, input) => readHistory(ctx, { entityType: input.entityType, entityId: input.entityId }, input)),
318
+ // An event carrying PII, so the suite can shred it and assert the history
319
+ // degrades to a null payload instead of vanishing or throwing.
320
+ //
321
+ // It CHECKS before it emits, unlike `test/emit-about`, and that is the point
322
+ // rather than politeness: `authorization` is stamped from the checks the
323
+ // operation passed (K-34), so an operation that checks nothing writes a null
324
+ // there — indistinguishable from a row predating the column. A history read
325
+ // has to be driven against an event that actually recorded its authority.
326
+ 'test/emit-about-with-payload': (async (ctx, input) => {
327
+ assertAllowed(await ctx.check(permissionKey.parse('testmod:use')));
328
+ ctx.emit({
329
+ type: 'test.happened',
330
+ schemaVersion: 1,
331
+ entity: { entityType: 'test-thing', entityId: input.entityId },
332
+ piiClass: 'direct',
333
+ subjectId: dataSubjectId.parse(input.subject),
334
+ payload: { said: input.said },
335
+ });
336
+ }),
297
337
  'test/mutate-silently': ((ctx) => {
298
338
  ctx.sql.exec('CREATE TABLE IF NOT EXISTS quiet (n INTEGER NOT NULL)');
299
339
  ctx.sql.exec('INSERT INTO quiet (n) VALUES (1)');
@@ -1164,6 +1204,107 @@ export const concurrencyMod = {
1164
1204
  operationInputs: operationInputsOf(concurrencyDeclaration),
1165
1205
  operationConcurrency: operationConcurrencyOf(concurrencyDeclaration),
1166
1206
  };
1207
+ // -- #116: request idempotency ------------------------------------------------
1208
+ export const idempotencyModManifest = moduleManifest.parse({
1209
+ id: '@test/idempotency',
1210
+ version: '1.0.0',
1211
+ kernelContract: '^0.0.1',
1212
+ permissions: [{ key: 'idem:use', description: 'the idempotency fixture permission' }],
1213
+ events: { emits: [{ type: 'idem.created', schemaVersion: 1 }], consumes: [] },
1214
+ migrations: { journalDir: './migrations', compatibleFrom: '1.0.0' },
1215
+ attachmentTargets: [],
1216
+ entitlementKey: 'idem',
1217
+ });
1218
+ const IDEM_USE = permissionKey.parse('idem:use');
1219
+ /**
1220
+ * The fixture that makes a duplicate VISIBLE.
1221
+ *
1222
+ * Every call appends a row, so "was this replayed?" is not answered by trusting
1223
+ * a flag the host set — it is answered by counting what the handler did. A suite
1224
+ * that asserted only on the returned value would pass just as happily against a
1225
+ * host that re-ran the operation and happened to produce the same answer, which
1226
+ * is precisely the bug (a second work order looks a lot like the first).
1227
+ */
1228
+ const idemCreate = async (ctx, input) => {
1229
+ assertAllowed(await ctx.check(IDEM_USE));
1230
+ ctx.sql.exec('CREATE TABLE IF NOT EXISTS idem_runs (run TEXT PRIMARY KEY, thing TEXT)');
1231
+ const run = ulid();
1232
+ ctx.sql.exec('INSERT INTO idem_runs (run, thing) VALUES (?, ?)', [run, input.thingId]);
1233
+ ctx.emit({
1234
+ type: 'idem.created',
1235
+ schemaVersion: 1,
1236
+ entity: { entityType: 'idem-thing', entityId: input.thingId },
1237
+ piiClass: 'none',
1238
+ payload: { label: input.label ?? null },
1239
+ });
1240
+ return { id: input.thingId, run, label: input.label ?? null };
1241
+ };
1242
+ /** Counts what actually ran — the suite's ground truth. */
1243
+ const idemRuns = async (ctx) => {
1244
+ assertAllowed(await ctx.check(IDEM_USE));
1245
+ ctx.sql.exec('CREATE TABLE IF NOT EXISTS idem_runs (run TEXT PRIMARY KEY, thing TEXT)');
1246
+ const rows = ctx.sql.query('SELECT run FROM idem_runs');
1247
+ return { count: rows.length };
1248
+ };
1249
+ /**
1250
+ * Fails after writing, every time.
1251
+ *
1252
+ * The write matters: it proves the recording rolls back with the work rather
1253
+ * than merely never being reached. A retry must execute, because nothing
1254
+ * happened the first time.
1255
+ */
1256
+ const idemFails = async (ctx, input) => {
1257
+ assertAllowed(await ctx.check(IDEM_USE));
1258
+ ctx.sql.exec('CREATE TABLE IF NOT EXISTS idem_runs (run TEXT PRIMARY KEY, thing TEXT)');
1259
+ ctx.sql.exec('INSERT INTO idem_runs (run, thing) VALUES (?, ?)', [ulid(), input.thingId]);
1260
+ throw new Error('idem/fails always fails');
1261
+ };
1262
+ /** Returns more than `IDEMPOTENCY_RESULT_LIMIT` — the recording that cannot be kept. */
1263
+ const idemBig = async (ctx, input) => {
1264
+ assertAllowed(await ctx.check(IDEM_USE));
1265
+ ctx.sql.exec('CREATE TABLE IF NOT EXISTS idem_runs (run TEXT PRIMARY KEY, thing TEXT)');
1266
+ ctx.sql.exec('INSERT INTO idem_runs (run, thing) VALUES (?, ?)', [ulid(), input.thingId]);
1267
+ return { id: input.thingId, blob: 'x'.repeat(IDEMPOTENCY_RESULT_LIMIT + 1) };
1268
+ };
1269
+ /**
1270
+ * Declares `idempotency: false` — its response is a credential in the story this
1271
+ * fixture tells, and must not be recorded. A key here is REFUSED.
1272
+ */
1273
+ const idemSecret = async (ctx, input) => {
1274
+ assertAllowed(await ctx.check(IDEM_USE));
1275
+ ctx.sql.exec('CREATE TABLE IF NOT EXISTS idem_runs (run TEXT PRIMARY KEY, thing TEXT)');
1276
+ ctx.sql.exec('INSERT INTO idem_runs (run, thing) VALUES (?, ?)', [ulid(), input.thingId]);
1277
+ return { id: input.thingId, secret: 'never-recorded' };
1278
+ };
1279
+ const idempotencyDeclaration = {
1280
+ 'idem/create': {
1281
+ input: z.object({ thingId: z.string(), label: z.string().optional() }),
1282
+ },
1283
+ // Guarded AND idempotent — the two seams on one operation, which is the case
1284
+ // that proves a replay hands back the original's tag rather than no tag.
1285
+ 'idem/create-guarded': {
1286
+ input: z.object({ thingId: z.string(), label: z.string().optional() }),
1287
+ concurrency: { over: 'idem-thing', idFrom: 'thingId' },
1288
+ },
1289
+ 'idem/runs': { input: z.object({}) },
1290
+ 'idem/fails': { input: z.object({ thingId: z.string() }) },
1291
+ 'idem/big': { input: z.object({ thingId: z.string() }) },
1292
+ 'idem/secret': { input: z.object({ thingId: z.string() }), idempotency: false },
1293
+ };
1294
+ export const idempotencyMod = {
1295
+ manifest: idempotencyModManifest,
1296
+ operations: {
1297
+ 'idem/create': idemCreate,
1298
+ 'idem/create-guarded': idemCreate,
1299
+ 'idem/runs': idemRuns,
1300
+ 'idem/fails': idemFails,
1301
+ 'idem/big': idemBig,
1302
+ 'idem/secret': idemSecret,
1303
+ },
1304
+ operationInputs: operationInputsOf(idempotencyDeclaration),
1305
+ operationConcurrency: operationConcurrencyOf(idempotencyDeclaration),
1306
+ operationIdempotencyOptOuts: operationIdempotencyOptOutsOf(idempotencyDeclaration),
1307
+ };
1167
1308
  export const contractTestModules = [
1168
1309
  ...contractTestInitialModules,
1169
1310
  lateMod,
@@ -1176,6 +1317,7 @@ export const contractTestModules = [
1176
1317
  listMod,
1177
1318
  parseMod,
1178
1319
  concurrencyMod,
1320
+ idempotencyMod,
1179
1321
  ];
1180
1322
  export const brokenModManifest = moduleManifest.parse({
1181
1323
  id: '@test/broken',
@@ -1 +1 @@
1
- {"version":3,"file":"modules.js","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modules.js","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ScopeHostFixture } from './scope-host-suite.js';
2
+ export declare function timelineContractSuite(adapterName: string, makeFixture: () => Promise<ScopeHostFixture>): void;
3
+ //# sourceMappingURL=timeline-suite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline-suite.d.ts","sourceRoot":"","sources":["../src/timeline-suite.ts"],"names":[],"mappings":"AAuCA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAK9D,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,GAC3C,IAAI,CA+NN"}
@@ -0,0 +1,223 @@
1
+ /**
2
+ * Contract suite for `readTimeline` / `readHistory` — the supported read of an
3
+ * entity's history (#800).
4
+ *
5
+ * What it pins is not that a `SELECT` runs. Five demos already had one and all
6
+ * five ran; the suite exists because of what they got WRONG, and every case here
7
+ * is one of those:
8
+ *
9
+ * - **A timestamp cursor loses rows.** Meridian's and rally's timelines walked
10
+ * `occurred_at > ?`, and `ctx.now()` is stable for a whole invocation (#812) —
11
+ * so every event one operation emits shares an instant, and a page boundary
12
+ * inside them dropped the rest. The burst case constructs that on purpose.
13
+ * - **`actor` is not an id.** It is stored `JSON.stringify`d over a union whose
14
+ * principal member is a bare string, so the column holds `"01J…"` WITH quotes.
15
+ * The suite asserts the decoded value, for a principal and for a system actor,
16
+ * because the string-shaped read is the trap that looks like it works.
17
+ * - **A shred keeps the row.** The payload goes, the envelope stays, and a
18
+ * history that threw or skipped the row would be a worse answer than
19
+ * "something happened here and you may not know what."
20
+ *
21
+ * Behavioural against a real database throughout, for the reason the entity
22
+ * version suite gives: a query that reads correctly can still be wrong, and a
23
+ * string assertion would call it a pass.
24
+ */
25
+ import { describe, it, expect, beforeAll, afterAll } from 'vitest';
26
+ import { dataSubjectId, permissionKey, platformActorId, principalId, scopeId, tenantId, } from '@substrat-run/contracts';
27
+ import { ulid } from '@substrat-run/kernel';
28
+ import { contractTestBareOps, testMod } from './modules.js';
29
+ const PERM_USE = permissionKey.parse('testmod:use');
30
+ export function timelineContractSuite(adapterName, makeFixture) {
31
+ describe(`entity timeline (readTimeline / readHistory): ${adapterName}`, () => {
32
+ let fixture;
33
+ let host;
34
+ let stub;
35
+ const t1 = tenantId.parse(ulid());
36
+ const s1 = scopeId.parse(ulid());
37
+ const alice = principalId.parse(ulid());
38
+ const staff = platformActorId.parse(ulid());
39
+ const timeline = (entityId, page = {}, entityType = 'test-thing') => stub.invoke('test/timeline', { entityType, entityId, ...page });
40
+ const history = (entityId, page = {}, entityType = 'test-thing') => stub.invoke('test/history', { entityType, entityId, ...page });
41
+ const emitAbout = (entityId, subject) => stub.invoke('test/emit-about', { entityId, ...(subject ? { subject } : {}) });
42
+ const burst = (entityId, count) => stub.invoke('test/emit-burst', { entityId, count });
43
+ const said = (entityId, subject, what) => stub.invoke('test/emit-about-with-payload', { entityId, subject, said: what });
44
+ beforeAll(async () => {
45
+ fixture = await makeFixture();
46
+ host = fixture.host;
47
+ for (const [name, handler] of Object.entries(contractTestBareOps)) {
48
+ host.defineOperation(name, handler);
49
+ }
50
+ host.registerModule(testMod);
51
+ await host.admin.createTenant(staff, { id: t1, slug: 'timeline-tenant', name: 'Timeline Tenant' });
52
+ await host.admin.grantEntitlement(staff, t1, 'testmod');
53
+ await host.admin.defineRole(staff, t1, {
54
+ key: 'timeline-admin',
55
+ permissions: [PERM_USE],
56
+ source: 'vertical',
57
+ });
58
+ await host.admin.assignRole(staff, {
59
+ principalId: alice,
60
+ roleKey: 'timeline-admin',
61
+ node: { tenantId: t1, scopeId: null },
62
+ });
63
+ await host.provisionScope(staff, { tenantId: t1, scopeId: s1, vertical: 'timeline-vertical' });
64
+ await host.admin.activateScope(staff, t1, s1);
65
+ stub = await host.getScope(alice, t1, s1);
66
+ });
67
+ afterAll(async () => {
68
+ await fixture.cleanup();
69
+ });
70
+ it('is empty for an entity nothing has emitted about', async () => {
71
+ const page = await timeline('never-touched');
72
+ expect(page.entries).toEqual([]);
73
+ // Short page ⇒ the walk is done. A non-null cursor here would send a
74
+ // client back for a second empty fetch forever.
75
+ expect(page.nextCursor).toBeNull();
76
+ });
77
+ it('returns the envelope in creation order', async () => {
78
+ const id = `e-${ulid()}`;
79
+ await emitAbout(id);
80
+ await emitAbout(id);
81
+ await emitAbout(id);
82
+ const { entries } = await timeline(id);
83
+ expect(entries).toHaveLength(3);
84
+ expect(entries.map((e) => e.type)).toEqual([
85
+ 'test.happened',
86
+ 'test.happened',
87
+ 'test.happened',
88
+ ]);
89
+ // `ORDER BY id` IS creation order because `ulid()` is monotonic — the same
90
+ // property `entityVersionQuery` relies on. Asserted rather than assumed,
91
+ // since losing it would make timelines subtly wrong and nothing else red.
92
+ const ids = entries.map((e) => e.id);
93
+ expect([...ids].sort()).toEqual(ids);
94
+ });
95
+ it('decodes `actor` into the union rather than handing back stored JSON', async () => {
96
+ const id = `e-${ulid()}`;
97
+ await emitAbout(id);
98
+ const [entry] = (await timeline(id)).entries;
99
+ // The trap this helper exists to close. The column holds `"01J…"` — quotes
100
+ // included — so a caller resolving a name against the raw text misses every
101
+ // time, and the natural fix is a string-trim that then breaks on a system
102
+ // actor. Here it is the principal id itself.
103
+ expect(entry.actor).toBe(alice);
104
+ expect(typeof entry.actor).toBe('string');
105
+ expect(JSON.stringify(entry.actor).startsWith('"\\"')).toBe(false);
106
+ });
107
+ it('is per entity — an event about one does not appear on another', async () => {
108
+ const left = `e-${ulid()}`;
109
+ const right = `e-${ulid()}`;
110
+ await emitAbout(left);
111
+ await emitAbout(right);
112
+ await emitAbout(right);
113
+ expect((await timeline(left)).entries).toHaveLength(1);
114
+ expect((await timeline(right)).entries).toHaveLength(2);
115
+ // Same id, other type: the pair identifies the row, not the id alone.
116
+ expect((await timeline(left, {}, 'other-thing')).entries).toEqual([]);
117
+ });
118
+ it('pages without losing events that share an instant', async () => {
119
+ const id = `e-${ulid()}`;
120
+ // One invocation, five events. `ctx.now()` does not move inside an
121
+ // operation, so all five carry the same `occurred_at` — this is the
122
+ // ordinary case, not a contrived tie.
123
+ const at = await burst(id, 5);
124
+ const first = await timeline(id, { limit: 2 });
125
+ expect(first.entries).toHaveLength(2);
126
+ expect(first.nextCursor).toBe(first.entries[1].id);
127
+ expect(first.entries.every((e) => e.occurredAt === at)).toBe(true);
128
+ const second = await timeline(id, { limit: 2, cursor: first.nextCursor });
129
+ const third = await timeline(id, { limit: 2, cursor: second.nextCursor });
130
+ expect(third.nextCursor).toBeNull();
131
+ const walked = [...first.entries, ...second.entries, ...third.entries].map((e) => e.id);
132
+ // The assertion the old timestamp cursor failed: five emitted, five walked,
133
+ // none seen twice. `occurred_at > ?` returned two and then nothing, because
134
+ // every remaining row shared the instant it had just walked past.
135
+ expect(walked).toHaveLength(5);
136
+ expect(new Set(walked).size).toBe(5);
137
+ });
138
+ it('walks newest-first on `desc`, over the same rows', async () => {
139
+ const id = `e-${ulid()}`;
140
+ await burst(id, 4);
141
+ const asc = (await timeline(id)).entries.map((e) => e.id);
142
+ const desc = (await timeline(id, { order: 'desc' })).entries.map((e) => e.id);
143
+ expect(desc).toEqual([...asc].reverse());
144
+ // The cursor is exclusive in BOTH directions — strictly before, walking down.
145
+ const firstDown = await timeline(id, { order: 'desc', limit: 2 });
146
+ const nextDown = await timeline(id, {
147
+ order: 'desc',
148
+ limit: 2,
149
+ cursor: firstDown.nextCursor,
150
+ });
151
+ expect(nextDown.entries.map((e) => e.id)).toEqual(asc.slice(0, 2).reverse());
152
+ });
153
+ it("uses the event id as the cursor — the entity's version at that point", async () => {
154
+ const id = `e-${ulid()}`;
155
+ await emitAbout(id);
156
+ await emitAbout(id);
157
+ const { entries } = await timeline(id);
158
+ const version = await stub.invoke('test/version-of', {
159
+ entityType: 'test-thing',
160
+ entityId: id,
161
+ });
162
+ // #901's token and this walk's last entry are the same value, which is the
163
+ // point of ordering by `id`: "list the history", "name a version" and
164
+ // "refuse my stale write" (#129) stop being three vocabularies.
165
+ expect(entries[entries.length - 1].id).toBe(version);
166
+ });
167
+ it('carries the payload, the classification and the authorization', async () => {
168
+ const id = `e-${ulid()}`;
169
+ await said(id, dataSubjectId.parse(ulid()), 'moved to Customer');
170
+ const [entry] = (await history(id)).entries;
171
+ // The fat event — the NEW values. "X → Y" is reconstructed by diffing
172
+ // consecutive payloads; nothing stores a before-state, which is a property
173
+ // of the spine and not something this read could have hidden.
174
+ expect(entry.payload).toEqual({ said: 'moved to Customer' });
175
+ expect(entry.piiClass).toBe('direct');
176
+ expect(entry.subjectId).not.toBeNull();
177
+ // K-34: the checks the emitting operation passed. Null would mean
178
+ // UNRECORDED — a row written before the column existed — which is a
179
+ // different fact from an empty list and must not be conflated with one.
180
+ expect(entry.authorization).not.toBeNull();
181
+ expect(entry.authorization.map((a) => a.permission)).toContain(PERM_USE);
182
+ // And the TIMELINE read of the same event carries none of it. That is the
183
+ // whole reason the two are separate: one has a disclosure decision behind
184
+ // it and the other cannot have.
185
+ const [envelope] = (await timeline(id)).entries;
186
+ expect(envelope).not.toHaveProperty('payload');
187
+ expect(envelope.id).toBe(entry.id);
188
+ });
189
+ it('degrades to a null payload after a shred, keeping the envelope', async () => {
190
+ const id = `e-${ulid()}`;
191
+ const subject = dataSubjectId.parse(ulid());
192
+ await said(id, subject, 'something about a person');
193
+ const before = (await history(id)).entries[0];
194
+ expect(before.payload).toEqual({ said: 'something about a person' });
195
+ const receipt = await host.admin.shredSubject(staff, t1, s1, subject);
196
+ expect(receipt.eventsRedacted).toBe(1);
197
+ const after = (await history(id)).entries[0];
198
+ // §5.3's line, held exactly: the payload goes, the envelope stays. A
199
+ // history after an erasure correctly reads "someone changed this, then" —
200
+ // so a renderer must expect the null. It is a supported result, which is
201
+ // why this is asserted rather than left to a caller to discover.
202
+ expect(after.payload).toBeNull();
203
+ expect(after.id).toBe(before.id);
204
+ expect(after.occurredAt).toBe(before.occurredAt);
205
+ expect(after.actor).toBe(before.actor);
206
+ expect(after.subjectId).toBe(subject);
207
+ // And the timeline — which never carried a payload — is unchanged by it.
208
+ expect((await timeline(id)).entries).toHaveLength(1);
209
+ });
210
+ it('defaults and caps the page size rather than answering unbounded', async () => {
211
+ const id = `e-${ulid()}`;
212
+ await burst(id, 3);
213
+ // An app walking a screen must not receive ten thousand rows because
214
+ // nobody named a number. This differs from `ListPage`'s kernel-read
215
+ // convention (unset ⇒ unbounded) deliberately, and matches what the HTTP
216
+ // layer would have given the same caller.
217
+ const page = await timeline(id, { limit: 0 });
218
+ expect(page.entries).toHaveLength(3);
219
+ expect(page.nextCursor).toBeNull();
220
+ });
221
+ });
222
+ }
223
+ //# sourceMappingURL=timeline-suite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline-suite.js","sourceRoot":"","sources":["../src/timeline-suite.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@substrat-run/contract-tests",
3
- "version": "0.88.0",
3
+ "version": "0.89.0",
4
4
  "description": "The suite every scope-host adapter must pass, forever (D-14)",
5
5
  "license": "AGPL-3.0-only",
6
6
  "repository": {
@@ -31,8 +31,8 @@
31
31
  ],
32
32
  "dependencies": {
33
33
  "vitest": "^3.2.7",
34
- "@substrat-run/contracts": "^0.88.0",
35
- "@substrat-run/kernel": "^0.88.0"
34
+ "@substrat-run/contracts": "^0.89.0",
35
+ "@substrat-run/kernel": "^0.89.0"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@types/node": "^22.0.0",