@elaraai/e3-api-tests 1.0.79 → 1.0.81

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 (50) hide show
  1. package/README.md +1 -1
  2. package/dist/src/fixtures.d.ts +77 -4
  3. package/dist/src/fixtures.d.ts.map +1 -1
  4. package/dist/src/fixtures.js +114 -9
  5. package/dist/src/fixtures.js.map +1 -1
  6. package/dist/src/index.d.ts +2 -0
  7. package/dist/src/index.d.ts.map +1 -1
  8. package/dist/src/index.js +6 -0
  9. package/dist/src/index.js.map +1 -1
  10. package/dist/src/suites/cli.d.ts.map +1 -1
  11. package/dist/src/suites/cli.js +55 -3
  12. package/dist/src/suites/cli.js.map +1 -1
  13. package/dist/src/suites/dataflow.js +27 -27
  14. package/dist/src/suites/dataflow.js.map +1 -1
  15. package/dist/src/suites/dataset-pages.d.ts.map +1 -1
  16. package/dist/src/suites/dataset-pages.js +115 -30
  17. package/dist/src/suites/dataset-pages.js.map +1 -1
  18. package/dist/src/suites/dataset-transfer.d.ts.map +1 -1
  19. package/dist/src/suites/dataset-transfer.js +151 -29
  20. package/dist/src/suites/dataset-transfer.js.map +1 -1
  21. package/dist/src/suites/datasets.d.ts.map +1 -1
  22. package/dist/src/suites/datasets.js +0 -20
  23. package/dist/src/suites/datasets.js.map +1 -1
  24. package/dist/src/suites/functions.d.ts.map +1 -1
  25. package/dist/src/suites/functions.js +18 -3
  26. package/dist/src/suites/functions.js.map +1 -1
  27. package/dist/src/suites/package-transfer.d.ts.map +1 -1
  28. package/dist/src/suites/package-transfer.js +28 -1
  29. package/dist/src/suites/package-transfer.js.map +1 -1
  30. package/dist/src/suites/platform.d.ts.map +1 -1
  31. package/dist/src/suites/platform.js +6 -6
  32. package/dist/src/suites/platform.js.map +1 -1
  33. package/dist/src/suites/record-deploy.d.ts +8 -0
  34. package/dist/src/suites/record-deploy.d.ts.map +1 -0
  35. package/dist/src/suites/record-deploy.js +175 -0
  36. package/dist/src/suites/record-deploy.js.map +1 -0
  37. package/dist/src/suites/records-keyed.d.ts +8 -0
  38. package/dist/src/suites/records-keyed.d.ts.map +1 -0
  39. package/dist/src/suites/records-keyed.js +140 -0
  40. package/dist/src/suites/records-keyed.js.map +1 -0
  41. package/dist/src/suites/repository.d.ts.map +1 -1
  42. package/dist/src/suites/repository.js +62 -6
  43. package/dist/src/suites/repository.js.map +1 -1
  44. package/dist/src/suites/transfer.d.ts.map +1 -1
  45. package/dist/src/suites/transfer.js +6 -170
  46. package/dist/src/suites/transfer.js.map +1 -1
  47. package/dist/src/suites/workspaces.d.ts.map +1 -1
  48. package/dist/src/suites/workspaces.js +26 -13
  49. package/dist/src/suites/workspaces.js.map +1 -1
  50. package/package.json +10 -10
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/suites/functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/suites/functions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"package-transfer.d.ts","sourceRoot":"","sources":["../../../src/suites/package-transfer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA6BH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,CAkNxE"}
1
+ {"version":3,"file":"package-transfer.d.ts","sourceRoot":"","sources":["../../../src/suites/package-transfer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgCH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,CAuPxE"}
@@ -10,7 +10,9 @@
10
10
  import { describe, it } from 'node:test';
11
11
  import assert from 'node:assert/strict';
12
12
  import { readFileSync } from 'node:fs';
13
- import { packageList, packageImport, packageExport, ApiError, ApiTypes, fetchWithAuth, } from '@elaraai/e3-api-client';
13
+ import { join } from 'node:path';
14
+ import { readZipEntries, withRelease, writeZip } from '@elaraai/e3-core/test';
15
+ import { packageList, packageImport, packageExport, workspaceExport, ApiError, ApiTypes, fetchWithAuth, } from '@elaraai/e3-api-client';
14
16
  import { encodeBeast2For, decodeBeast2For, NullType } from '@elaraai/east';
15
17
  import { PackageTransferInitRequestType, PackageTransferInitResponseType, PackageImportStatusType, } from '@elaraai/e3-types';
16
18
  import { createPackageZip } from '../fixtures.js';
@@ -67,6 +69,19 @@ export function packageTransferTests(setup) {
67
69
  assert.ok(err.code === 'package_exists' || err.message.includes('already exists'), `Unexpected error: ${err.message}`);
68
70
  }
69
71
  });
