@substrat-run/contract-tests 0.149.0 → 0.151.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.
Files changed (36) hide show
  1. package/dist/check-tally-module.d.ts +103 -0
  2. package/dist/check-tally-module.d.ts.map +1 -0
  3. package/dist/check-tally-module.js +133 -0
  4. package/dist/check-tally-module.js.map +1 -0
  5. package/dist/check-tally-suite.d.ts +6 -0
  6. package/dist/check-tally-suite.d.ts.map +1 -0
  7. package/dist/check-tally-suite.js +152 -0
  8. package/dist/check-tally-suite.js.map +1 -0
  9. package/dist/fixture-version.d.ts +12 -0
  10. package/dist/fixture-version.d.ts.map +1 -0
  11. package/dist/fixture-version.js +14 -0
  12. package/dist/fixture-version.js.map +1 -0
  13. package/dist/index.d.ts +2 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +2 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/modules.d.ts.map +1 -1
  18. package/dist/modules.js +5 -1
  19. package/dist/modules.js.map +1 -1
  20. package/dist/orphan-sweep-suite.d.ts +5 -0
  21. package/dist/orphan-sweep-suite.d.ts.map +1 -1
  22. package/dist/orphan-sweep-suite.js +142 -6
  23. package/dist/orphan-sweep-suite.js.map +1 -1
  24. package/dist/scope-host-suite.d.ts.map +1 -1
  25. package/dist/scope-host-suite.js +8 -7
  26. package/dist/scope-host-suite.js.map +1 -1
  27. package/dist/store-driver-release-suite.d.ts.map +1 -1
  28. package/dist/store-driver-release-suite.js +4 -3
  29. package/dist/store-driver-release-suite.js.map +1 -1
  30. package/dist/upload-link-replay-suite.d.ts.map +1 -1
  31. package/dist/upload-link-replay-suite.js +2 -0
  32. package/dist/upload-link-replay-suite.js.map +1 -1
  33. package/dist/vertical-events-suite.d.ts.map +1 -1
  34. package/dist/vertical-events-suite.js +3 -2
  35. package/dist/vertical-events-suite.js.map +1 -1
  36. package/package.json +4 -4
@@ -34,7 +34,7 @@
34
34
  */
35
35
  import { describe, it, expect, beforeAll, afterAll } from 'vitest';
36
36
  import { errorCodeOf, platformActorId, principalId, scopeId, tenantId, } from '@substrat-run/contracts';
37
- import { ATTACHMENT_CONDEMNED, ORPHAN_SWEEP_FENCE_MS, ORPHAN_SWEEP_GRACE_MS, attachmentBlobKey, attachmentSweepFenceKey, ulid, } from '@substrat-run/kernel';
37
+ import { ATTACHMENT_CONDEMNED, ORPHAN_SWEEP_DRY_RUN_WINDOW_MS, ORPHAN_SWEEP_UNLICENSED, ORPHAN_SWEEP_FENCE_MS, ORPHAN_SWEEP_GRACE_MS, attachmentBlobKey, attachmentSweepFenceKey, ulid, } from '@substrat-run/kernel';
38
38
  import { UPL_READ, UPL_WRITE, uploadLinkMod } from './upload-link-module.js';
39
39
  const DAY = 86_400_000;
40
40
  const CROCKFORD = '0123456789ABCDEFGHJKMNPQRSTVWXYZ';
