@elaraai/e3-api-tests 0.0.2-beta.31 → 0.0.2-beta.33
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.
- package/README.md +23 -21
- package/dist/src/index.d.ts +18 -23
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +13 -47
- package/dist/src/index.js.map +1 -1
- package/dist/src/setup.d.ts +11 -0
- package/dist/src/setup.d.ts.map +1 -0
- package/dist/src/setup.js +6 -0
- package/dist/src/setup.js.map +1 -0
- package/dist/src/suites/cli.d.ts +3 -2
- package/dist/src/suites/cli.d.ts.map +1 -1
- package/dist/src/suites/cli.js +47 -37
- package/dist/src/suites/cli.js.map +1 -1
- package/dist/src/suites/dataflow.d.ts +3 -2
- package/dist/src/suites/dataflow.d.ts.map +1 -1
- package/dist/src/suites/dataflow.js +128 -206
- package/dist/src/suites/dataflow.js.map +1 -1
- package/dist/src/suites/datasets.d.ts +3 -2
- package/dist/src/suites/datasets.d.ts.map +1 -1
- package/dist/src/suites/datasets.js +22 -22
- package/dist/src/suites/datasets.js.map +1 -1
- package/dist/src/suites/packages.d.ts +3 -2
- package/dist/src/suites/packages.d.ts.map +1 -1
- package/dist/src/suites/packages.js +24 -25
- package/dist/src/suites/packages.js.map +1 -1
- package/dist/src/suites/platform.d.ts +3 -2
- package/dist/src/suites/platform.d.ts.map +1 -1
- package/dist/src/suites/platform.js +21 -21
- package/dist/src/suites/platform.js.map +1 -1
- package/dist/src/suites/repository.d.ts +3 -2
- package/dist/src/suites/repository.d.ts.map +1 -1
- package/dist/src/suites/repository.js +19 -19
- package/dist/src/suites/repository.js.map +1 -1
- package/dist/src/suites/transfer.d.ts +3 -2
- package/dist/src/suites/transfer.d.ts.map +1 -1
- package/dist/src/suites/transfer.js +43 -36
- package/dist/src/suites/transfer.js.map +1 -1
- package/dist/src/suites/workspaces.d.ts +3 -2
- package/dist/src/suites/workspaces.d.ts.map +1 -1
- package/dist/src/suites/workspaces.js +31 -42
- package/dist/src/suites/workspaces.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -10,31 +10,31 @@ npm install @elaraai/e3-api-tests
|
|
|
10
10
|
|
|
11
11
|
## Usage
|
|
12
12
|
|
|
13
|
+
Each test receives a fresh, isolated context via a `TestSetup<T>` factory, enabling concurrent execution:
|
|
14
|
+
|
|
13
15
|
```typescript
|
|
14
|
-
import { describe,
|
|
16
|
+
import { describe, after } from 'node:test';
|
|
15
17
|
import { createServer } from '@elaraai/e3-api-server';
|
|
16
|
-
import { allApiTests, createTestContext, type TestContext } from '@elaraai/e3-api-tests';
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
after(async () => {
|
|
32
|
-
await context.cleanup();
|
|
33
|
-
await server.stop();
|
|
18
|
+
import { allApiTests, createTestContext, type TestSetup, type TestContext } from '@elaraai/e3-api-tests';
|
|
19
|
+
|
|
20
|
+
// Shared server (one per test run)
|
|
21
|
+
const server = await createServer({ reposDir: tempDir, port: 0 });
|
|
22
|
+
await server.start();
|
|
23
|
+
|
|
24
|
+
// Per-test setup: creates a fresh repo + context
|
|
25
|
+
const setup: TestSetup<TestContext> = async (t) => {
|
|
26
|
+
const ctx = await createTestContext({
|
|
27
|
+
baseUrl: `http://localhost:${server.port}`,
|
|
28
|
+
getToken: async () => '',
|
|
29
|
+
cleanup: true,
|
|
34
30
|
});
|
|
31
|
+
t.after(() => ctx.cleanup());
|
|
32
|
+
return ctx;
|
|
33
|
+
};
|
|
35
34
|
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
describe('API compliance', { concurrency: true }, () => {
|
|
36
|
+
after(() => server.stop());
|
|
37
|
+
allApiTests(setup);
|
|
38
38
|
});
|
|
39
39
|
```
|
|
40
40
|
|
|
@@ -42,6 +42,7 @@ describe('API compliance', () => {
|
|
|
42
42
|
|
|
43
43
|
| Export | Description |
|
|
44
44
|
|--------|-------------|
|
|
45
|
+
| `TestSetup<T>` | Type for per-test context factory: `(t: TestContext) => Promise<T>` |
|
|
45
46
|
| `createTestContext` | Create test context with helpers for setup/teardown |
|
|
46
47
|
| `allApiTests` | Register all API test suites (repository, packages, workspaces, datasets, dataflow) |
|
|
47
48
|
| `allTests` | Register all tests including CLI tests (requires credentials env) |
|
|
@@ -52,6 +53,7 @@ describe('API compliance', () => {
|
|
|
52
53
|
| `dataflowTests` | Dataflow execution tests |
|
|
53
54
|
| `platformTests` | Platform capability tests |
|
|
54
55
|
| `cliTests` | CLI integration tests |
|
|
56
|
+
| `transferTests` | Cross-repository transfer tests |
|
|
55
57
|
| `createPackageZip` | Create a test package zip file |
|
|
56
58
|
| `runE3Command` | Run an e3 CLI command |
|
|
57
59
|
|
package/dist/src/index.d.ts
CHANGED
|
@@ -10,32 +10,26 @@
|
|
|
10
10
|
*
|
|
11
11
|
* @example
|
|
12
12
|
* ```typescript
|
|
13
|
-
* import { describe
|
|
13
|
+
* import { describe } from 'node:test';
|
|
14
14
|
* import { createServer } from '@elaraai/e3-api-server';
|
|
15
|
-
* import { allTests, createTestContext } from '@elaraai/e3-api-tests';
|
|
15
|
+
* import { allTests, createTestContext, type TestSetup, type TestContext } from '@elaraai/e3-api-tests';
|
|
16
16
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* server = await createServer({ reposDir: tempDir, port: 0 });
|
|
23
|
-
* await server.start();
|
|
24
|
-
* context = await createTestContext({
|
|
25
|
-
* baseUrl: `http://localhost:${server.port}`,
|
|
26
|
-
* getToken: async () => 'test-token',
|
|
27
|
-
* });
|
|
28
|
-
* });
|
|
29
|
-
*
|
|
30
|
-
* after(async () => {
|
|
31
|
-
* await context.cleanup();
|
|
32
|
-
* await server.stop();
|
|
17
|
+
* const setup: TestSetup<TestContext> = async (t) => {
|
|
18
|
+
* const ctx = await createTestContext({
|
|
19
|
+
* baseUrl: 'http://localhost:3000',
|
|
20
|
+
* getToken: async () => 'test-token',
|
|
21
|
+
* cleanup: true,
|
|
33
22
|
* });
|
|
23
|
+
* t.after(() => ctx.cleanup());
|
|
24
|
+
* return ctx;
|
|
25
|
+
* };
|
|
34
26
|
*
|
|
35
|
-
*
|
|
27
|
+
* describe('API compliance', { concurrency: true }, () => {
|
|
28
|
+
* allTests(setup, () => ({ E3_CREDENTIALS_PATH: '/path/to/creds' }));
|
|
36
29
|
* });
|
|
37
30
|
* ```
|
|
38
31
|
*/
|
|
32
|
+
export { type TestSetup } from './setup.js';
|
|
39
33
|
export { createTestContext, type TestConfig, type TestContext } from './context.js';
|
|
40
34
|
export { createPackageZip, createMultiInputPackageZip, createStringPackageZip, createDiamondPackageZip, createParallelMixedPackageZip, createFailingDiamondPackageZip, createWideParallelPackageZip, } from './fixtures.js';
|
|
41
35
|
export { runE3Command, spawnE3Command, getE3CliPath, waitFor, type CliResult, type RunE3Options, type RunningCliProcess, } from './cli.js';
|
|
@@ -48,19 +42,20 @@ export { platformTests } from './suites/platform.js';
|
|
|
48
42
|
export { cliTests } from './suites/cli.js';
|
|
49
43
|
export { transferTests } from './suites/transfer.js';
|
|
50
44
|
import type { TestContext } from './context.js';
|
|
45
|
+
import type { TestSetup } from './setup.js';
|
|
51
46
|
/**
|
|
52
47
|
* Register all API test suites (excluding CLI tests).
|
|
53
48
|
*
|
|
54
49
|
* CLI tests require additional credentials setup and are registered separately.
|
|
55
50
|
*
|
|
56
|
-
* @param
|
|
51
|
+
* @param setup - Factory that creates a fresh test context per test
|
|
57
52
|
*/
|
|
58
|
-
export declare function allApiTests(
|
|
53
|
+
export declare function allApiTests(setup: TestSetup<TestContext>): void;
|
|
59
54
|
/**
|
|
60
55
|
* Register all test suites including CLI tests.
|
|
61
56
|
*
|
|
62
|
-
* @param
|
|
57
|
+
* @param setup - Factory that creates a fresh test context per test
|
|
63
58
|
* @param getCredentialsEnv - Function that returns env vars for CLI auth
|
|
64
59
|
*/
|
|
65
|
-
export declare function allTests(
|
|
60
|
+
export declare function allTests(setup: TestSetup<TestContext>, getCredentialsEnv: () => Record<string, string>): void;
|
|
66
61
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,OAAO,EAAE,iBAAiB,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAGpF,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,EACvB,6BAA6B,EAC7B,8BAA8B,EAC9B,4BAA4B,GAC7B,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,OAAO,EACP,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,iBAAiB,GACvB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAU5C;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,CAO/D;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,SAAS,CAAC,WAAW,CAAC,EAC7B,iBAAiB,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9C,IAAI,CAIN"}
|
package/dist/src/index.js
CHANGED
|
@@ -2,40 +2,6 @@
|
|
|
2
2
|
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
3
|
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
4
|
*/
|
|
5
|
-
/**
|
|
6
|
-
* e3 API Compliance Tests
|
|
7
|
-
*
|
|
8
|
-
* Shared test suites for verifying e3 API implementations.
|
|
9
|
-
* Works with both local (e3-api-server) and cloud (e3-aws) deployments.
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```typescript
|
|
13
|
-
* import { describe, before, after } from 'node:test';
|
|
14
|
-
* import { createServer } from '@elaraai/e3-api-server';
|
|
15
|
-
* import { allTests, createTestContext } from '@elaraai/e3-api-tests';
|
|
16
|
-
*
|
|
17
|
-
* describe('API compliance', () => {
|
|
18
|
-
* let server: Server;
|
|
19
|
-
* let context: TestContext;
|
|
20
|
-
*
|
|
21
|
-
* before(async () => {
|
|
22
|
-
* server = await createServer({ reposDir: tempDir, port: 0 });
|
|
23
|
-
* await server.start();
|
|
24
|
-
* context = await createTestContext({
|
|
25
|
-
* baseUrl: `http://localhost:${server.port}`,
|
|
26
|
-
* getToken: async () => 'test-token',
|
|
27
|
-
* });
|
|
28
|
-
* });
|
|
29
|
-
*
|
|
30
|
-
* after(async () => {
|
|
31
|
-
* await context.cleanup();
|
|
32
|
-
* await server.stop();
|
|
33
|
-
* });
|
|
34
|
-
*
|
|
35
|
-
* allTests(() => context);
|
|
36
|
-
* });
|
|
37
|
-
* ```
|
|
38
|
-
*/
|
|
39
5
|
// Context and configuration
|
|
40
6
|
export { createTestContext } from './context.js';
|
|
41
7
|
// Fixture creation utilities
|
|
@@ -64,25 +30,25 @@ import { transferTests } from './suites/transfer.js';
|
|
|
64
30
|
*
|
|
65
31
|
* CLI tests require additional credentials setup and are registered separately.
|
|
66
32
|
*
|
|
67
|
-
* @param
|
|
33
|
+
* @param setup - Factory that creates a fresh test context per test
|
|
68
34
|
*/
|
|
69
|
-
export function allApiTests(
|
|
70
|
-
repositoryTests(
|
|
71
|
-
packageTests(
|
|
72
|
-
workspaceTests(
|
|
73
|
-
datasetTests(
|
|
74
|
-
dataflowTests(
|
|
75
|
-
platformTests(
|
|
35
|
+
export function allApiTests(setup) {
|
|
36
|
+
repositoryTests(setup);
|
|
37
|
+
packageTests(setup);
|
|
38
|
+
workspaceTests(setup);
|
|
39
|
+
datasetTests(setup);
|
|
40
|
+
dataflowTests(setup);
|
|
41
|
+
platformTests(setup);
|
|
76
42
|
}
|
|
77
43
|
/**
|
|
78
44
|
* Register all test suites including CLI tests.
|
|
79
45
|
*
|
|
80
|
-
* @param
|
|
46
|
+
* @param setup - Factory that creates a fresh test context per test
|
|
81
47
|
* @param getCredentialsEnv - Function that returns env vars for CLI auth
|
|
82
48
|
*/
|
|
83
|
-
export function allTests(
|
|
84
|
-
allApiTests(
|
|
85
|
-
cliTests(
|
|
86
|
-
transferTests(
|
|
49
|
+
export function allTests(setup, getCredentialsEnv) {
|
|
50
|
+
allApiTests(setup);
|
|
51
|
+
cliTests(setup, getCredentialsEnv);
|
|
52
|
+
transferTests(setup, getCredentialsEnv);
|
|
87
53
|
}
|
|
88
54
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiCH,4BAA4B;AAC5B,OAAO,EAAE,iBAAiB,EAAqC,MAAM,cAAc,CAAC;AAEpF,6BAA6B;AAC7B,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,EACvB,6BAA6B,EAC7B,8BAA8B,EAC9B,4BAA4B,GAC7B,MAAM,eAAe,CAAC;AAEvB,gBAAgB;AAChB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,OAAO,GAIR,MAAM,UAAU,CAAC;AAElB,cAAc;AACd,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAIrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,KAA6B;IACvD,eAAe,CAAC,KAAK,CAAC,CAAC;IACvB,YAAY,CAAC,KAAK,CAAC,CAAC;IACpB,cAAc,CAAC,KAAK,CAAC,CAAC;IACtB,YAAY,CAAC,KAAK,CAAC,CAAC;IACpB,aAAa,CAAC,KAAK,CAAC,CAAC;IACrB,aAAa,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CACtB,KAA6B,EAC7B,iBAA+C;IAE/C,WAAW,CAAC,KAAK,CAAC,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;IACnC,aAAa,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;AAC1C,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
import type { TestContext as NodeTestContext } from 'node:test';
|
|
6
|
+
/**
|
|
7
|
+
* Factory that creates a fresh test context and registers cleanup via t.after().
|
|
8
|
+
* Each test calls `const ctx = await setup(t)` — fully self-contained, no shared state.
|
|
9
|
+
*/
|
|
10
|
+
export type TestSetup<T> = (t: NodeTestContext) => Promise<T>;
|
|
11
|
+
//# sourceMappingURL=setup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/setup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,WAAW,CAAC;AAEhE;;;GAGG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/setup.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
package/dist/src/suites/cli.d.ts
CHANGED
|
@@ -3,13 +3,14 @@
|
|
|
3
3
|
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
4
|
*/
|
|
5
5
|
import type { TestContext } from '../context.js';
|
|
6
|
+
import type { TestSetup } from '../setup.js';
|
|
6
7
|
/**
|
|
7
8
|
* Register CLI operation tests.
|
|
8
9
|
*
|
|
9
10
|
* These tests run CLI commands against a remote URL and verify output.
|
|
10
11
|
*
|
|
11
|
-
* @param
|
|
12
|
+
* @param setup - Factory that creates a fresh test context per test
|
|
12
13
|
* @param getCredentialsEnv - Function that returns env vars for auth (E3_CREDENTIALS_PATH, etc.)
|
|
13
14
|
*/
|
|
14
|
-
export declare function cliTests(
|
|
15
|
+
export declare function cliTests(setup: TestSetup<TestContext>, getCredentialsEnv: () => Record<string, string>): void;
|
|
15
16
|
//# sourceMappingURL=cli.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/suites/cli.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/suites/cli.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAI7C;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,SAAS,CAAC,WAAW,CAAC,EAC7B,iBAAiB,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9C,IAAI,CAsLN"}
|
package/dist/src/suites/cli.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* Tests CLI commands against remote URLs.
|
|
9
9
|
*/
|
|
10
|
-
import { describe, it
|
|
10
|
+
import { describe, it } from 'node:test';
|
|
11
11
|
import assert from 'node:assert/strict';
|
|
12
12
|
import { mkdirSync } from 'node:fs';
|
|
13
13
|
import { join } from 'node:path';
|
|
@@ -18,21 +18,26 @@ import { createPackageZip } from '../fixtures.js';
|
|
|
18
18
|
*
|
|
19
19
|
* These tests run CLI commands against a remote URL and verify output.
|
|
20
20
|
*
|
|
21
|
-
* @param
|
|
21
|
+
* @param setup - Factory that creates a fresh test context per test
|
|
22
22
|
* @param getCredentialsEnv - Function that returns env vars for auth (E3_CREDENTIALS_PATH, etc.)
|
|
23
23
|
*/
|
|
24
|
-
export function cliTests(
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
24
|
+
export function cliTests(setup, getCredentialsEnv) {
|
|
25
|
+
const withCli = async (t) => {
|
|
26
|
+
const ctx = await setup(t);
|
|
27
|
+
const remoteUrl = `${ctx.config.baseUrl}/repos/${ctx.repoName}`;
|
|
28
|
+
const workDir = join(ctx.tempDir, 'cli-work');
|
|
29
|
+
mkdirSync(workDir, { recursive: true });
|
|
30
|
+
return Object.assign(ctx, { remoteUrl, workDir });
|
|
31
|
+
};
|
|
32
|
+
const withCliPackage = async (t) => {
|
|
33
|
+
const c = await withCli(t);
|
|
34
|
+
const packageZipPath = await createPackageZip(c.tempDir, 'cli-test-pkg', '1.0.0');
|
|
35
|
+
return Object.assign(c, { packageZipPath });
|
|
36
|
+
};
|
|
37
|
+
describe('cli', { concurrency: true }, () => {
|
|
38
|
+
describe('repo commands', { concurrency: true }, () => {
|
|
39
|
+
it('repo status via remote URL', async (t) => {
|
|
40
|
+
const { remoteUrl, workDir } = await withCli(t);
|
|
36
41
|
const result = await runE3Command(['repo', 'status', remoteUrl], workDir, { env: getCredentialsEnv() });
|
|
37
42
|
assert.strictEqual(result.exitCode, 0, `Failed: ${result.stderr}`);
|
|
38
43
|
assert.match(result.stdout, /Repository:/);
|
|
@@ -40,35 +45,39 @@ export function cliTests(getContext, getCredentialsEnv) {
|
|
|
40
45
|
assert.match(result.stdout, /Packages:/);
|
|
41
46
|
assert.match(result.stdout, /Workspaces:/);
|
|
42
47
|
});
|
|
43
|
-
it('repo gc via remote URL', async () => {
|
|
48
|
+
it('repo gc via remote URL', async (t) => {
|
|
49
|
+
const { remoteUrl, workDir } = await withCli(t);
|
|
44
50
|
const result = await runE3Command(['repo', 'gc', remoteUrl], workDir, { env: getCredentialsEnv() });
|
|
45
51
|
assert.strictEqual(result.exitCode, 0, `Failed: ${result.stderr}`);
|
|
46
52
|
assert.match(result.stdout, /Running garbage collection/);
|
|
47
53
|
assert.match(result.stdout, /Garbage collection complete/);
|
|
48
54
|
});
|
|
49
|
-
it('repo gc --dry-run via remote URL', async () => {
|
|
55
|
+
it('repo gc --dry-run via remote URL', async (t) => {
|
|
56
|
+
const { remoteUrl, workDir } = await withCli(t);
|
|
50
57
|
const result = await runE3Command(['repo', 'gc', remoteUrl, '--dry-run'], workDir, { env: getCredentialsEnv() });
|
|
51
58
|
assert.strictEqual(result.exitCode, 0, `Failed: ${result.stderr}`);
|
|
52
59
|
assert.match(result.stdout, /Dry run/);
|
|
53
60
|
});
|
|
54
|
-
it('repo list via server URL', async () => {
|
|
55
|
-
const ctx =
|
|
61
|
+
it('repo list via server URL', async (t) => {
|
|
62
|
+
const ctx = await withCli(t);
|
|
56
63
|
// repo list takes server URL, not repo URL
|
|
57
|
-
const result = await runE3Command(['repo', 'list', ctx.config.baseUrl], workDir, { env: getCredentialsEnv() });
|
|
64
|
+
const result = await runE3Command(['repo', 'list', ctx.config.baseUrl], ctx.workDir, { env: getCredentialsEnv() });
|
|
58
65
|
assert.strictEqual(result.exitCode, 0, `Failed: ${result.stderr}`);
|
|
59
66
|
assert.match(result.stdout, /Repositories:/);
|
|
60
67
|
// Our test repo should be in the list
|
|
61
68
|
assert.match(result.stdout, new RegExp(ctx.repoName));
|
|
62
69
|
});
|
|
63
70
|
});
|
|
64
|
-
describe('workspace commands', () => {
|
|
65
|
-
it('workspace list via remote URL', async () => {
|
|
71
|
+
describe('workspace commands', { concurrency: true }, () => {
|
|
72
|
+
it('workspace list via remote URL', async (t) => {
|
|
73
|
+
const { remoteUrl, workDir } = await withCli(t);
|
|
66
74
|
const result = await runE3Command(['workspace', 'list', remoteUrl], workDir, { env: getCredentialsEnv() });
|
|
67
75
|
assert.strictEqual(result.exitCode, 0, `Failed: ${result.stderr}`);
|
|
68
76
|
// Initially empty or has workspaces from other tests
|
|
69
77
|
assert.ok(result.stdout.length > 0);
|
|
70
78
|
});
|
|
71
|
-
it('workspace create via remote URL', async () => {
|
|
79
|
+
it('workspace create via remote URL', async (t) => {
|
|
80
|
+
const { remoteUrl, workDir } = await withCli(t);
|
|
72
81
|
const wsName = `cli-test-ws-${Date.now()}`;
|
|
73
82
|
const result = await runE3Command(['workspace', 'create', remoteUrl, wsName], workDir, { env: getCredentialsEnv() });
|
|
74
83
|
assert.strictEqual(result.exitCode, 0, `Failed: ${result.stderr}`);
|
|
@@ -76,7 +85,8 @@ export function cliTests(getContext, getCredentialsEnv) {
|
|
|
76
85
|
// Clean up
|
|
77
86
|
await runE3Command(['workspace', 'remove', remoteUrl, wsName], workDir, { env: getCredentialsEnv() });
|
|
78
87
|
});
|
|
79
|
-
it('workspace remove via remote URL', async () => {
|
|
88
|
+
it('workspace remove via remote URL', async (t) => {
|
|
89
|
+
const { remoteUrl, workDir } = await withCli(t);
|
|
80
90
|
const wsName = `cli-remove-ws-${Date.now()}`;
|
|
81
91
|
// Create first
|
|
82
92
|
await runE3Command(['workspace', 'create', remoteUrl, wsName], workDir, { env: getCredentialsEnv() });
|
|
@@ -86,24 +96,22 @@ export function cliTests(getContext, getCredentialsEnv) {
|
|
|
86
96
|
assert.match(result.stdout, new RegExp(`Removed workspace: ${wsName}`));
|
|
87
97
|
});
|
|
88
98
|
});
|
|
89
|
-
describe('package commands', () => {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
const ctx = getContext();
|
|
93
|
-
packageZipPath = await createPackageZip(ctx.tempDir, 'cli-test-pkg', '1.0.0');
|
|
94
|
-
});
|
|
95
|
-
it('package list via remote URL', async () => {
|
|
99
|
+
describe('package commands', { concurrency: true }, () => {
|
|
100
|
+
it('package list via remote URL', async (t) => {
|
|
101
|
+
const { remoteUrl, workDir } = await withCliPackage(t);
|
|
96
102
|
const result = await runE3Command(['package', 'list', remoteUrl], workDir, { env: getCredentialsEnv() });
|
|
97
103
|
assert.strictEqual(result.exitCode, 0, `Failed: ${result.stderr}`);
|
|
98
104
|
// Either "No packages" or list of packages
|
|
99
105
|
assert.ok(result.stdout.length > 0);
|
|
100
106
|
});
|
|
101
|
-
it('package import via remote URL', async () => {
|
|
107
|
+
it('package import via remote URL', async (t) => {
|
|
108
|
+
const { remoteUrl, workDir, packageZipPath } = await withCliPackage(t);
|
|
102
109
|
const result = await runE3Command(['package', 'import', remoteUrl, packageZipPath], workDir, { env: getCredentialsEnv() });
|
|
103
110
|
assert.strictEqual(result.exitCode, 0, `Failed: ${result.stderr}`);
|
|
104
111
|
assert.match(result.stdout, /Imported cli-test-pkg@1.0.0/);
|
|
105
112
|
});
|
|
106
|
-
it('package remove via remote URL', async () => {
|
|
113
|
+
it('package remove via remote URL', async (t) => {
|
|
114
|
+
const { remoteUrl, workDir, packageZipPath } = await withCliPackage(t);
|
|
107
115
|
// Import first
|
|
108
116
|
await runE3Command(['package', 'import', remoteUrl, packageZipPath], workDir, { env: getCredentialsEnv() });
|
|
109
117
|
// Remove
|
|
@@ -112,9 +120,10 @@ export function cliTests(getContext, getCredentialsEnv) {
|
|
|
112
120
|
assert.match(result.stdout, /Removed cli-test-pkg@1.0.0/);
|
|
113
121
|
});
|
|
114
122
|
});
|
|
115
|
-
describe('full workflow via CLI', () => {
|
|
116
|
-
it('imports package, creates workspace, deploys, and shows tree', async () => {
|
|
117
|
-
const ctx =
|
|
123
|
+
describe('full workflow via CLI', { concurrency: true }, () => {
|
|
124
|
+
it('imports package, creates workspace, deploys, and shows tree', async (t) => {
|
|
125
|
+
const ctx = await withCli(t);
|
|
126
|
+
const { remoteUrl, workDir } = ctx;
|
|
118
127
|
const packageZipPath = await createPackageZip(ctx.tempDir, 'workflow-pkg', '1.0.0');
|
|
119
128
|
const wsName = `workflow-ws-${Date.now()}`;
|
|
120
129
|
const env = getCredentialsEnv();
|
|
@@ -136,8 +145,9 @@ export function cliTests(getContext, getCredentialsEnv) {
|
|
|
136
145
|
// Clean up
|
|
137
146
|
await runE3Command(['workspace', 'remove', remoteUrl, wsName], workDir, { env });
|
|
138
147
|
});
|
|
139
|
-
it('executes dataflow via CLI and shows logs', async () => {
|
|
140
|
-
const ctx =
|
|
148
|
+
it('executes dataflow via CLI and shows logs', async (t) => {
|
|
149
|
+
const ctx = await withCli(t);
|
|
150
|
+
const { remoteUrl, workDir } = ctx;
|
|
141
151
|
const packageZipPath = await createPackageZip(ctx.tempDir, 'exec-cli-pkg', '1.0.0');
|
|
142
152
|
const wsName = `exec-cli-ws-${Date.now()}`;
|
|
143
153
|
const env = getCredentialsEnv();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/suites/cli.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/suites/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
4
|
*/
|
|
5
5
|
import type { TestContext } from '../context.js';
|
|
6
|
+
import type { TestSetup } from '../setup.js';
|
|
6
7
|
/**
|
|
7
8
|
* Register dataflow execution tests.
|
|
8
9
|
*
|
|
9
|
-
* @param
|
|
10
|
+
* @param setup - Factory that creates a fresh test context per test
|
|
10
11
|
*/
|
|
11
|
-
export declare function dataflowTests(
|
|
12
|
+
export declare function dataflowTests(setup: TestSetup<TestContext>): void;
|
|
12
13
|
//# sourceMappingURL=dataflow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataflow.d.ts","sourceRoot":"","sources":["../../../src/suites/dataflow.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA0BH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"dataflow.d.ts","sourceRoot":"","sources":["../../../src/suites/dataflow.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA0BH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAiC7C;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,CAstBjE"}
|