72
+ it('exports a workspace as a job, into a zip that imports as its package', async (t) => {
73
+ const ctx = await withPackageZip(t);
74
+ const opts = await ctx.opts();
75
+ await packageImport(ctx.config.baseUrl, ctx.repoName, ctx.packageZip, opts);
76
+ await ctx.createWorkspace('export-ws');
77
+ await ctx.deployPackage('export-ws', 'transfer-pkg@1.0.0');
78
+ const exported = await workspaceExport(ctx.config.baseUrl, ctx.repoName, 'export-ws', opts, { version: '2.0.0' });
79
+ const imported = await packageImport(ctx.config.baseUrl, ctx.repoName, exported, opts);
80
+ assert.deepStrictEqual([imported.name, imported.version], ['transfer-pkg', '2.0.0']);
81
+ // The export is a job only: nothing answers a request that waits for the zip.
82
+ const waited = await fetchWithAuth(`${ctx.config.baseUrl}/api/repos/${encodeURIComponent(ctx.repoName)}/workspaces/export-ws/export`, { method: 'GET' }, opts);
83
+ assert.strictEqual(waited.status, 404);
84
+ });
70
85
  // =========================================================================
71
86
  // Failure-path tests
72
87
  // =========================================================================
@@ -79,6 +94,18 @@ export function packageTransferTests(setup) {
79
94
  return true;
80
95
  });
81
96
  });