@@ -70,8 +70,8 @@ export function orphanSweepContractSuite(adapterName, makeFixture) {
70
70
  const udoc = () => ({ entityType: 'udoc', entityId: `doc-${++n}` });
71
71
  const files = async (scope) => host.attachments(alice, t1, scope);
72
72
  const upload = async (entity, body, scope = s1) => (await files(scope)).upload({ entity, filename: 'a.txt', contentType: 'text/plain', visibility: 'internal', body: bytes(body) });
73
- /** A pass with the host's clock at `now`, put back to the wall clock afterwards. */
74
- const sweep = async (now, opts = {}) => {
73
+ /** One pass with the host's clock at `now`, put back to the wall clock afterwards. */
74
+ const pass = async (now, opts = {}) => {
75
75
  if (!host.sweepOrphanAttachments)
76
76
  throw new Error('host has no sweepOrphanAttachments');
77
77
  fixture.clockAhead(now - Date.now());
@@ -79,12 +79,24 @@ export function orphanSweepContractSuite(adapterName, makeFixture) {
79
79
  return await host.sweepOrphanAttachments(opts.tenant ?? t1, opts.scope ?? s1, {
80
80
  copiesSettled: true,
81
81
  ...(opts.dryRun ? { dryRun: true } : {}),
82
+ ...(opts.limit !== undefined ? { limit: opts.limit } : {}),
82
83
  });
83
84
  }
84
85
  finally {
85
86
  fixture.clockAhead(0);
86
87
  }
87
88
  };
89
+ /**
90
+ * A pass at `now`, as the platform's phase runs one: a destructive pass is preceded by the dry
91
+ * run at the same clock that licenses it (#2350), and a dry run that found nothing licenses
92
+ * nothing, so its report is the answer. `pass` is the one pass alone.
93
+ */
94
+ const sweep = async (now, opts = {}) => {
95
+ if (opts.dryRun)
96
+ return pass(now, opts);
97
+ const dry = await pass(now, { ...opts, dryRun: true });
98
+ return dry.keys.length === 0 ? dry : pass(now, opts);
99
+ };
88
100
  /** Plant an object no row names, minted at `ms`. */
89
101
  const plant = async (ms, scope = s1) => {
90
102
  const id = idAt(ms);
@@ -268,9 +280,12 @@ export function orphanSweepContractSuite(adapterName, makeFixture) {
268
280
  expect(await (await files(s3)).list(doc)).toEqual([]);
269
281
  expect(await present(attachmentSweepFenceKey(s3))).toBe(true);
270
282
  const key = attachmentBlobKey(s3, record.id);
271
- const inside = await sweep(Date.now() + ORPHAN_SWEEP_GRACE_MS + DAY, { scope: s3 });
272
- expect(inside.deleted).toBe(0);
283
+ // Inside the fence a dry run lists nothing, so it licenses nothing (#2350), and a
284
+ // destructive pass is refused before it lists anything.
285
+ const inside = await pass(Date.now() + ORPHAN_SWEEP_GRACE_MS + DAY, { scope: s3, dryRun: true });
286
+ expect(inside.keys).toEqual([]);
273
287
  expect(inside.fencedUntil).toEqual(expect.any(String));
288
+ expect(reasonOf(await refusal(pass(Date.now() + ORPHAN_SWEEP_GRACE_MS + DAY, { scope: s3 })))).toBe(ORPHAN_SWEEP_UNLICENSED);
274
289
  expect(await present(key)).toBe(true);
275
290
  // Undo the restore: the row is back, and so are its bytes.
276
291
  await host.restoreScope(staff, t1, s3, after);
@@ -316,11 +331,13 @@ export function orphanSweepContractSuite(adapterName, makeFixture) {
316
331
  // Past the age floor by the host's clock, and a caller asking for a time past the fence.
317
332
  fixture.clockAhead(ORPHAN_SWEEP_GRACE_MS + DAY);
318
333
  try {
334
+ // A dry run, so the fence is what answers: it would list the key past the fence.
319
335
  const report = await host.sweepOrphanAttachments(t1, s5, {
320
336
  copiesSettled: true,
337
+ dryRun: true,
321
338
  now: new Date(Date.now() + 400 * DAY).toISOString(),
322
339
  });
323
- expect(report.deleted).toBe(0);
340
+ expect(report.keys).toEqual([]);
324
341
  expect(report.fencedUntil).toEqual(expect.any(String));
325
342
  }
326
343
  finally {
@@ -406,6 +423,125 @@ export function orphanSweepContractSuite(adapterName, makeFixture) {
406
423
  expect(report.keys).toEqual([attachmentBlobKey(s9, orphan)]);
407
424
  });
408
425
  });
426
+ describe("the scope's own dry-run licence (#2350): a destructive pass deletes only what a recent dry run listed", () => {
427
+ const aged = (now) => now + ORPHAN_SWEEP_GRACE_MS + DAY;
428
+ it('a destructive pass with no dry run is refused before it lists anything, and deletes nothing', async () => {
429
+ const s = await freshScope();
430
+ const now = Date.now();
431
+ const orphan = await plant(now, s);
432
+ const err = await refusal(pass(aged(now), { scope: s }));
433
+ expect(errorCodeOf(err)).toBe('conflict');
434
+ expect(reasonOf(err)).toBe(ORPHAN_SWEEP_UNLICENSED);
435
+ expect(await present(attachmentBlobKey(s, orphan))).toBe(true);
436
+ // The positive twin: after a dry run, inside the window, the same pass deletes it.
437
+ expect((await pass(aged(now), { scope: s, dryRun: true })).keys).toEqual([attachmentBlobKey(s, orphan)]);
438
+ const report = await pass(aged(now) + DAY, { scope: s });
439
+ expect(report.keys).toEqual([attachmentBlobKey(s, orphan)]);
440
+ expect(await present(attachmentBlobKey(s, orphan))).toBe(false);
441
+ });
442
+ it('a scope with nothing to condemn is refused all the same, so the refusal does not depend on what is listed', async () => {
443
+ const s = await freshScope();
444
+ expect(reasonOf(await refusal(pass(aged(Date.now()), { scope: s })))).toBe(ORPHAN_SWEEP_UNLICENSED);
445
+ });
446
+ it('a licence past the window is refused, and one at its edge is in force', async () => {
447
+ const s = await freshScope();
448
+ const now = Date.now();
449
+ const orphan = await plant(now, s);
450
+ await pass(aged(now), { scope: s, dryRun: true });
451
+ expect(reasonOf(await refusal(pass(aged(now) + ORPHAN_SWEEP_DRY_RUN_WINDOW_MS + DAY, { scope: s })))).toBe(ORPHAN_SWEEP_UNLICENSED);
452
+ expect(await present(attachmentBlobKey(s, orphan))).toBe(true);
453
+ const edge = await pass(aged(now) + ORPHAN_SWEEP_DRY_RUN_WINDOW_MS - DAY, { scope: s });
454
+ expect(edge.keys).toEqual([attachmentBlobKey(s, orphan)]);
455
+ });
456
+ it('an orphan the dry run did not list is never deleted, though every other guard would let it go', async () => {
457
+ const s = await freshScope();
458
+ const now = Date.now();
459
+ const listed = await plant(now, s);
460
+ await pass(aged(now), { scope: s, dryRun: true });
461
+ // Planted after the dry run, already past the age floor: only the licence holds it.
462
+ const unlisted = await plant(now, s);
463
+ const report = await pass(aged(now) + DAY, { scope: s });
464
+ expect(report.keys).toEqual([attachmentBlobKey(s, listed)]);
465
+ expect(await present(attachmentBlobKey(s, unlisted))).toBe(true);
466
+ // The twin: the next dry run lists it, and the pass after that sweeps it.
467
+ await pass(aged(now) + DAY, { scope: s, dryRun: true });
468
+ expect((await pass(aged(now) + DAY, { scope: s })).keys).toEqual([attachmentBlobKey(s, unlisted)]);
469
+ });
470
+ it('one dry run drains a backlog over consecutive passes, and the emptied licence then refuses', async () => {
471
+ const s = await freshScope();
472
+ const now = Date.now();
473
+ const ids = [];
474
+ for (let i = 0; i < 6; i++)
475
+ ids.push(await plant(now, s));
476
+ ids.sort();
477
+ expect((await pass(aged(now), { scope: s, dryRun: true, limit: 6 })).keys).toHaveLength(6);
478
+ for (let round = 0; round < 3; round++) {
479
+ const report = await pass(aged(now) + DAY, { scope: s, limit: 2 });
480
+ expect(report.keys).toEqual(ids.slice(round * 2, round * 2 + 2).map((id) => attachmentBlobKey(s, id)));
481
+ }
482
+ for (const id of ids)
483
+ expect(await present(attachmentBlobKey(s, id))).toBe(false);
484
+ expect(reasonOf(await refusal(pass(aged(now) + DAY, { scope: s })))).toBe(ORPHAN_SWEEP_UNLICENSED);
485
+ });
486
+ it('a licence whose objects are gone some other way is taken out, so the scope is dry-run again rather than held until it expires', async () => {
487
+ const s = await freshScope();
488
+ const now = Date.now();
489
+ const orphan = await plant(now, s);
490
+ await pass(aged(now), { scope: s, dryRun: true });
491
+ // The listed object disappears without a pass: nothing a pass could delete is left of it.
492
+ await store.delete(attachmentBlobKey(s, orphan));
493
+ const fresh = await plant(now, s);
494
+ const report = await pass(aged(now) + DAY, { scope: s });
495
+ expect(report).toMatchObject({ deleted: 0 });
496
+ expect(report).not.toHaveProperty('consumeFailed');
497
+ // The licence held only that id, so it is empty now: the next destructive pass is refused and
498
+ // the phase dry-runs the scope, which lists the orphan that appeared since.
499
+ expect(reasonOf(await refusal(pass(aged(now) + DAY, { scope: s })))).toBe(ORPHAN_SWEEP_UNLICENSED);
500
+ expect((await pass(aged(now) + DAY, { scope: s, dryRun: true })).keys).toEqual([attachmentBlobKey(s, fresh)]);
501
+ expect((await pass(aged(now) + DAY, { scope: s })).keys).toEqual([attachmentBlobKey(s, fresh)]);
502
+ });
503
+ it('a restore takes the licence away, a forged one in the dump included, so the next destructive pass is refused', async () => {
504
+ const s = await freshScope();
505
+ const now = Date.now();
506
+ const orphan = await plant(now, s);
507
+ await pass(aged(now), { scope: s, dryRun: true });
508
+ const dump = await host.admin.exportScope(staff, t1, s);
509
+ // A dump never carries the licence's rows.
510
+ const table = dump.tables.find((t) => t.name === '_substrat_attachment_sweep_licence');
511
+ expect(table?.rows ?? []).toEqual([]);
512
+ // The restore fences the scope too, so the passes after it run past both the fence and the
513
+ // age floor.
514
+ const later = Date.now() + ORPHAN_SWEEP_FENCE_MS + DAY;
515
+ // A hand-made dump that does, stamped to be in force then, is dropped on load all the same.
516
+ expect(table).toBeDefined();
517
+ const row = table.columns.map(() => null);
518
+ row[table.columns.indexOf('id')] = orphan;
519
+ row[table.columns.indexOf('licensed_at')] = new Date(later).toISOString();
520
+ table.rows.push(row);
521
+ await host.restoreScope(staff, t1, s, dump);
522
+ expect(reasonOf(await refusal(pass(later, { scope: s })))).toBe(ORPHAN_SWEEP_UNLICENSED);
523
+ expect(await present(attachmentBlobKey(s, orphan))).toBe(true);
524
+ // The twin: the dry run it needs, then the delete.
525
+ await pass(later, { scope: s, dryRun: true });
526
+ expect((await pass(later, { scope: s })).keys).toEqual([attachmentBlobKey(s, orphan)]);
527
+ });
528
+ it('a dry run that finds the same orphans again moves no write revision, and one that finds a new one does', async () => {
529
+ // A host that keeps no write revision (the SQLite one) has nothing a carry is fenced on.
530
+ if (!fixture.writeRevision)
531
+ return;
532
+ const s = await freshScope();
533
+ const now = Date.now();
534
+ await plant(now, s);
535
+ await pass(aged(now), { scope: s, dryRun: true });
536
+ const before = await fixture.writeRevision(t1, s);
537
+ await pass(aged(now) + DAY, { scope: s, dryRun: true });
538
+ await pass(aged(now) + 2 * DAY, { scope: s, dryRun: true });
539
+ expect(await fixture.writeRevision(t1, s)).toBe(before);
540
+ await plant(now, s);
541
+ await pass(aged(now) + 2 * DAY, { scope: s, dryRun: true });
542
+ expect(await fixture.writeRevision(t1, s)).not.toBe(before);
543
+ });
544
+ });
409
545
  });
410
546
  }
