@elaraai/e3-api-tests 0.0.2-beta.25 → 0.0.2-beta.27
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../src/suites/repository.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../src/suites/repository.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAsBH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,WAAW,GAAG,IAAI,CAkLnE"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
import { describe, it } from 'node:test';
|
|
11
11
|
import assert from 'node:assert/strict';
|
|
12
12
|
import { variant } from '@elaraai/east';
|
|
13
|
-
import { repoStatus, repoGc, repoCreate, repoRemove, repoList, packageRemove, } from '@elaraai/e3-api-client';
|
|
13
|
+
import { repoStatus, repoGc, repoCreate, repoRemove, repoList, packageRemove, dataflowExecute, } from '@elaraai/e3-api-client';
|
|
14
14
|
/**
|
|
15
15
|
* Register repository operation tests.
|
|
16
16
|
*
|
|
@@ -31,10 +31,11 @@ export function repositoryTests(getContext) {
|
|
|
31
31
|
const ctx = getContext();
|
|
32
32
|
const opts = await ctx.opts();
|
|
33
33
|
const result = await repoGc(ctx.config.baseUrl, ctx.repoName, { dryRun: true, minAge: variant('none', null) }, opts);
|
|
34
|
-
// Empty repo - nothing to delete
|
|
34
|
+
// Empty repo - nothing to delete or skip
|
|
35
35
|
assert.strictEqual(result.deletedObjects, 0n);
|
|
36
36
|
assert.strictEqual(result.deletedPartials, 0n);
|
|
37
37
|
assert.ok(result.retainedObjects >= 0n);
|
|
38
|
+
assert.ok(result.skippedYoung >= 0n, 'skippedYoung should be reported');
|
|
38
39
|
assert.ok(result.bytesFreed >= 0n);
|
|
39
40
|
});
|
|
40
41
|
it('repoGc runs garbage collection', async () => {
|
|
@@ -47,9 +48,33 @@ export function repositoryTests(getContext) {
|
|
|
47
48
|
await packageRemove(ctx.config.baseUrl, ctx.repoName, 'gc-test-pkg', '1.0.0', opts);
|
|
48
49
|
// Run GC (not dry run)
|
|
49
50
|
const result = await repoGc(ctx.config.baseUrl, ctx.repoName, { dryRun: false, minAge: variant('none', null) }, opts);
|
|
50
|
-
// Should return valid stats
|
|
51
|
+
// Should return valid stats (objects may be skipped due to default minAge)
|
|
51
52
|
assert.ok(typeof result.deletedObjects === 'bigint');
|
|
52
53
|
assert.ok(typeof result.retainedObjects === 'bigint');
|
|
54
|
+
assert.ok(typeof result.skippedYoung === 'bigint', 'skippedYoung should be reported');
|
|
55
|
+
});
|
|
56
|
+
it('repoGc retains execution outputs after dataflow', async () => {
|
|
57
|
+
const ctx = getContext();
|
|
58
|
+
const opts = await ctx.opts();
|
|
59
|
+
// Import package, create workspace, deploy, run dataflow
|
|
60
|
+
const zipPath = await ctx.createPackage('gc-exec-pkg', '1.0.0');
|
|
61
|
+
await ctx.importPackage(zipPath);
|
|
62
|
+
await ctx.createWorkspace('gc-exec-ws');
|
|
63
|
+
await ctx.deployPackage('gc-exec-ws', 'gc-exec-pkg@1.0.0');
|
|
64
|
+
// Run dataflow to create execution records with output hashes
|
|
65
|
+
await dataflowExecute(ctx.config.baseUrl, ctx.repoName, 'gc-exec-ws', { force: true }, opts, { pollInterval: 1000, timeout: 120000 });
|
|
66
|
+
// Get status before GC to record object count
|
|
67
|
+
const statusBefore = await repoStatus(ctx.config.baseUrl, ctx.repoName, opts);
|
|
68
|
+
assert.ok(statusBefore.objectCount > 0n, 'repo should have objects after dataflow');
|
|
69
|
+
// Run GC with minAge=0 to force immediate sweep (default skips young objects)
|
|
70
|
+
const result = await repoGc(ctx.config.baseUrl, ctx.repoName, { dryRun: false, minAge: variant('some', 0n) }, opts, { pollInterval: 2000 });
|
|
71
|
+
// Verify: nothing deleted, all retained, none skipped (minAge=0)
|
|
72
|
+
assert.strictEqual(result.deletedObjects, 0n, 'GC should not delete any objects');
|
|
73
|
+
assert.ok(result.retainedObjects > 0n, 'GC should retain objects');
|
|
74
|
+
assert.strictEqual(result.skippedYoung, 0n, 'no objects should be skipped with minAge=0');
|
|
75
|
+
// Verify repo still functional — object count unchanged
|
|
76
|
+
const statusAfter = await repoStatus(ctx.config.baseUrl, ctx.repoName, opts);
|
|
77
|
+
assert.strictEqual(statusAfter.objectCount, statusBefore.objectCount, 'object count should be unchanged after GC');
|
|
53
78
|
});
|
|
54
79
|
it('repoCreate creates a new repository', async () => {
|
|
55
80
|
const ctx = getContext();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../src/suites/repository.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAExC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EACL,UAAU,EACV,MAAM,EACN,UAAU,EACV,UAAU,EACV,QAAQ,EACR,aAAa,
|
|
1
|
+
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../src/suites/repository.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elaraai/e3-api-tests",
|
|
3
|
-
"version": "0.0.2-beta.
|
|
3
|
+
"version": "0.0.2-beta.27",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "East Execution Engine API Compliance Tests - shared test suites for e3 API implementations",
|
|
6
6
|
"main": "dist/src/index.js",
|
|
@@ -35,9 +35,9 @@
|
|
|
35
35
|
"directory": "packages/e3-api-tests"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@elaraai/e3": "^0.0.2-beta.
|
|
39
|
-
"@elaraai/e3-api-client": "^0.0.2-beta.
|
|
40
|
-
"@elaraai/e3-cli": "^0.0.2-beta.
|
|
38
|
+
"@elaraai/e3": "^0.0.2-beta.27",
|
|
39
|
+
"@elaraai/e3-api-client": "^0.0.2-beta.27",
|
|
40
|
+
"@elaraai/e3-cli": "^0.0.2-beta.27",
|
|
41
41
|
"@elaraai/east": "^0.0.1-beta.31"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|