97
+ it('refuses on import a zip a newer e3 exported, naming that release, and imports nothing', async (t) => {
98
+ const ctx = await setup(t);
99
+ const opts = await ctx.opts();
100
+ const zipPath = await createPackageZip(ctx.tempDir, 'newer-pkg', '1.0.0');
101
+ const newer = await writeZip(join(ctx.tempDir, 'newer.zip'), withRelease(await readZipEntries(zipPath), '999.0.0'));
102
+ await assert.rejects(() => packageImport(ctx.config.baseUrl, ctx.repoName, readFileSync(newer), opts), (err) => {
103
+ assert.ok(err instanceof Error, `Expected Error, got ${err}`);
104
+ assert.match(err.message, /e3 999\.0\.0 exported it, and this e3 is \S+ — import it with e3 999\.0\.0 or a newer one/);
105
+ return true;
106
+ });
107
+ assert.deepStrictEqual(await packageList(ctx.config.baseUrl, ctx.repoName, opts), []);
108
+ });
82
109
  it('import of corrupted zip fails', async (t) => {
83
110
  const ctx = await setup(t);
84
111
  const opts = await ctx.opts();
@@ -1 +1 @@
1
- {"version":3,"file":"package-transfer.js","sourceRoot":"","sources":["../../../src/suites/package-transfer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"package-transfer.js","sourceRoot":"","sources":["../../../src/suites/package-transfer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../../src/suites/platform.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAwBH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,CAwIjE"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../../src/suites/platform.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAuBH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,CAwIjE"}
@@ -12,7 +12,7 @@
12
12
  import { describe, it } from 'node:test';
13
13
  import assert from 'node:assert/strict';
14
14
  import { readFileSync } from 'node:fs';
15
- import { workspaceCreate, workspaceList, workspaceRemove, packageImport, Platform, PlatformImpl, } from '@elaraai/e3-api-client';
15
+ import { workspaceCreate, workspaceList, workspaceRemove, packageImport, Platform, } from '@elaraai/e3-api-client';
16
16
  import { StringType, IntegerType, NullType, ArrayType, East } from '@elaraai/east';
17
17
  import { createPackageZip } from '../fixtures.js';
18
18
  /**
@@ -37,7 +37,7 @@ export function platformTests(setup) {
37
37
  return Platform.repoStatus(url, repo, token);
38
38
  });
39
39
  // Compile with platform implementation
40
- const compiled = East.compileAsync(getStatus, PlatformImpl);
40
+ const compiled = East.compileAsync(getStatus, Platform.Implementation);
41
41
  // Run the compiled function with token from context
42
42
  const status = await compiled(ctx.config.baseUrl, ctx.repoName, (await ctx.opts()).token);
43
43
  // Verify results
@@ -56,7 +56,7 @@ export function platformTests(setup) {
56
56
  return Platform.workspaceList(url, repo, token);
57
57
  });
58
58
  // Compile with platform implementation
59
- const compiled = East.compileAsync(listWorkspaces, PlatformImpl);
59
+ const compiled = East.compileAsync(listWorkspaces, Platform.Implementation);
60
60
  // Run the compiled function
61
61
  const workspaces = await compiled(ctx.config.baseUrl, ctx.repoName, (await ctx.opts()).token);
62
62
  // Verify results
@@ -76,7 +76,7 @@ export function platformTests(setup) {
76
76
  return Platform.workspaceList(url, repo, token);
77
77
  });
78
78
  // Compile with platform implementation
79
- const compiled = East.compileAsync(createAndList, PlatformImpl);
79
+ const compiled = East.compileAsync(createAndList, Platform.Implementation);
80
80
  // Run the compiled function
81
81
  const workspaces = await compiled(ctx.config.baseUrl, ctx.repoName, 'east-created-ws', (await ctx.opts()).token);
82
82
  // Verify workspace was created
@@ -87,7 +87,7 @@ export function platformTests(setup) {
87
87
  const removeWs = East.asyncFunction([StringType, StringType, StringType, StringType], NullType, ($, url, repo, name, token) => {
88
88
  return Platform.workspaceRemove(url, repo, name, token);
89
89
  });
90
- const compiledRemove = East.compileAsync(removeWs, PlatformImpl);
90
+ const compiledRemove = East.compileAsync(removeWs, Platform.Implementation);
91
91
  await compiledRemove(ctx.config.baseUrl, ctx.repoName, 'east-created-ws', (await ctx.opts()).token);
92
92
  // Verify removed
93
93
  const finalList = await workspaceList(ctx.config.baseUrl, ctx.repoName, opts);
@@ -103,7 +103,7 @@ export function platformTests(setup) {
103
103
  return packages.size();
104
104
  });
105
105
  // Compile with platform implementation
106
- const compiled = East.compileAsync(listAndCount, PlatformImpl);
106
+ const compiled = East.compileAsync(listAndCount, Platform.Implementation);
107
107
  // Run the compiled function
108
108
  const count = await compiled(ctx.config.baseUrl, ctx.repoName, (await ctx.opts()).token);
109
109
  // Should have 1 package (imported in withPackage)
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../../src/suites/platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../../src/suites/platform.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Licensed under BSL 1.1. See LICENSE for details.
4
+ */
5
+ import type { TestContext } from '../context.js';
6
+ import type { TestSetup } from '../setup.js';
7
+ export declare function recordDeployTests(setup: TestSetup<TestContext>): void;
8
+ //# sourceMappingURL=record-deploy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-deploy.d.ts","sourceRoot":"","sources":["../../../src/suites/record-deploy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAyCH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAsC7C,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,CAsJrE"}
@@ -0,0 +1,175 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Licensed under BSL 1.1. See LICENSE for details.
4
+ */
5
+ /**
6
+ * Record deploy test suite.
7
+ *
8
+ * A deploy decides for each record whether it mints, keeps, migrates, resets,
9
+ * drops or refuses it, and a server runs the deploy as a job the client polls.
10
+ * This takes each decision through the API against a real server and runner:
11
+ * what the job reports, the commits it leaves, and the state it carries — and,
12
+ * while the job runs, how far it has got, which its status and the workspace's
13
+ * lock both say.
14
+ */
15
+ import { describe, it } from 'node:test';
16
+ import assert from 'node:assert/strict';
17
+ import { readFileSync } from 'node:fs';
18
+ import { inspect } from 'node:util';
19
+ import { StringType, decodeBeast2For, encodeBeast2For, variant, none } from '@elaraai/east';
20
+ import { BEAST2_CONTENT_TYPE, PackageJobResponseType, ResponseType, WorkspaceDeployRequestType, WorkspaceDeployStatusType, } from '@elaraai/e3-types';
21
+ import { packageImport, workspaceCreate, workspaceDeploy, workspaceLockStatus, datasetGet, workspaceRecordMutate, workspaceRecordHistory, } from '@elaraai/e3-api-client';
22
+ import { TasksV2Type, createMigrationPackageZip } from '../fixtures.js';
23
+ const PKG = 'migrating-pkg';
24
+ const WS = 'migrating-ws';
25
+ const RECORD = 'records/tasks';
26
+ const tasksPath = [variant('field', 'records'), variant('field', 'tasks')];
27
+ const encodeStr = encodeBeast2For(StringType);
28
+ const decodeTasks = decodeBeast2For(TasksV2Type);
29
+ /**
30
+ * One request made the way a client without e3-api-client makes it: the
31
+ * success value, failing the test on an API error.
32
+ */
33
+ async function call(url, method, type, opts, body) {
34
+ const response = await fetch(url, {
35
+ method,
36
+ headers: {
37
+ 'Accept': BEAST2_CONTENT_TYPE,
38
+ ...(body ? { 'Content-Type': BEAST2_CONTENT_TYPE } : {}),
39
+ ...(opts.token ? { 'Authorization': `Bearer ${opts.token}` } : {}),
40
+ },
41
+ ...(body ? { body } : {}),
42
+ });
43
+ assert.ok(response.ok, `${method} ${url}: ${response.status} ${response.statusText}`);
44
+ const answer = decodeBeast2For(ResponseType(type))(new Uint8Array(await response.arrayBuffer()));
45
+ if (answer.type !== 'success')
46
+ assert.fail(`${method} ${url} was refused: ${inspect(answer.value, { depth: 4 })}`);
47
+ return answer.value;
48
+ }
49
+ export function recordDeployTests(setup) {
50
+ /** A fresh repository holding `versions` of the package, and a workspace to
51
+ * deploy them to. */
52
+ async function holding(t, versions) {
53
+ const ctx = await setup(t);
54
+ const opts = await ctx.opts();
55
+ for (const version of versions) {
56
+ const zip = await createMigrationPackageZip(ctx.tempDir, PKG, version);
57
+ await packageImport(ctx.config.baseUrl, ctx.repoName, readFileSync(zip), opts);
58
+ }
59
+ await workspaceCreate(ctx.config.baseUrl, ctx.repoName, WS, opts);
60
+ return ctx;
61
+ }
62
+ /** Deploy a version of the package: what the deploy decided. */
63
+ async function deploy(ctx, version, options = {}) {
64
+ return workspaceDeploy(ctx.config.baseUrl, ctx.repoName, WS, `${PKG}@${version}`, await ctx.opts(), options);
65
+ }
66
+ /** The record's commits, newest first, each by what made it. */
67
+ async function history(ctx) {
68
+ const { commits } = await workspaceRecordHistory(ctx.config.baseUrl, ctx.repoName, WS, 'tasks', undefined, await ctx.opts());
69
+ return commits.map((commit) => commit.mutation);
70
+ }
71
+ /** The record's state, as its bytes. */
72
+ async function state(ctx) {
73
+ return (await datasetGet(ctx.config.baseUrl, ctx.repoName, WS, tasksPath, await ctx.opts())).data;
74
+ }
75
+ describe('record deploys', { concurrency: false }, () => {
76
+ it('mints, plans, migrates and keeps a record, and says which it did', async (t) => {
77
+ const ctx = await holding(t, ['1.0.0', '2.0.0', '2.1.0']);
78
+ assert.deepEqual((await deploy(ctx, '1.0.0')).records, [{ record: RECORD, action: variant('mint', null) }]);
79
+ const added = await workspaceRecordMutate(ctx.config.baseUrl, ctx.repoName, WS, 'tasks', 'add', { args: [encodeStr('b'), encodeStr('B')], actor: none, limits: none }, await ctx.opts());
80
+ assert.equal(added.outcome.type, 'committed');
81
+ // A plan says what the deploy would do, and writes nothing.
82
+ const migrate = [{ record: RECORD, action: variant('migrate', { steps: ['add_owner'] }) }];
83
+ const before = await state(ctx);
84
+ assert.deepEqual((await deploy(ctx, '2.0.0', { plan: true })).records, migrate);
85
+ assert.deepEqual(await history(ctx), ['add', '$init']);
86
+ assert.deepEqual(await state(ctx), before);
87
+ // The migration carries the workspace's rows, the one added since the
88
+ // deploy among them.
89
+ assert.deepEqual((await deploy(ctx, '2.0.0')).records, migrate);
90
+ assert.deepEqual(await history(ctx), ['$migrate:add_owner', 'add', '$init']);
91
+ assert.deepEqual([...decodeTasks(await state(ctx))], [
92
+ ['a', { title: 'A', owner: 'nobody' }],
93
+ ['b', { title: 'B', owner: 'nobody' }],
94
+ ]);
95
+ // The same package again keeps the record as it is, and another package
96
+ // over it says so in the record's history.
97
+ assert.deepEqual((await deploy(ctx, '2.0.0')).records, [{ record: RECORD, action: variant('keep', { deploy: false }) }]);
98
+ assert.deepEqual((await deploy(ctx, '2.1.0')).records, [{ record: RECORD, action: variant('keep', { deploy: true }) }]);
99
+ assert.deepEqual(await history(ctx), ['$deploy', '$migrate:add_owner', 'add', '$init']);
100
+ });
101
+ it('says how far it has got while it runs, in the job and through the workspace\'s lock', async (t) => {
102
+ const ctx = await holding(t, ['1.0.0', '2.0.0']);
103
+ await deploy(ctx, '1.0.0');
104
+ const opts = await ctx.opts();
105
+ const base = `${ctx.config.baseUrl}/api/repos/${encodeURIComponent(ctx.repoName)}/workspaces/${WS}`;
106
+ // Started here rather than through workspaceDeploy, so the job is polled
107
+ // as often as it moves; the migration runs on the runner, which takes a
108
+ // while to start.
109
+ const { id } = await call(`${base}/deploy`, 'POST', PackageJobResponseType, opts, encodeBeast2For(WorkspaceDeployRequestType)({
110
+ packageRef: `${PKG}@2.0.0`, schema: variant('migrate', null), allowDropRecords: false, plan: false,
111
+ }));
112
+ const reported = [];
113
+ const held = [];
114
+ for (;;) {
115
+ const [status, lock] = await Promise.all([
116
+ call(`${base}/deploy/${encodeURIComponent(id)}`, 'GET', WorkspaceDeployStatusType, opts),
117
+ workspaceLockStatus(ctx.config.baseUrl, ctx.repoName, WS, opts),
118
+ ]);
119
+ if (lock !== null)
120
+ held.push(lock);
121
+ if (status.type !== 'processing') {
122
+ assert.equal(status.type, 'completed', inspect(status, { depth: 4 }));
123
+ break;
124
+ }
125
+ if (status.value.type === 'deploying' && status.value.value.type === 'some')
126
+ reported.push(status.value.value.value);
127
+ await new Promise((resolve) => setTimeout(resolve, 10));
128
+ }
129
+ assert.ok(reported.length > 0, 'the job said how far it had got while it ran');
130
+ for (const progress of reported) {
131
+ assert.deepEqual(progress.package, { name: PKG, version: '2.0.0' });
132
+ assert.deepEqual(progress.files, [], 'a server leaves a file source to the client, so it takes in none');
133
+ assert.deepEqual(progress.records.map((record) => [record.plan, record.indexes]), [[{ record: RECORD, action: variant('migrate', { steps: ['add_owner'] }) }, []]]);
134
+ }
135
+ // The record's step only moves on: waiting, its migration, then done.
136
+ const steps = reported.map((progress) => progress.records[0].step);
137
+ const order = steps.map((step) => ['waiting', 'migrating', 'done'].indexOf(step.type));
138
+ assert.ok(order.every((at, i) => at >= 0 && (i === 0 || at >= order[i - 1])), inspect(steps, { depth: 3 }));
139
+ for (const step of steps) {
140
+ if (step.type === 'migrating')
141
+ assert.deepEqual(step.value, { name: 'add_owner', step: 1n, steps: 1n });
142
+ }
143
+ assert.ok(held.every((lock) => lock.state.operation.type === 'deployment'), 'only the deploy held the workspace');
144
+ assert.ok(held.some((lock) => lock.progress.type === 'some' && lock.progress.value.type === 'deployment'
145
+ && lock.progress.value.value.package.version === '2.0.0'), 'its lock said how far it had got too');
146
+ assert.equal(await workspaceLockStatus(ctx.config.baseUrl, ctx.repoName, WS, opts), null, 'nothing holds the workspace once the deploy has finished');
147
+ });
148
+ it('refuses a type change with no migration, naming the fix, and resets the record when told to', async (t) => {
149
+ const ctx = await holding(t, ['1.0.0', '3.0.0']);
150
+ await deploy(ctx, '1.0.0');
151
+ await assert.rejects(deploy(ctx, '3.0.0'), /record 'records\/tasks' changed type with no migration[\s\S]*--schema=reset/);
152
+ assert.deepEqual(await history(ctx), ['$init'], 'a refused deploy writes nothing');
153
+ assert.deepEqual((await deploy(ctx, '3.0.0', { schema: 'reset' })).records.map((plan) => plan.action.type), ['reset']);
154
+ assert.deepEqual(await history(ctx), ['$reset'], 'a root commit: the reset is in the history, which starts over');
155
+ assert.equal(decodeTasks(await state(ctx)).size, 0, 'the record holds the package\'s initial value');
156
+ });
157
+ it('refuses migrations its policy runs none of, and a package older than the workspace', async (t) => {
158
+ const ctx = await holding(t, ['1.0.0', '2.0.0']);
159
+ await deploy(ctx, '1.0.0');
160
+ await assert.rejects(deploy(ctx, '2.0.0', { schema: 'fail' }), /record 'records\/tasks' has migrations 'add_owner' to run, and this deploy runs none/);
161
+ await deploy(ctx, '2.0.0');
162
+ await assert.rejects(deploy(ctx, '1.0.0'), /record 'records\/tasks' has had migrations 'add_owner' applied, and the package declares none: [\s\S]*the package is older than the workspace/);
163
+ assert.deepEqual(await history(ctx), ['$migrate:add_owner', '$init']);
164
+ });
165
+ it('refuses to drop a record the package no longer declares, and drops it when allowed', async (t) => {
166
+ const ctx = await holding(t, ['1.0.0', '4.0.0']);
167
+ await deploy(ctx, '1.0.0');
168
+ await assert.rejects(deploy(ctx, '4.0.0'), /record 'records\/tasks' is not declared by the package[\s\S]*--allow-drop-records/);
169
+ assert.deepEqual(await history(ctx), ['$init'], 'the record is still there');
170
+ assert.deepEqual((await deploy(ctx, '4.0.0', { allowDropRecords: true })).records, [{ record: RECORD, action: variant('drop', null) }]);
171
+ await assert.rejects(state(ctx));
172
+ });
173
+ });
174
+ }
175
+ //# sourceMappingURL=record-deploy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-deploy.js","sourceRoot":"","sources":["../../../src/suites/record-deploy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Licensed under BSL 1.1. See LICENSE for details.
4
+ */
5
+ import type { TestContext } from '../context.js';
6
+ import type { TestSetup } from '../setup.js';
7
+ export declare function keyedRecordTests(setup: TestSetup<TestContext>): void;
8
+ //# sourceMappingURL=records-keyed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"records-keyed.d.ts","sourceRoot":"","sources":["../../../src/suites/records-keyed.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA2CH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAyB7C,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,CA6HpE"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Licensed under BSL 1.1. See LICENSE for details.
4
+ */
5
+ /**
6
+ * Keyed-record test suite — the write forms, on a record that spans segments.
7
+ *
8
+ * The scalar-record suite covers the commit protocol; this one covers what a
9
+ * remote backend has to reproduce for a keyed record: one big enough to span
10
+ * segments, written through all three forms — each form described, each
11
+ * commit landing with the delta it wrote, a stale patch refused by key with
12
+ * nothing written — and read as its rows, and through its index in the
13
+ * index's own order, where a key search takes the index's key.
14
+ *
15
+ * It pins results, not costs. Content-defined cutting gives an equal value the
16
+ * same manifest, so a backend that rewrote the whole state on every write
17
+ * would read back identically and pass; the apply's own cost is measured in
18
+ * e3-core's tests.
19
+ *
20
+ * `E3_RECORD_ROWS` sizes the record (default 10,000); a perf run raises it to
21
+ * 100,000 without changing an assertion, because no assertion here is a time.
22
+ */
23
+ import { describe, it } from 'node:test';
24
+ import assert from 'node:assert/strict';
25
+ import { readFileSync } from 'node:fs';
26
+ import { IntegerType, SortedMap, StringType, compareFor, decodeBeast2For, encodeBeast2For, isTypeValueEqual, toEastTypeValue, variant, none, PatchType, } from '@elaraai/east';
27
+ import { indexWindowType } from '@elaraai/e3-types';
28
+ import { packageImport, workspaceCreate, workspaceDeploy, datasetFindKey, datasetGet, datasetGetPage, workspaceRecordDescribe, workspaceRecordMutate, workspaceRecordHistory, } from '@elaraai/e3-api-client';
29
+ import { createKeyedRecordPackageZip, PlanRowType, PlanStatusKeyType, PlansType } from '../fixtures.js';
30
+ const PKG = 'keyed-record-pkg';
31
+ const VERSION = '1.0.0';
32
+ const WS = 'keyed-record-ws';
33
+ const plansPath = [variant('field', 'records'), variant('field', 'plans')];
34
+ /** How many rows the record holds. 10,000 spans segments under any key
35
+ * distribution; a perf run sets 100,000. */
36
+ const ROWS = BigInt(process.env['E3_RECORD_ROWS'] ?? '10000');
37
+ const encodeInt = encodeBeast2For(IntegerType);
38
+ const encodePatch = encodeBeast2For(PatchType(PlansType));
39
+ const decodePlans = decodeBeast2For(PlansType);
40
+ /** The wire shape of an index page: ordered rows, in the INDEX's order. */
41
+ const decodeStatusWindow = decodeBeast2For(indexWindowType(StringType, PlanStatusKeyType, StringType, PlanRowType));
42
+ const planKeys = compareFor(StringType);
43
+ export function keyedRecordTests(setup) {
44
+ /** A deployed, seeded record. */
45
+ const withRecord = async (t) => {
46
+ const ctx = await setup(t);
47
+ const opts = await ctx.opts();
48
+ const zipPath = await createKeyedRecordPackageZip(ctx.tempDir, PKG, VERSION);
49
+ await packageImport(ctx.config.baseUrl, ctx.repoName, readFileSync(zipPath), opts);
50
+ await workspaceCreate(ctx.config.baseUrl, ctx.repoName, WS, opts);
51
+ await workspaceDeploy(ctx.config.baseUrl, ctx.repoName, WS, `${PKG}@${VERSION}`, opts);
52
+ const seeded = await workspaceRecordMutate(ctx.config.baseUrl, ctx.repoName, WS, 'plans', 'seed', { args: [encodeInt(ROWS)], actor: none, limits: none }, opts);
53
+ assert.equal(seeded.outcome.type, 'committed', `seeding must commit, got ${seeded.outcome.type}`);
54
+ return ctx;
55
+ };
56
+ /** The record's rows, read through the ordinary dataset door. */
57
+ async function readRows(ctx) {
58
+ const opts = await ctx.opts();
59
+ const { data } = await datasetGet(ctx.config.baseUrl, ctx.repoName, WS, plansPath, opts);
60
+ return decodePlans(data);
61
+ }
62
+ describe('keyed records', { concurrency: false }, () => {
63
+ it('describes each mutation\'s write form, and each index with the types a read through it decodes by', async (t) => {
64
+ const ctx = await withRecord(t);
65
+ const sig = await workspaceRecordDescribe(ctx.config.baseUrl, ctx.repoName, WS, 'plans', await ctx.opts());
66
+ assert.deepEqual(Object.fromEntries(sig.mutations.map((m) => [m.name, m.form])), { seed: 'reduce', retitle: 'edit', patch: 'patch' });
67
+ assert.deepEqual(sig.indexes.map(({ name, multi }) => [name, multi]), [['by_status', false]]);
68
+ assert.ok(isTypeValueEqual(sig.indexes[0].keyType, toEastTypeValue(PlanStatusKeyType)), 'the index key\'s type');
69
+ assert.ok(isTypeValueEqual(sig.indexes[0].valueType, toEastTypeValue(StringType)), 'the covering projection\'s type');
70
+ });
71
+ it('reads as its rows through the ordinary dataset door, index and all', async (t) => {
72
+ const ctx = await withRecord(t);
73
+ const opts = await ctx.opts();
74
+ const page = await datasetGetPage(ctx.config.baseUrl, ctx.repoName, WS, plansPath, { offset: 0, limit: 3 }, opts);
75
+ assert.equal(BigInt(page.totalElements), ROWS, 'a record with an index still pages as its rows');
76
+ assert.ok(page.segmentCount >= 2, `a ${ROWS}-row record spans segments, got ${page.segmentCount}`);
77
+ assert.equal((await readRows(ctx)).get('p-7').title, 'Plan 7');
78
+ });
79
+ it('an edit mutation commits, and the commit names the delta it wrote', async (t) => {
80
+ const ctx = await withRecord(t);
81
+ const opts = await ctx.opts();
82
+ const result = await workspaceRecordMutate(ctx.config.baseUrl, ctx.repoName, WS, 'plans', 'retitle', { args: [encodeBeast2For(StringType)('p-7')], actor: none, limits: none }, opts);
83
+ assert.equal(result.outcome.type, 'committed', `expected committed, got ${result.outcome.type}`);
84
+ assert.equal((await readRows(ctx)).get('p-7').title, 'RETITLED');
85
+ const { commits } = await workspaceRecordHistory(ctx.config.baseUrl, ctx.repoName, WS, 'plans', 1, opts);
86
+ assert.equal(commits[0].mutation, 'retitle');
87
+ assert.equal(commits[0].delta.type, 'some', 'the commit records what changed');
88
+ });
89
+ it('a patch mutation applies a client-computed change', async (t) => {
90
+ const ctx = await withRecord(t);
91
+ const opts = await ctx.opts();
92
+ const ops = new SortedMap([
93
+ ['p-11', variant('update', variant('patch', {
94
+ status: variant('unchanged', null),
95
+ due: variant('unchanged', null),
96
+ title: variant('replace', { before: 'Plan 11', after: 'PATCHED' }),
97
+ }))],
98
+ ], planKeys);
99
+ const result = await workspaceRecordMutate(ctx.config.baseUrl, ctx.repoName, WS, 'plans', 'patch', { args: [encodePatch(variant('patch', ops))], actor: none, limits: none }, opts);
100
+ assert.equal(result.outcome.type, 'committed', `expected committed, got ${result.outcome.type}`);
101
+ assert.equal((await readRows(ctx)).get('p-11').title, 'PATCHED');
102
+ });
103
+ it('a stale patch conflicts, names the key, and writes nothing', async (t) => {
104
+ const ctx = await withRecord(t);
105
+ const opts = await ctx.opts();
106
+ const ops = new SortedMap([
107
+ ['p-11', variant('delete', { status: 'ok', due: 11n, title: 'SOMETHING ELSE' })],
108
+ ], planKeys);
109
+ const result = await workspaceRecordMutate(ctx.config.baseUrl, ctx.repoName, WS, 'plans', 'patch', { args: [encodePatch(variant('patch', ops))], actor: none, limits: none }, opts);
110
+ assert.ok(result.outcome.type === 'conflict', `expected conflict, got ${result.outcome.type}`);
111
+ // A caller retries a lost race; it re-reads and resubmits a stale write.
112
+ // Only the detail tells the two apart, so it has to reach the caller.
113
+ const { detail } = result.outcome.value;
114
+ assert.ok(detail.type === 'some' && detail.value.includes('p-11'), `the conflict names the key that disagreed, got ${JSON.stringify(detail)}`);
115
+ assert.equal((await readRows(ctx)).get('p-11').title, 'Plan 11', 'the row is untouched');
116
+ });
117
+ it('reads through the index in the index\'s own order', async (t) => {
118
+ const ctx = await withRecord(t);
119
+ const opts = await ctx.opts();
120
+ const page = await datasetGetPage(ctx.config.baseUrl, ctx.repoName, WS, plansPath, { offset: 0, limit: 5, index: 'by_status' }, opts);
121
+ const window = decodeStatusWindow(page.data);
122
+ assert.equal(window.length, 5);
123
+ assert.ok(window.every((entry) => entry.ik.status === 'late'), 'every `late` entry precedes every `ok` one, whatever their primary keys');
124
+ });
125
+ it('searches through the index by the index\'s own key', async (t) => {
126
+ const ctx = await withRecord(t);
127
+ const opts = await ctx.opts();
128
+ const find = async (query) => {
129
+ const { found, row, count } = await datasetFindKey(ctx.config.baseUrl, ctx.repoName, WS, plansPath, query, opts);
130
+ return { found, row, count };
131
+ };
132
+ // Every third plan is late, due on its own number, and the late ones sort first.
133
+ const late = Number((ROWS + 2n) / 3n);
134
+ assert.deepEqual(await find({ prefix: 'o', index: 'by_status' }), { found: true, row: late, count: Number(ROWS) - late });
135
+ assert.deepEqual(await find({ fields: ['"late"'], index: 'by_status' }), { found: true, row: 0, count: late });
136
+ assert.deepEqual(await find({ key: '(status="late", due=9)', index: 'by_status' }), { found: true, row: 3, count: 1 });
137
+ });
138
+ });
139
+ }
140
+ //# sourceMappingURL=records-keyed.js.map