411
547
  //# sourceMappingURL=orphan-sweep-suite.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"orphan-sweep-suite.js","sourceRoot":"","sources":["../src/orphan-sweep-suite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orphan-sweep-suite.js","sourceRoot":"","sources":["../src/orphan-sweep-suite.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scope-host-suite.d.ts","sourceRoot":"","sources":["../src/scope-host-suite.ts"],"names":[],"mappings":"AAEA,OAAO,EAqBL,KAAK,SAAS,EAsBf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAkBL,KAAK,SAAS,EACf,MAAM,sBAAsB,CAAC;AAc9B,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,SAAS,CAAC;IAChB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAuCD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,aAAa,MACrB,OAAO,CAAC,OAAO,CAAC,QACb,SAAS,YACL,MAAM,KACf,OAAO,CAAC,IAAI,CAOd,CAAC;AAEF,iFAAiF;AACjF,MAAM,WAAW,qBAAqB;IACpC;;;;;;OAMG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACvC;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,EAC5C,IAAI,GAAE,qBAA0B,GAC/B,IAAI,CA8rVN"}
1
+ {"version":3,"file":"scope-host-suite.d.ts","sourceRoot":"","sources":["../src/scope-host-suite.ts"],"names":[],"mappings":"AAEA,OAAO,EAqBL,KAAK,SAAS,EAsBf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAkBL,KAAK,SAAS,EACf,MAAM,sBAAsB,CAAC;AAe9B,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,SAAS,CAAC;IAChB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAuCD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,aAAa,MACrB,OAAO,CAAC,OAAO,CAAC,QACb,SAAS,YACL,MAAM,KACf,OAAO,CAAC,IAAI,CAOd,CAAC;AAEF,iFAAiF;AACjF,MAAM,WAAW,qBAAqB;IACpC;;;;;;OAMG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACvC;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,EAC5C,IAAI,GAAE,qBAA0B,GAC/B,IAAI,CA8rVN"}
@@ -5,6 +5,7 @@ import { INERT_SCOPE_REASON, BACKFILL_MOVE_ID, SCOPE_COPY_LEASE_MS, isSearchInde
5
5
  import { billedMod, contractTestBareOps, contractTestInitialModules, gateModManifest, lateMod, TEST_LIFECYCLE, testModManifest, victimModManifest, } from './modules.js';
6
6
  import { testOperations } from './test-operations.js';
7
7
  import { derivedDigestOf, heldMigrations } from './held-migrations.js';
8
+ import { fixtureVersion } from './fixture-version.js';
8
9
  /**
9
10
  * A journal read whose every row is whole. A test that planted nothing has no business meeting
10
11
  * an `UndecodablePlatformRequest` (#1637), so one fails here, naming why, rather than being
@@ -5246,7 +5247,7 @@ export function scopeHostContractSuite(adapterName, makeFixture, opts = {}) {
5246
5247
  await host.admin.publishVersion(staff, {
5247
5248
  id: versionId,
5248
5249
  verticalSlug: slug,
5249
- version: `1.0.${versionId.slice(-4).toLowerCase()}`,
5250
+ version: fixtureVersion(versionId),
5250
5251
  manifestDigest: `m-${versionId}`,
5251
5252
  permissionDigest: 'p',
5252
5253
  migrationDigest: 'g',
@@ -5308,7 +5309,7 @@ export function scopeHostContractSuite(adapterName, makeFixture, opts = {}) {
5308
5309
  return host.admin.publishVersion(staff, {
5309
5310
  id,
5310
5311
  verticalSlug: slug,
5311
- version: `1.0.${id.slice(-6).toLowerCase()}`,
5312
+ version: fixtureVersion(id),
5312
5313
  manifestDigest: `m-${id}`,
5313
5314
  permissionDigest: 'p',
5314
5315
  migrationDigest: 'g',
@@ -5851,7 +5852,7 @@ export function scopeHostContractSuite(adapterName, makeFixture, opts = {}) {
5851
5852
  const publish = async (manifest) => {
5852
5853
  const id = ulid();
5853
5854
  await host.admin.publishVersion(staff, {
5854
- id, verticalSlug: 'migrationsapart', version: `1.0.${id.toLowerCase()}`, manifestDigest: 'm',
5855
+ id, verticalSlug: 'migrationsapart', version: fixtureVersion(id), manifestDigest: 'm',
5855
5856
  permissionDigest: 'p', deploymentRef: null,
5856
5857
  // #2339: a set it carries is hashed as the host derives it; the others store none to check.
5857
5858
  migrationDigest: typeof manifest === 'string' || !Array.isArray(manifest.migrations) ? 'g' : await derivedDigestOf(manifest),
@@ -5910,7 +5911,7 @@ export function scopeHostContractSuite(adapterName, makeFixture, opts = {}) {
5910
5911
  const publish = async (migrationDigest, migrations, doClasses) => {
5911
5912
  const id = ulid();
5912
5913
  await host.admin.publishVersion(staff, {
5913
- id, verticalSlug: slug, version: `1.0.${id.toLowerCase()}`, manifestDigest: 'm', permissionDigest: 'p',
5914
+ id, verticalSlug: slug, version: fixtureVersion(id), manifestDigest: 'm', permissionDigest: 'p',
5914
5915
  migrationDigest, deploymentRef: null,
5915
5916
  ...(migrations ? { manifestJson: JSON.stringify({ migrations, ...(doClasses ? { doClasses } : {}) }) } : {}),
5916
5917
  });
@@ -6147,7 +6148,7 @@ export function scopeHostContractSuite(adapterName, makeFixture, opts = {}) {
6147
6148
  const put = async (perm, mig, migrations) => {
6148
6149
  const id = ulid();
6149
6150
  await host.admin.publishVersion(staff, {
6150
- id, verticalSlug: slug, version: `1.0.${id.slice(-4).toLowerCase()}`, manifestDigest: `m-${id}`,
6151
+ id, verticalSlug: slug, version: fixtureVersion(id), manifestDigest: `m-${id}`,
6151
6152
  // #2339: the digest is the one the stored migrations give; `mig` names the set without them.
6152
6153
  permissionDigest: perm, deploymentRef: null,
6153
6154
  ...(migrations
@@ -6301,7 +6302,7 @@ export function scopeHostContractSuite(adapterName, makeFixture, opts = {}) {
6301
6302
  const put = async (slug) => {
6302
6303
  const id = ulid();
6303
6304
  await host.admin.publishVersion(staff, {
6304
- id, verticalSlug: slug, version: `1.0.${id.slice(-4).toLowerCase()}`, manifestDigest: 'm', permissionDigest: 'p',
6305
+ id, verticalSlug: slug, version: fixtureVersion(id), manifestDigest: 'm', permissionDigest: 'p',
6305
6306
  migrationDigest: 'g', deploymentRef: null,
6306
6307
  });
6307
6308
  await host.admin.admitVersion(staff, id);
@@ -6406,7 +6407,7 @@ export function scopeHostContractSuite(adapterName, makeFixture, opts = {}) {
6406
6407
  const publishShaped = async (slug, entityGrants, admit = true) => {
6407
6408
  const id = ulid();
6408
6409
  await host.admin.publishVersion(staff, {
6409
- id, verticalSlug: slug, version: `3.0.${id.slice(-4).toLowerCase()}`, manifestDigest: `m-${id}`,
6410
+ id, verticalSlug: slug, version: fixtureVersion(id, 3), manifestDigest: `m-${id}`,
6410
6411
  permissionDigest: 'p', deploymentRef: null,
6411
6412
  ...(await heldMigrations('g', { registry: { permissions: [], roles: [], entityGrants } })),
6412
6413
  });