teraslice-test-harness 0.30.0 → 1.0.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.
- package/dist/src/base-test-harness.d.ts +8 -5
- package/dist/src/base-test-harness.d.ts.map +1 -1
- package/dist/src/base-test-harness.js +21 -15
- package/dist/src/base-test-harness.js.map +1 -1
- package/dist/src/download-external-asset.js +20 -24
- package/dist/src/download-external-asset.js.map +1 -1
- package/dist/src/index.d.ts +1 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +7 -33
- package/dist/src/index.js.map +1 -1
- package/dist/src/interfaces.d.ts +2 -2
- package/dist/src/interfaces.d.ts.map +1 -1
- package/dist/src/interfaces.js +1 -2
- package/dist/src/job-test-harness.d.ts +2 -2
- package/dist/src/job-test-harness.d.ts.map +1 -1
- package/dist/src/job-test-harness.js +10 -14
- package/dist/src/job-test-harness.js.map +1 -1
- package/dist/src/slicer-test-harness.d.ts +2 -2
- package/dist/src/slicer-test-harness.d.ts.map +1 -1
- package/dist/src/slicer-test-harness.js +21 -27
- package/dist/src/slicer-test-harness.js.map +1 -1
- package/dist/src/utils.js +12 -21
- package/dist/src/utils.js.map +1 -1
- package/dist/src/worker-test-harness.d.ts +2 -2
- package/dist/src/worker-test-harness.d.ts.map +1 -1
- package/dist/src/worker-test-harness.js +7 -14
- package/dist/src/worker-test-harness.js.map +1 -1
- package/package.json +9 -8
- package/dist/src/op-test-harness.d.ts +0 -35
- package/dist/src/op-test-harness.d.ts.map +0 -1
- package/dist/src/op-test-harness.js +0 -66
- package/dist/src/op-test-harness.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { TestContext,
|
|
2
|
+
import { TestContext, JobConfigParams, ExecutionContextConfig, Assignment, TestClientConfig, ClusterManagerType } from '@terascope/job-components';
|
|
3
3
|
import { EventEmitter } from 'events';
|
|
4
4
|
import { JobHarnessOptions, ExecutionContext } from './interfaces';
|
|
5
5
|
/**
|
|
@@ -9,15 +9,18 @@ import { JobHarnessOptions, ExecutionContext } from './interfaces';
|
|
|
9
9
|
*/
|
|
10
10
|
export default class BaseTestHarness<U extends ExecutionContext> {
|
|
11
11
|
readonly events: EventEmitter;
|
|
12
|
-
|
|
12
|
+
executionContext: U;
|
|
13
13
|
readonly context: TestContext;
|
|
14
|
-
|
|
14
|
+
readonly job: JobConfigParams;
|
|
15
|
+
readonly assetPaths: string[];
|
|
16
|
+
readonly clusterType?: ClusterManagerType;
|
|
17
|
+
constructor(job: JobConfigParams, options: JobHarnessOptions, assignment: Assignment);
|
|
15
18
|
/**
|
|
16
|
-
* Initialize any test
|
|
19
|
+
* Initialize any test code
|
|
17
20
|
*/
|
|
18
21
|
initialize(): Promise<void>;
|
|
19
22
|
setClients(clients: TestClientConfig[]): void;
|
|
20
|
-
protected makeContextConfig(job:
|
|
23
|
+
protected makeContextConfig(job: JobConfigParams, assets?: string[], cluster_manager_type?: ClusterManagerType): Promise<ExecutionContextConfig>;
|
|
21
24
|
private _getAssetDirs;
|
|
22
25
|
/**
|
|
23
26
|
* Cleanup test code
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-test-harness.d.ts","sourceRoot":"","sources":["../../src/base-test-harness.ts"],"names":[],"mappings":";AAAA,OAAO,EAC4B,WAAW,EAC1C,
|
|
1
|
+
{"version":3,"file":"base-test-harness.d.ts","sourceRoot":"","sources":["../../src/base-test-harness.ts"],"names":[],"mappings":";AAAA,OAAO,EAC4B,WAAW,EAC1C,eAAe,EAAE,sBAAsB,EAAE,UAAU,EAC7B,gBAAgB,EACtC,kBAAkB,EACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EACH,iBAAiB,EACjB,gBAAgB,EACnB,MAAM,cAAc,CAAC;AAGtB;;;;EAIE;AACF,MAAM,CAAC,OAAO,OAAO,eAAe,CAAC,CAAC,SAAS,gBAAgB;IAC3D,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,gBAAgB,EAAG,CAAC,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAG,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC;gBAE9B,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU;IAapF;;MAEE;IACI,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC,UAAU,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,IAAI;cAI7B,iBAAiB,CAC7B,GAAG,EAAE,eAAe,EACpB,MAAM,GAAE,MAAM,EAAoB,EAClC,oBAAoB,GAAE,kBAA6B,GACpD,OAAO,CAAC,sBAAsB,CAAC;IAelC,OAAO,CAAC,aAAa;IAQrB;;MAEE;IACI,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGlC"}
|
|
@@ -1,39 +1,46 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const job_components_1 = require("@terascope/job-components");
|
|
4
|
-
const utils_1 = require("./utils");
|
|
1
|
+
import { JobValidator, TestContext, makeExecutionContext, } from '@terascope/job-components';
|
|
2
|
+
import { resolveAssetDir } from './utils';
|
|
5
3
|
/**
|
|
6
4
|
* A base class for the Slicer and Worker TestHarnesses
|
|
7
5
|
*
|
|
8
6
|
* @todo Add support for validating the asset.json?
|
|
9
7
|
*/
|
|
10
|
-
class BaseTestHarness {
|
|
8
|
+
export default class BaseTestHarness {
|
|
9
|
+
events;
|
|
10
|
+
executionContext;
|
|
11
|
+
context;
|
|
12
|
+
job;
|
|
13
|
+
assetPaths;
|
|
14
|
+
clusterType;
|
|
11
15
|
constructor(job, options, assignment) {
|
|
12
16
|
const testName = [assignment, job.name].filter((s) => s).join(':');
|
|
13
|
-
this.context = new
|
|
17
|
+
this.context = new TestContext(testName, {
|
|
14
18
|
assignment,
|
|
15
19
|
clients: options.clients,
|
|
16
20
|
cluster_manager_type: options.cluster_manager_type,
|
|
17
21
|
});
|
|
18
22
|
this.events = this.context.apis.foundation.getSystemEvents();
|
|
19
|
-
|
|
20
|
-
this.
|
|
23
|
+
this.job = job;
|
|
24
|
+
this.assetPaths = this._getAssetDirs(options.assetDir);
|
|
25
|
+
this.clusterType = options.cluster_manager_type;
|
|
21
26
|
}
|
|
22
27
|
/**
|
|
23
|
-
* Initialize any test
|
|
28
|
+
* Initialize any test code
|
|
24
29
|
*/
|
|
25
30
|
async initialize() {
|
|
31
|
+
const config = await this.makeContextConfig(this.job, this.assetPaths, this.clusterType);
|
|
32
|
+
this.executionContext = await makeExecutionContext(config);
|
|
26
33
|
}
|
|
27
34
|
setClients(clients) {
|
|
28
35
|
this.context.apis.setTestClients(clients);
|
|
29
36
|
}
|
|
30
|
-
makeContextConfig(job, assets = [process.cwd()], cluster_manager_type = 'native') {
|
|
37
|
+
async makeContextConfig(job, assets = [process.cwd()], cluster_manager_type = 'native') {
|
|
31
38
|
const assetIds = job.assets ? [...job.assets, '.'] : ['.'];
|
|
32
39
|
this.context.sysconfig.teraslice.assets_directory = assets;
|
|
33
40
|
this.context.sysconfig.teraslice.cluster_manager_type = cluster_manager_type;
|
|
34
41
|
job.assets = assetIds;
|
|
35
|
-
const jobValidator = new
|
|
36
|
-
const executionConfig = jobValidator.validateConfig(job);
|
|
42
|
+
const jobValidator = new JobValidator(this.context);
|
|
43
|
+
const executionConfig = await jobValidator.validateConfig(job);
|
|
37
44
|
return {
|
|
38
45
|
context: this.context,
|
|
39
46
|
executionConfig,
|
|
@@ -42,9 +49,9 @@ class BaseTestHarness {
|
|
|
42
49
|
}
|
|
43
50
|
_getAssetDirs(assetDir = [process.cwd()]) {
|
|
44
51
|
if (Array.isArray(assetDir)) {
|
|
45
|
-
return
|
|
52
|
+
return resolveAssetDir(assetDir);
|
|
46
53
|
}
|
|
47
|
-
return
|
|
54
|
+
return resolveAssetDir([assetDir]);
|
|
48
55
|
}
|
|
49
56
|
/**
|
|
50
57
|
* Cleanup test code
|
|
@@ -53,5 +60,4 @@ class BaseTestHarness {
|
|
|
53
60
|
this.events.removeAllListeners();
|
|
54
61
|
}
|
|
55
62
|
}
|
|
56
|
-
exports.default = BaseTestHarness;
|
|
57
63
|
//# sourceMappingURL=base-test-harness.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-test-harness.js","sourceRoot":"","sources":["../../src/base-test-harness.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base-test-harness.js","sourceRoot":"","sources":["../../src/base-test-harness.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const utils_1 = require("@terascope/utils");
|
|
12
|
-
const fetch_github_release_1 = require("@terascope/fetch-github-release");
|
|
13
|
-
class DownloadExternalAsset {
|
|
1
|
+
import fs from 'fs-extra';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import os from 'os';
|
|
4
|
+
import decompress from 'decompress';
|
|
5
|
+
import { TSError } from '@terascope/utils';
|
|
6
|
+
import { downloadRelease } from '@terascope/fetch-github-release';
|
|
7
|
+
export class DownloadExternalAsset {
|
|
8
|
+
zipped_path;
|
|
9
|
+
unzipped_path;
|
|
10
|
+
build;
|
|
14
11
|
constructor() {
|
|
15
|
-
this.zipped_path =
|
|
16
|
-
this.unzipped_path =
|
|
17
|
-
this.build = `node-${this._majorNodeVersion()}-${
|
|
12
|
+
this.zipped_path = path.join(path.resolve('./test/.cache'), 'downloads');
|
|
13
|
+
this.unzipped_path = path.join(path.resolve('./test/.cache'), 'assets');
|
|
14
|
+
this.build = `node-${this._majorNodeVersion()}-${os.platform()}-${os.arch()}.zip`;
|
|
18
15
|
}
|
|
19
16
|
async downloadExternalAsset(assetString) {
|
|
20
17
|
const assetInfo = this._getAssetInfo(assetString);
|
|
21
18
|
// check if asset exists in test/.cache/assets/asset-repo
|
|
22
|
-
if (
|
|
19
|
+
if (fs.pathExistsSync(path.join(this.unzipped_path, assetInfo.repo, 'asset.json')))
|
|
23
20
|
return;
|
|
24
21
|
const zippedAssetPath = await this._getZippedFile(assetInfo);
|
|
25
22
|
await this._unzipAsset(assetInfo, zippedAssetPath);
|
|
@@ -31,7 +28,7 @@ class DownloadExternalAsset {
|
|
|
31
28
|
}
|
|
32
29
|
async _downloadAssetZip(assetInfo) {
|
|
33
30
|
try {
|
|
34
|
-
const result = await
|
|
31
|
+
const result = await downloadRelease(assetInfo.account, assetInfo.repo, this.zipped_path, // dir where zipped file will be stored
|
|
35
32
|
this._filterReleaseFunc(assetInfo.version), this._filterAssetFunc(), true, // leave zipped
|
|
36
33
|
false // quiet
|
|
37
34
|
);
|
|
@@ -42,13 +39,13 @@ class DownloadExternalAsset {
|
|
|
42
39
|
}
|
|
43
40
|
}
|
|
44
41
|
async _unzipAsset(assetInfo, zippedAssetPath) {
|
|
45
|
-
const unzippedAsset =
|
|
42
|
+
const unzippedAsset = path.join(this.unzipped_path, assetInfo.repo);
|
|
46
43
|
await this._ensureDirExists(unzippedAsset);
|
|
47
44
|
try {
|
|
48
|
-
await (
|
|
45
|
+
await decompress(zippedAssetPath, unzippedAsset);
|
|
49
46
|
}
|
|
50
47
|
catch (err) {
|
|
51
|
-
throw new
|
|
48
|
+
throw new TSError(err, {
|
|
52
49
|
reason: `Failure to unzip asset: ${assetInfo.asset_string}`
|
|
53
50
|
});
|
|
54
51
|
}
|
|
@@ -82,10 +79,10 @@ class DownloadExternalAsset {
|
|
|
82
79
|
}
|
|
83
80
|
async _ensureDirExists(dirPath) {
|
|
84
81
|
try {
|
|
85
|
-
await
|
|
82
|
+
await fs.ensureDir(dirPath);
|
|
86
83
|
}
|
|
87
84
|
catch (err) {
|
|
88
|
-
throw new
|
|
85
|
+
throw new TSError(err, {
|
|
89
86
|
reason: `Failure creating ${dirPath}`
|
|
90
87
|
});
|
|
91
88
|
}
|
|
@@ -108,5 +105,4 @@ class DownloadExternalAsset {
|
|
|
108
105
|
return process.version.split('.', 1)[0].slice(1);
|
|
109
106
|
}
|
|
110
107
|
}
|
|
111
|
-
exports.DownloadExternalAsset = DownloadExternalAsset;
|
|
112
108
|
//# sourceMappingURL=download-external-asset.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download-external-asset.js","sourceRoot":"","sources":["../../src/download-external-asset.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"download-external-asset.js","sourceRoot":"","sources":["../../src/download-external-asset.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { newTestSlice, newTestJobConfig } from '@terascope/job-components';
|
|
2
2
|
import JobTestHarness from './job-test-harness';
|
|
3
|
-
import OpTestHarness from './op-test-harness';
|
|
4
3
|
import SlicerTestHarness from './slicer-test-harness';
|
|
5
4
|
import WorkerTestHarness from './worker-test-harness';
|
|
6
5
|
export * from './download-external-asset';
|
|
7
6
|
export * from './interfaces';
|
|
8
|
-
export { JobTestHarness,
|
|
7
|
+
export { JobTestHarness, SlicerTestHarness, WorkerTestHarness, newTestSlice, newTestJobConfig, };
|
|
9
8
|
//# 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,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAChD,OAAO,iBAAiB,MAAM,uBAAuB,CAAC;AACtD,OAAO,iBAAiB,MAAM,uBAAuB,CAAC;AAEtD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,cAAc,CAAC;AAC7B,OAAO,EACH,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,GACnB,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,34 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
17
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
|
-
};
|
|
19
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.newTestJobConfig = exports.newTestSlice = exports.WorkerTestHarness = exports.SlicerTestHarness = exports.OpTestHarness = exports.JobTestHarness = void 0;
|
|
21
|
-
const job_components_1 = require("@terascope/job-components");
|
|
22
|
-
Object.defineProperty(exports, "newTestSlice", { enumerable: true, get: function () { return job_components_1.newTestSlice; } });
|
|
23
|
-
Object.defineProperty(exports, "newTestJobConfig", { enumerable: true, get: function () { return job_components_1.newTestJobConfig; } });
|
|
24
|
-
const job_test_harness_1 = __importDefault(require("./job-test-harness"));
|
|
25
|
-
exports.JobTestHarness = job_test_harness_1.default;
|
|
26
|
-
const op_test_harness_1 = __importDefault(require("./op-test-harness"));
|
|
27
|
-
exports.OpTestHarness = op_test_harness_1.default;
|
|
28
|
-
const slicer_test_harness_1 = __importDefault(require("./slicer-test-harness"));
|
|
29
|
-
exports.SlicerTestHarness = slicer_test_harness_1.default;
|
|
30
|
-
const worker_test_harness_1 = __importDefault(require("./worker-test-harness"));
|
|
31
|
-
exports.WorkerTestHarness = worker_test_harness_1.default;
|
|
32
|
-
__exportStar(require("./download-external-asset"), exports);
|
|
33
|
-
__exportStar(require("./interfaces"), exports);
|
|
1
|
+
import { newTestSlice, newTestJobConfig } from '@terascope/job-components';
|
|
2
|
+
import JobTestHarness from './job-test-harness';
|
|
3
|
+
import SlicerTestHarness from './slicer-test-harness';
|
|
4
|
+
import WorkerTestHarness from './worker-test-harness';
|
|
5
|
+
export * from './download-external-asset';
|
|
6
|
+
export * from './interfaces';
|
|
7
|
+
export { JobTestHarness, SlicerTestHarness, WorkerTestHarness, newTestSlice, newTestJobConfig, };
|
|
34
8
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAChD,OAAO,iBAAiB,MAAM,uBAAuB,CAAC;AACtD,OAAO,iBAAiB,MAAM,uBAAuB,CAAC;AAEtD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,cAAc,CAAC;AAC7B,OAAO,EACH,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,GACnB,CAAC"}
|
package/dist/src/interfaces.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { WorkerExecutionContext, SlicerExecutionContext, TestClientConfig, ProcessorConstructor, SlicerConstructor, Slice, DataEntity, ClusterManagerType } from '@terascope/job-components';
|
|
2
|
+
export type { Context } from '@terascope/job-components';
|
|
2
3
|
export type ExecutionContext = WorkerExecutionContext | SlicerExecutionContext;
|
|
3
|
-
export type Context = WorkerContext;
|
|
4
4
|
export interface JobHarnessOptions {
|
|
5
5
|
assetDir?: string | string[];
|
|
6
6
|
clients?: TestClientConfig[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,KAAK,EACL,UAAU,EACV,kBAAkB,EACrB,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEzD,MAAM,MAAM,gBAAgB,GAAG,sBAAsB,GAAC,sBAAsB,CAAC;AAE7E,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B,oBAAoB,CAAC,EAAE,kBAAkB,CAAA;CAC5C;AAED,MAAM,WAAW,oBAAoB;IACjC,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAChC;AAED,MAAM,MAAM,uBAAuB,GAAG,oBAAoB,GAAC,iBAAiB,CAAC;AAE7E,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,UAAU,EAAE,CAAA;CACrB;AAED,MAAM,WAAW,SAAS;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
package/dist/src/interfaces.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DataEntity,
|
|
1
|
+
import { DataEntity, JobConfigParams, TestClientConfig, FetcherCore, SlicerCore, SlicerRecoveryData } from '@terascope/job-components';
|
|
2
2
|
import SlicerTestHarness from './slicer-test-harness';
|
|
3
3
|
import WorkerTestHarness from './worker-test-harness';
|
|
4
4
|
import { JobHarnessOptions, SliceResults } from './interfaces';
|
|
@@ -13,7 +13,7 @@ import { JobHarnessOptions, SliceResults } from './interfaces';
|
|
|
13
13
|
export default class JobTestHarness {
|
|
14
14
|
readonly workerHarness: WorkerTestHarness;
|
|
15
15
|
readonly slicerHarness: SlicerTestHarness;
|
|
16
|
-
constructor(job:
|
|
16
|
+
constructor(job: JobConfigParams, options: JobHarnessOptions);
|
|
17
17
|
slicer<T extends SlicerCore = SlicerCore>(): T;
|
|
18
18
|
fetcher<T extends FetcherCore = FetcherCore>(): T;
|
|
19
19
|
get processors(): WorkerTestHarness['processors'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-test-harness.d.ts","sourceRoot":"","sources":["../../src/job-test-harness.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,UAAU,EACV,
|
|
1
|
+
{"version":3,"file":"job-test-harness.d.ts","sourceRoot":"","sources":["../../src/job-test-harness.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,UAAU,EACV,eAAe,EAIf,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,kBAAkB,EAGrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,iBAAiB,MAAM,uBAAuB,CAAC;AACtD,OAAO,iBAAiB,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE/D;;;;;;;EAOE;AAEF,MAAM,CAAC,OAAO,OAAO,cAAc;IAC/B,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;gBAE9B,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,iBAAiB;IAK5D,MAAM,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,KAAK,CAAC;IAI9C,OAAO,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,KAAK,CAAC;IAIjD,IAAI,UAAU,IAAI,iBAAiB,CAAC,YAAY,CAAC,CAEhD;IAED,IAAI,IAAI,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAEpC;IAED;;;MAGE;IACI,UAAU,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5D;;;;;MAKE;IACI,UAAU,CAAC,YAAY,CAAC,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpE;;;;;MAKE;IACI,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC;YAYtB,YAAY;IAoC1B;;;;MAIE;IACI,eAAe,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAiBhD;;MAEE;IACI,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAMlC;AAED,KAAK,QAAQ,GAAG,UAAU,EAAE,CAAC;AAC7B,MAAM,MAAM,cAAc,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC"}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const job_components_1 = require("@terascope/job-components");
|
|
7
|
-
const slicer_test_harness_1 = __importDefault(require("./slicer-test-harness"));
|
|
8
|
-
const worker_test_harness_1 = __importDefault(require("./worker-test-harness"));
|
|
1
|
+
import { pDelay, flatten, } from '@terascope/job-components';
|
|
2
|
+
import SlicerTestHarness from './slicer-test-harness';
|
|
3
|
+
import WorkerTestHarness from './worker-test-harness';
|
|
9
4
|
/**
|
|
10
5
|
* A test harness for both the Slicer and Fetcher,
|
|
11
6
|
* utilizing both the Slicer and Worker test harnesses.
|
|
@@ -14,10 +9,12 @@ const worker_test_harness_1 = __importDefault(require("./worker-test-harness"));
|
|
|
14
9
|
*
|
|
15
10
|
* @todo Handle more than one worker?
|
|
16
11
|
*/
|
|
17
|
-
class JobTestHarness {
|
|
12
|
+
export default class JobTestHarness {
|
|
13
|
+
workerHarness;
|
|
14
|
+
slicerHarness;
|
|
18
15
|
constructor(job, options) {
|
|
19
|
-
this.workerHarness = new
|
|
20
|
-
this.slicerHarness = new
|
|
16
|
+
this.workerHarness = new WorkerTestHarness(job, options);
|
|
17
|
+
this.slicerHarness = new SlicerTestHarness(job, options);
|
|
21
18
|
}
|
|
22
19
|
slicer() {
|
|
23
20
|
return this.slicerHarness.slicer();
|
|
@@ -105,9 +102,9 @@ class JobTestHarness {
|
|
|
105
102
|
.filter(Boolean);
|
|
106
103
|
for (const slice of allSlices) {
|
|
107
104
|
const sliceData = await this.processSlice(slice);
|
|
108
|
-
await
|
|
105
|
+
await pDelay(1);
|
|
109
106
|
const dataLists = [...sliceData].filter(Boolean);
|
|
110
|
-
const data =
|
|
107
|
+
const data = flatten(dataLists);
|
|
111
108
|
results.push({ slice, data });
|
|
112
109
|
}
|
|
113
110
|
return results;
|
|
@@ -122,5 +119,4 @@ class JobTestHarness {
|
|
|
122
119
|
]);
|
|
123
120
|
}
|
|
124
121
|
}
|
|
125
|
-
exports.default = JobTestHarness;
|
|
126
122
|
//# sourceMappingURL=job-test-harness.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-test-harness.js","sourceRoot":"","sources":["../../src/job-test-harness.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"job-test-harness.js","sourceRoot":"","sources":["../../src/job-test-harness.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SlicerExecutionContext,
|
|
1
|
+
import { SlicerExecutionContext, JobConfigParams, Slice, SliceRequest, SliceResult, ExecutionStats, SlicerCore, SlicerRecoveryData, APICore, OpAPI } from '@terascope/job-components';
|
|
2
2
|
import BaseTestHarness from './base-test-harness';
|
|
3
3
|
import { JobHarnessOptions } from './interfaces';
|
|
4
4
|
/**
|
|
@@ -10,7 +10,7 @@ type SliceResults = (SliceRequest | Slice | null)[];
|
|
|
10
10
|
export default class SlicerTestHarness extends BaseTestHarness<SlicerExecutionContext> {
|
|
11
11
|
readonly stats: ExecutionStats;
|
|
12
12
|
private _emitInterval;
|
|
13
|
-
constructor(job:
|
|
13
|
+
constructor(job: JobConfigParams, options: JobHarnessOptions);
|
|
14
14
|
slicer<T extends SlicerCore = SlicerCore>(): T;
|
|
15
15
|
/**
|
|
16
16
|
* Initialize the Operations on the ExecutionContext
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slicer-test-harness.d.ts","sourceRoot":"","sources":["../../src/slicer-test-harness.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,sBAAsB,EACtB,
|
|
1
|
+
{"version":3,"file":"slicer-test-harness.d.ts","sourceRoot":"","sources":["../../src/slicer-test-harness.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,sBAAsB,EACtB,eAAe,EACf,KAAK,EACL,YAAY,EACZ,WAAW,EACX,cAAc,EACd,UAAU,EACV,kBAAkB,EAGlB,OAAO,EACP,KAAK,EACR,MAAM,2BAA2B,CAAC;AACnC,OAAO,eAAe,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD;;;;EAIE;AAEF,KAAK,YAAY,GAAG,CAAC,YAAY,GAAC,KAAK,GAAC,IAAI,CAAC,EAAE,CAAC;AAEhD,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,eAAe,CAAC,sBAAsB,CAAC;IAClF,QAAQ,CAAC,KAAK,EAAE,cAAc,CAS5B;IAEF,OAAO,CAAC,aAAa,CAAM;gBAEf,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,iBAAiB;IAI5D,MAAM,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,KAAK,CAAC;IAI9C;;;MAGE;IACI,UAAU,CAAC,YAAY,GAAE,kBAAkB,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBxE;;;;;;;;;;;;MAYE;IACI,YAAY,IAAI,OAAO,CAAC,CAAC,YAAY,GAAC,IAAI,CAAC,EAAE,CAAC;IAC9C,YAAY,CAAC,OAAO,EAAE;QAAE,YAAY,EAAE,KAAK,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,YAAY,GAAC,IAAI,CAAC,EAAE,CAAC;IAC9E,YAAY,CAAC,OAAO,EAAE;QAAE,YAAY,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,KAAK,GAAC,IAAI,CAAC,EAAE,CAAC;IA0CtE,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC;IACrC,YAAY,CAAC,OAAO,EAAE;QAAE,YAAY,EAAE,KAAK,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,KAAK,GAAC,IAAI,CAAC,EAAE,CAAC;IACvE,YAAY,CAAC,OAAO,EAAE;QAAE,YAAY,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,YAAY,GAAC,IAAI,CAAC,EAAE,CAAC;IA2BnF,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM/B,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAInC,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAI1C,IAAI,IAAI,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAEzC;IAED;;;MAGE;IACF,MAAM,CAAC,CAAC,SAAS,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;IAI9C;;;MAGE;IACF,eAAe,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;IAO7D;;MAEE;IACI,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAOlC"}
|
|
@@ -1,27 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { times, isPlainObject } from '@terascope/job-components';
|
|
2
|
+
import BaseTestHarness from './base-test-harness';
|
|
3
|
+
export default class SlicerTestHarness extends BaseTestHarness {
|
|
4
|
+
stats = {
|
|
5
|
+
workers: {
|
|
6
|
+
available: 1,
|
|
7
|
+
connected: 1,
|
|
8
|
+
},
|
|
9
|
+
slices: {
|
|
10
|
+
processed: 0,
|
|
11
|
+
failed: 0,
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
_emitInterval;
|
|
9
15
|
constructor(job, options) {
|
|
10
16
|
super(job, options, 'execution_controller');
|
|
11
|
-
this.stats = {
|
|
12
|
-
workers: {
|
|
13
|
-
available: 1,
|
|
14
|
-
connected: 1,
|
|
15
|
-
},
|
|
16
|
-
slices: {
|
|
17
|
-
processed: 0,
|
|
18
|
-
failed: 0,
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
const { config } = this.executionContext;
|
|
22
|
-
if (config.recovered_execution && !this.slicer().isRecoverable()) {
|
|
23
|
-
throw new Error('Slicer is not recoverable');
|
|
24
|
-
}
|
|
25
17
|
}
|
|
26
18
|
slicer() {
|
|
27
19
|
return this.executionContext.slicer();
|
|
@@ -32,13 +24,17 @@ class SlicerTestHarness extends base_test_harness_1.default {
|
|
|
32
24
|
*/
|
|
33
25
|
async initialize(recoveryData = []) {
|
|
34
26
|
await super.initialize();
|
|
27
|
+
const { config } = this.executionContext;
|
|
28
|
+
if (config.recovered_execution && !this.slicer().isRecoverable()) {
|
|
29
|
+
throw new Error('Slicer is not recoverable');
|
|
30
|
+
}
|
|
35
31
|
// teraslice checks to see if slicer is recoverable
|
|
36
32
|
// should throw test recoveryData if slicer is not recoverable
|
|
37
33
|
if (recoveryData.length > 0) {
|
|
38
34
|
if (!this.executionContext.slicer().isRecoverable()) {
|
|
39
35
|
throw new Error('Slicer is not recoverable, please create the isRecoverable method and return true to enable recovery');
|
|
40
36
|
}
|
|
41
|
-
if (!recoveryData.every(
|
|
37
|
+
if (!recoveryData.every(isPlainObject)) {
|
|
42
38
|
throw new Error('recoveryData is malformed');
|
|
43
39
|
}
|
|
44
40
|
}
|
|
@@ -77,7 +73,7 @@ class SlicerTestHarness extends base_test_harness_1.default {
|
|
|
77
73
|
}
|
|
78
74
|
const remaining = slicers - sliceRequests.length;
|
|
79
75
|
if (remaining > 0) {
|
|
80
|
-
const nulls =
|
|
76
|
+
const nulls = times(remaining, () => null);
|
|
81
77
|
return sliceRequests.concat(nulls);
|
|
82
78
|
}
|
|
83
79
|
return sliceRequests;
|
|
@@ -130,8 +126,7 @@ class SlicerTestHarness extends base_test_harness_1.default {
|
|
|
130
126
|
* for the APIs that created during run time, use getAPI.
|
|
131
127
|
*/
|
|
132
128
|
getOperationAPI(name) {
|
|
133
|
-
|
|
134
|
-
if (!((_a = this.apis[name]) === null || _a === void 0 ? void 0 : _a.instance)) {
|
|
129
|
+
if (!this.apis[name]?.instance) {
|
|
135
130
|
throw new Error(`Operation API "${name}" not found`);
|
|
136
131
|
}
|
|
137
132
|
return this.apis[name].instance;
|
|
@@ -147,5 +142,4 @@ class SlicerTestHarness extends base_test_harness_1.default {
|
|
|
147
142
|
await this.executionContext.shutdown();
|
|
148
143
|
}
|
|
149
144
|
}
|
|
150
|
-
exports.default = SlicerTestHarness;
|
|
151
145
|
//# sourceMappingURL=slicer-test-harness.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slicer-test-harness.js","sourceRoot":"","sources":["../../src/slicer-test-harness.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"slicer-test-harness.js","sourceRoot":"","sources":["../../src/slicer-test-harness.ts"],"names":[],"mappings":"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"}
|
package/dist/src/utils.js
CHANGED
|
@@ -1,20 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.isAssetDirRoot = exports.isBaseAssetDir = exports.resolveAssetDir = void 0;
|
|
7
|
-
const path_1 = __importDefault(require("path"));
|
|
8
|
-
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
9
|
-
function resolveAssetDir(configAssetDirs) {
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import fs from 'fs-extra';
|
|
3
|
+
export function resolveAssetDir(configAssetDirs) {
|
|
10
4
|
const assetDirs = Array.isArray(configAssetDirs) ? configAssetDirs : [configAssetDirs];
|
|
11
5
|
return assetDirs.map((assetDir) => {
|
|
12
|
-
const dirname =
|
|
6
|
+
const dirname = path.dirname(assetDir);
|
|
13
7
|
if (!dirname || dirname === '/' || dirname === process.env.HOME) {
|
|
14
8
|
throw new Error(`${assetDir} is not a valid path`);
|
|
15
9
|
}
|
|
16
10
|
if (isAssetDirRoot(assetDir)) {
|
|
17
|
-
return
|
|
11
|
+
return path.join(assetDir, 'asset');
|
|
18
12
|
}
|
|
19
13
|
if (isBaseAssetDir(assetDir)) {
|
|
20
14
|
return assetDir;
|
|
@@ -22,16 +16,13 @@ function resolveAssetDir(configAssetDirs) {
|
|
|
22
16
|
throw new Error(`Unable to find asset dir at path ${assetDir}`);
|
|
23
17
|
});
|
|
24
18
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
return basename === 'asset' || fs_extra_1.default.existsSync(assetJson);
|
|
19
|
+
export function isBaseAssetDir(assetDir) {
|
|
20
|
+
const basename = path.basename(assetDir);
|
|
21
|
+
const assetJson = path.join(assetDir, 'asset.json');
|
|
22
|
+
return basename === 'asset' || fs.existsSync(assetJson);
|
|
30
23
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
return fs_extra_1.default.existsSync(assetJson);
|
|
24
|
+
export function isAssetDirRoot(assetDir) {
|
|
25
|
+
const assetJson = path.join(assetDir, 'asset', 'asset.json');
|
|
26
|
+
return fs.existsSync(assetJson);
|
|
35
27
|
}
|
|
36
|
-
exports.isAssetDirRoot = isAssetDirRoot;
|
|
37
28
|
//# sourceMappingURL=utils.js.map
|
package/dist/src/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,UAAU,CAAC;AAE1B,MAAM,UAAU,eAAe,CAAC,eAAiC;IAC7D,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IAEvF,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEvC,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE;YAC7D,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,sBAAsB,CAAC,CAAC;SACtD;QAED,IAAI,cAAc,CAAC,QAAQ,CAAC,EAAE;YAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;SACvC;QAED,IAAI,cAAc,CAAC,QAAQ,CAAC,EAAE;YAC1B,OAAO,QAAQ,CAAC;SACnB;QAED,MAAM,IAAI,KAAK,CAAC,oCAAoC,QAAQ,EAAE,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACpD,OAAO,QAAQ,KAAK,OAAO,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAC7D,OAAO,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { WorkerExecutionContext,
|
|
1
|
+
import { WorkerExecutionContext, JobConfigParams, Slice, DataEntity, RunSliceResult, SliceRequest, FetcherCore, OperationCore, APICore, OpConfig, OpAPI } from '@terascope/job-components';
|
|
2
2
|
import BaseTestHarness from './base-test-harness';
|
|
3
3
|
import { JobHarnessOptions } from './interfaces';
|
|
4
4
|
/**
|
|
@@ -10,7 +10,7 @@ import { JobHarnessOptions } from './interfaces';
|
|
|
10
10
|
* @todo Add support for attaching APIs and Observers
|
|
11
11
|
*/
|
|
12
12
|
export default class WorkerTestHarness extends BaseTestHarness<WorkerExecutionContext> {
|
|
13
|
-
constructor(job:
|
|
13
|
+
constructor(job: JobConfigParams, options?: JobHarnessOptions);
|
|
14
14
|
static testProcessor(opConfig: OpConfig, options?: JobHarnessOptions): WorkerTestHarness;
|
|
15
15
|
static testFetcher(opConfig: OpConfig, options?: JobHarnessOptions): WorkerTestHarness;
|
|
16
16
|
fetcher<T extends FetcherCore = FetcherCore>(): T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-test-harness.d.ts","sourceRoot":"","sources":["../../src/worker-test-harness.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,sBAAsB,EACtB,
|
|
1
|
+
{"version":3,"file":"worker-test-harness.d.ts","sourceRoot":"","sources":["../../src/worker-test-harness.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,sBAAsB,EACtB,eAAe,EACf,KAAK,EACL,UAAU,EACV,cAAc,EACd,YAAY,EAEZ,WAAW,EACX,aAAa,EACb,OAAO,EACP,QAAQ,EAER,KAAK,EACR,MAAM,2BAA2B,CAAC;AACnC,OAAO,eAAe,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,eAAe,CAAC,sBAAsB,CAAC;gBACtE,GAAG,EAAE,eAAe,EAAE,OAAO,GAAE,iBAAsB;IAIjE,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,iBAAiB;IAcxF,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,iBAAiB;IAatF,OAAO,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,KAAK,CAAC;IAIjD,IAAI,UAAU,IAAI,sBAAsB,CAAC,YAAY,CAAC,CAErD;IAED,IAAI,IAAI,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAEzC;IAED;;;MAGE;IACF,MAAM,CAAC,CAAC,SAAS,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;IAI9C;;MAEE;IACF,YAAY,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC;IAIjF;;;MAGE;IACF,eAAe,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;IAO7D;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC;;;;;;;;;;;;OAYG;IACG,QAAQ,CACV,KAAK,EAAE,KAAK,GAAG,YAAY,GAC5B,OAAO,CAAC,UAAU,EAAE,CAAC;IAClB,QAAQ,CACV,KAAK,EAAE,KAAK,GAAG,YAAY,EAC3B,OAAO,EAAE;QAAE,YAAY,EAAE,KAAK,CAAA;KAAE,GACjC,OAAO,CAAC,UAAU,EAAE,CAAC;IAClB,QAAQ,CACV,KAAK,EAAE,KAAK,GAAG,YAAY,EAC3B,OAAO,EAAE;QAAE,YAAY,EAAE,IAAI,CAAA;KAAE,GAChC,OAAO,CAAC,cAAc,CAAC;IA+B1B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,UAAU,EAAE,GAAG,SAAS,CAAC;IAC1C,KAAK,CAAC,OAAO,EAAE;QAAE,YAAY,EAAE,KAAK,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,EAAE,GAAG,SAAS,CAAC;IAC1E,KAAK,CAAC,OAAO,EAAE;QAAE,YAAY,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAW3E,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAIlC"}
|
|
@@ -1,10 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const job_components_1 = require("@terascope/job-components");
|
|
7
|
-
const base_test_harness_1 = __importDefault(require("./base-test-harness"));
|
|
1
|
+
import { newTestSlice, newTestJobConfig, } from '@terascope/job-components';
|
|
2
|
+
import BaseTestHarness from './base-test-harness';
|
|
8
3
|
/**
|
|
9
4
|
* A test harness for testing Operations that run on Workers,
|
|
10
5
|
* mainly Fetchers and Processors.
|
|
@@ -13,12 +8,12 @@ const base_test_harness_1 = __importDefault(require("./base-test-harness"));
|
|
|
13
8
|
*
|
|
14
9
|
* @todo Add support for attaching APIs and Observers
|
|
15
10
|
*/
|
|
16
|
-
class WorkerTestHarness extends
|
|
11
|
+
export default class WorkerTestHarness extends BaseTestHarness {
|
|
17
12
|
constructor(job, options = {}) {
|
|
18
13
|
super(job, options, 'worker');
|
|
19
14
|
}
|
|
20
15
|
static testProcessor(opConfig, options) {
|
|
21
|
-
const job =
|
|
16
|
+
const job = newTestJobConfig({
|
|
22
17
|
max_retries: 0,
|
|
23
18
|
operations: [
|
|
24
19
|
{
|
|
@@ -31,7 +26,7 @@ class WorkerTestHarness extends base_test_harness_1.default {
|
|
|
31
26
|
return new WorkerTestHarness(job, options);
|
|
32
27
|
}
|
|
33
28
|
static testFetcher(opConfig, options) {
|
|
34
|
-
const job =
|
|
29
|
+
const job = newTestJobConfig({
|
|
35
30
|
max_retries: 0,
|
|
36
31
|
operations: [
|
|
37
32
|
opConfig,
|
|
@@ -69,8 +64,7 @@ class WorkerTestHarness extends base_test_harness_1.default {
|
|
|
69
64
|
* for the APIs that created during run time, use getAPI.
|
|
70
65
|
*/
|
|
71
66
|
getOperationAPI(name) {
|
|
72
|
-
|
|
73
|
-
if (!((_a = this.apis[name]) === null || _a === void 0 ? void 0 : _a.instance)) {
|
|
67
|
+
if (!this.apis[name]?.instance) {
|
|
74
68
|
throw new Error(`Operation API "${name}" not found`);
|
|
75
69
|
}
|
|
76
70
|
return this.apis[name].instance;
|
|
@@ -83,7 +77,7 @@ class WorkerTestHarness extends base_test_harness_1.default {
|
|
|
83
77
|
await this.executionContext.initialize();
|
|
84
78
|
}
|
|
85
79
|
async runSlice(input, { fullResponse = false } = {}) {
|
|
86
|
-
const slice = isSlice(input) ? input :
|
|
80
|
+
const slice = isSlice(input) ? input : newTestSlice(input);
|
|
87
81
|
await this.executionContext.initializeSlice(slice);
|
|
88
82
|
let result;
|
|
89
83
|
try {
|
|
@@ -116,7 +110,6 @@ class WorkerTestHarness extends base_test_harness_1.default {
|
|
|
116
110
|
await this.executionContext.shutdown();
|
|
117
111
|
}
|
|
118
112
|
}
|
|
119
|
-
exports.default = WorkerTestHarness;
|
|
120
113
|
function isSlice(input) {
|
|
121
114
|
return input.slice_id && input.slicer_id != null;
|
|
122
115
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-test-harness.js","sourceRoot":"","sources":["../../src/worker-test-harness.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"worker-test-harness.js","sourceRoot":"","sources":["../../src/worker-test-harness.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "teraslice-test-harness",
|
|
3
3
|
"displayName": "Teraslice Test Harness",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "1.0.0",
|
|
5
5
|
"description": "A helpful library for testing teraslice jobs, operations, and other components.",
|
|
6
6
|
"homepage": "https://github.com/terascope/teraslice/tree/master/packages/teraslice-test-harness#readme",
|
|
7
7
|
"bugs": {
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
},
|
|
14
14
|
"license": "MIT",
|
|
15
15
|
"author": "Terascope, LLC <info@terascope.io>",
|
|
16
|
+
"type": "module",
|
|
16
17
|
"main": "dist/src/index.js",
|
|
17
18
|
"typings": "dist/src/index.d.ts",
|
|
18
19
|
"directories": {
|
|
@@ -25,21 +26,21 @@
|
|
|
25
26
|
"scripts": {
|
|
26
27
|
"build": "tsc --build",
|
|
27
28
|
"build:watch": "yarn build --watch",
|
|
28
|
-
"test": "ts-scripts test . --",
|
|
29
|
-
"test:debug": "ts-scripts test --debug . --",
|
|
30
|
-
"test:watch": "ts-scripts test --watch . --"
|
|
29
|
+
"test": "NODE_OPTIONS='--experimental-vm-modules' ts-scripts test . --",
|
|
30
|
+
"test:debug": "NODE_OPTIONS='--experimental-vm-modules' ts-scripts test --debug . --",
|
|
31
|
+
"test:watch": "NODE_OPTIONS='--experimental-vm-modules' ts-scripts test --watch . --"
|
|
31
32
|
},
|
|
32
33
|
"dependencies": {
|
|
33
|
-
"@terascope/fetch-github-release": "^0.8.
|
|
34
|
+
"@terascope/fetch-github-release": "^0.8.10",
|
|
34
35
|
"@terascope/teraslice-op-test-harness": "^1.24.1",
|
|
35
36
|
"decompress": "^4.2.1",
|
|
36
37
|
"fs-extra": "^11.2.0"
|
|
37
38
|
},
|
|
38
39
|
"devDependencies": {
|
|
39
|
-
"@terascope/job-components": "^0.
|
|
40
|
+
"@terascope/job-components": "^1.0.0"
|
|
40
41
|
},
|
|
41
42
|
"peerDependencies": {
|
|
42
|
-
"@terascope/job-components": ">=0.
|
|
43
|
+
"@terascope/job-components": ">=1.0.0"
|
|
43
44
|
},
|
|
44
45
|
"engines": {
|
|
45
46
|
"node": ">=14.17.0",
|
|
@@ -52,6 +53,6 @@
|
|
|
52
53
|
"srcMain": "src/index.ts",
|
|
53
54
|
"terascope": {
|
|
54
55
|
"enableTypedoc": true,
|
|
55
|
-
"testSuite": "unit"
|
|
56
|
+
"testSuite": "unit-esm"
|
|
56
57
|
}
|
|
57
58
|
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import OpHarness from '@terascope/teraslice-op-test-harness';
|
|
2
|
-
import { TestClientConfig, CoreOperation } from '@terascope/job-components';
|
|
3
|
-
import { OpTestHarnessOptions } from './interfaces';
|
|
4
|
-
/**
|
|
5
|
-
* A simple test harness for running an single operation
|
|
6
|
-
* with minimal customizations. Based of the older
|
|
7
|
-
* teraslice-op-test-harness package.
|
|
8
|
-
*
|
|
9
|
-
* This is useful for testing Data in -> out on a Fetcher,
|
|
10
|
-
* Reader, or Processor.
|
|
11
|
-
*/
|
|
12
|
-
export default class OpTestHarness {
|
|
13
|
-
harness: OpHarness.TestHarness;
|
|
14
|
-
opTester: OpHarness.OperationTester | undefined;
|
|
15
|
-
constructor(op: OpHarness.OpTestHarnessInput, options?: OpTestHarnessOptions);
|
|
16
|
-
/**
|
|
17
|
-
* Set the Terafoundation Clients on both
|
|
18
|
-
* the Slicer and Worker contexts
|
|
19
|
-
*/
|
|
20
|
-
setClients(clients: TestClientConfig[]): void;
|
|
21
|
-
/**
|
|
22
|
-
* Get the Operation from the op test harness
|
|
23
|
-
*/
|
|
24
|
-
get operation(): CoreOperation | null;
|
|
25
|
-
/**
|
|
26
|
-
* Initialize the Operations on the ExecutionContext
|
|
27
|
-
*/
|
|
28
|
-
initialize(options?: OpHarness.InitOptions): Promise<void>;
|
|
29
|
-
run(input: OpHarness.RunInput): Promise<OpHarness.RunResult>;
|
|
30
|
-
/**
|
|
31
|
-
* Shutdown the Operations on the ExecutionContext
|
|
32
|
-
*/
|
|
33
|
-
shutdown(): Promise<void>;
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=op-test-harness.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"op-test-harness.d.ts","sourceRoot":"","sources":["../../src/op-test-harness.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,sCAAsC,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD;;;;;;;EAOE;AACF,MAAM,CAAC,OAAO,OAAO,aAAa;IAC9B,OAAO,EAAE,SAAS,CAAC,WAAW,CAAC;IAC/B,QAAQ,EAAE,SAAS,CAAC,eAAe,GAAC,SAAS,CAAC;gBAElC,EAAE,EAAE,SAAS,CAAC,kBAAkB,EAAE,OAAO,CAAC,EAAE,oBAAoB;IAO5E;;;MAGE;IACF,UAAU,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,IAAI;IAI7C;;MAEE;IACF,IAAI,SAAS,IAAI,aAAa,GAAC,IAAI,CAGlC;IAED;;MAEE;IACI,UAAU,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAU1D,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC;IAQlE;;MAEE;IACI,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAOlC"}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const teraslice_op_test_harness_1 = __importDefault(require("@terascope/teraslice-op-test-harness"));
|
|
7
|
-
/**
|
|
8
|
-
* A simple test harness for running an single operation
|
|
9
|
-
* with minimal customizations. Based of the older
|
|
10
|
-
* teraslice-op-test-harness package.
|
|
11
|
-
*
|
|
12
|
-
* This is useful for testing Data in -> out on a Fetcher,
|
|
13
|
-
* Reader, or Processor.
|
|
14
|
-
*/
|
|
15
|
-
class OpTestHarness {
|
|
16
|
-
constructor(op, options) {
|
|
17
|
-
this.harness = (0, teraslice_op_test_harness_1.default)(op);
|
|
18
|
-
if (options) {
|
|
19
|
-
this.harness.setClients(options.clients);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Set the Terafoundation Clients on both
|
|
24
|
-
* the Slicer and Worker contexts
|
|
25
|
-
*/
|
|
26
|
-
setClients(clients) {
|
|
27
|
-
this.harness.setClients(clients);
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Get the Operation from the op test harness
|
|
31
|
-
*/
|
|
32
|
-
get operation() {
|
|
33
|
-
if (this.opTester == null)
|
|
34
|
-
return null;
|
|
35
|
-
return this.opTester.operation;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Initialize the Operations on the ExecutionContext
|
|
39
|
-
*/
|
|
40
|
-
async initialize(options) {
|
|
41
|
-
const initOptions = options != null ? options : {
|
|
42
|
-
opConfig: {
|
|
43
|
-
_op: 'test'
|
|
44
|
-
},
|
|
45
|
-
type: 'reader'
|
|
46
|
-
};
|
|
47
|
-
this.opTester = await this.harness.init(initOptions);
|
|
48
|
-
}
|
|
49
|
-
async run(input) {
|
|
50
|
-
if (this.opTester == null) {
|
|
51
|
-
throw new Error('Initialize must be called before run');
|
|
52
|
-
}
|
|
53
|
-
return this.opTester.run(input);
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Shutdown the Operations on the ExecutionContext
|
|
57
|
-
*/
|
|
58
|
-
async shutdown() {
|
|
59
|
-
if (this.opTester != null) {
|
|
60
|
-
await this.opTester.operation.shutdown();
|
|
61
|
-
}
|
|
62
|
-
this.harness.events.removeAllListeners();
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
exports.default = OpTestHarness;
|
|
66
|
-
//# sourceMappingURL=op-test-harness.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"op-test-harness.js","sourceRoot":"","sources":["../../src/op-test-harness.ts"],"names":[],"mappings":";;;;;AAAA,qGAA6D;AAI7D;;;;;;;EAOE;AACF,MAAqB,aAAa;IAI9B,YAAY,EAAgC,EAAE,OAA8B;QACxE,IAAI,CAAC,OAAO,GAAG,IAAA,mCAAS,EAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC5C;IACL,CAAC;IAED;;;MAGE;IACF,UAAU,CAAC,OAA2B;QAClC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED;;MAEE;IACF,IAAI,SAAS;QACT,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;IACnC,CAAC;IAED;;MAEE;IACF,KAAK,CAAC,UAAU,CAAC,OAA+B;QAC5C,MAAM,WAAW,GAA0B,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACnE,QAAQ,EAAE;gBACN,GAAG,EAAE,MAAM;aACd;YACD,IAAI,EAAE,QAAQ;SACjB,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAyB;QAC/B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;SAC3D;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;MAEE;IACF,KAAK,CAAC,QAAQ;QACV,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;YACvB,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;SAC5C;QAED,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;IAC7C,CAAC;CACJ;AA1DD,gCA0DC"}
|