@temporalio/testing 1.0.0-rc.1 → 1.1.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/LICENSE.md +1 -1
- package/generated-protos/index.d.ts +430 -178
- package/generated-protos/index.js +3536 -2799
- package/lib/index.d.ts +9 -0
- package/lib/index.js +11 -6
- package/lib/index.js.map +1 -1
- package/package.json +8 -8
- package/scripts/compile-proto.mjs +19 -2
- package/src/index.ts +11 -7
package/lib/index.d.ts
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `npm i @temporalio/testing`
|
|
3
|
+
*
|
|
4
|
+
* Testing library for the SDK.
|
|
5
|
+
*
|
|
6
|
+
* [Documentation](https://docs.temporal.io/typescript/testing)
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
1
10
|
/// <reference types="node" />
|
|
2
11
|
/// <reference types="node" />
|
|
3
12
|
import * as activity from '@temporalio/activity';
|
package/lib/index.js
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* `npm i @temporalio/testing`
|
|
4
|
+
*
|
|
5
|
+
* Testing library for the SDK.
|
|
6
|
+
*
|
|
7
|
+
* [Documentation](https://docs.temporal.io/typescript/testing)
|
|
8
|
+
*
|
|
9
|
+
* @module
|
|
10
|
+
*/
|
|
2
11
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
12
|
if (k2 === undefined) k2 = k;
|
|
4
13
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -37,6 +46,7 @@ const abort_controller_1 = require("abort-controller");
|
|
|
37
46
|
const child_process_1 = require("child_process");
|
|
38
47
|
const events_1 = __importDefault(require("events"));
|
|
39
48
|
const child_process_2 = require("./child-process");
|
|
49
|
+
const get_port_1 = __importDefault(require("get-port"));
|
|
40
50
|
const test_service_client_1 = require("./test-service-client");
|
|
41
51
|
const TEST_SERVER_EXECUTABLE_NAME = os_1.default.platform() === 'win32' ? 'test-server.exe' : 'test-server';
|
|
42
52
|
exports.DEFAULT_TEST_SERVER_PATH = path_1.default.join(__dirname, `../${TEST_SERVER_EXECUTABLE_NAME}`);
|
|
@@ -94,9 +104,6 @@ function addDefaults({ testServer, logger, }) {
|
|
|
94
104
|
logger: logger ?? new worker_1.DefaultLogger('INFO'),
|
|
95
105
|
};
|
|
96
106
|
}
|
|
97
|
-
// TS transforms `import` statements into `require`s, this is a workaround until
|
|
98
|
-
// tsconfig module nodenext is stable.
|
|
99
|
-
const _importDynamic = new Function('modulePath', 'return import(modulePath)');
|
|
100
107
|
/**
|
|
101
108
|
* An execution environment for running Workflow integration tests.
|
|
102
109
|
*
|
|
@@ -158,9 +165,7 @@ class TestWorkflowEnvironment {
|
|
|
158
165
|
* Create a new test environment
|
|
159
166
|
*/
|
|
160
167
|
static async create(opts) {
|
|
161
|
-
|
|
162
|
-
const getPort = (await _importDynamic('get-port')).default;
|
|
163
|
-
const port = await getPort();
|
|
168
|
+
const port = await (0, get_port_1.default)();
|
|
164
169
|
const { testServerSpawner, logger } = addDefaults(opts ?? {});
|
|
165
170
|
const child = testServerSpawner(port);
|
|
166
171
|
const address = `127.0.0.1:${port}`;
|
package/lib/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":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@temporalio/testing",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Temporal.io SDK Testing sub-package",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "./lib/index.d.ts",
|
|
@@ -18,16 +18,16 @@
|
|
|
18
18
|
"license": "MIT",
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@grpc/grpc-js": "^1.6.7",
|
|
21
|
-
"@temporalio/activity": "^1.
|
|
22
|
-
"@temporalio/client": "^1.
|
|
23
|
-
"@temporalio/common": "^1.
|
|
24
|
-
"@temporalio/worker": "^1.
|
|
21
|
+
"@temporalio/activity": "^1.1.0",
|
|
22
|
+
"@temporalio/client": "^1.1.0",
|
|
23
|
+
"@temporalio/common": "^1.1.0",
|
|
24
|
+
"@temporalio/worker": "^1.1.0",
|
|
25
25
|
"@types/long": "^4.0.2",
|
|
26
26
|
"abort-controller": "^3.0.0",
|
|
27
|
-
"get-port": "^
|
|
27
|
+
"get-port": "^5.0.0",
|
|
28
28
|
"got": "^12.1.0",
|
|
29
29
|
"long": "^5.2.0",
|
|
30
|
-
"protobufjs": "
|
|
30
|
+
"protobufjs": "^7.0.0",
|
|
31
31
|
"tar-stream": "^2.2.0",
|
|
32
32
|
"unzipper": "^0.10.11"
|
|
33
33
|
},
|
|
@@ -44,5 +44,5 @@
|
|
|
44
44
|
"publishConfig": {
|
|
45
45
|
"access": "public"
|
|
46
46
|
},
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "132f23a47a93fecf3f39836b31f08ea837b30320"
|
|
48
48
|
}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
+
import { createRequire } from 'module';
|
|
1
2
|
import { resolve, dirname } from 'path';
|
|
2
3
|
import { fileURLToPath } from 'url';
|
|
3
4
|
import { promisify } from 'util';
|
|
4
5
|
import dedent from 'dedent';
|
|
5
6
|
import glob from 'glob';
|
|
6
7
|
import { statSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
|
|
7
|
-
import pbjs from 'protobufjs
|
|
8
|
-
import pbts from 'protobufjs
|
|
8
|
+
import pbjs from 'protobufjs-cli/pbjs.js';
|
|
9
|
+
import pbts from 'protobufjs-cli/pbts.js';
|
|
9
10
|
|
|
11
|
+
const require = createRequire(import.meta.url);
|
|
10
12
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
11
13
|
const outputDir = resolve(__dirname, '../generated-protos');
|
|
12
14
|
const outputFile = resolve(outputDir, 'index.js');
|
|
@@ -40,10 +42,25 @@ async function compileProtos(protoPath, jsOutputFile, dtsOutputFile, ...args) {
|
|
|
40
42
|
'__temporal_testing',
|
|
41
43
|
'--out',
|
|
42
44
|
jsOutputFile,
|
|
45
|
+
resolve(require.resolve('protobufjs'), '../google/protobuf/descriptor.proto'),
|
|
43
46
|
protoPath,
|
|
44
47
|
];
|
|
45
48
|
await promisify(pbjs.main)(pbjsArgs);
|
|
46
49
|
|
|
50
|
+
// Workaround an issue that prevents protobufjs from loading 'long' in Yarn 3 PnP
|
|
51
|
+
// https://github.com/protobufjs/protobuf.js/issues/1745#issuecomment-1200319399
|
|
52
|
+
const pbjsOutput = readFileSync(jsOutputFile, 'utf8');
|
|
53
|
+
writeFileSync(
|
|
54
|
+
jsOutputFile,
|
|
55
|
+
pbjsOutput.replace(
|
|
56
|
+
/(require\("protobufjs\/minimal"\);)$/m,
|
|
57
|
+
`$1
|
|
58
|
+
$protobuf.util.Long = require('long');
|
|
59
|
+
$protobuf.configure();
|
|
60
|
+
`
|
|
61
|
+
)
|
|
62
|
+
);
|
|
63
|
+
|
|
47
64
|
console.log(`Creating protobuf TS definitions from ${protoPath}`);
|
|
48
65
|
await promisify(pbts.main)(['--out', dtsOutputFile, jsOutputFile]);
|
|
49
66
|
|
package/src/index.ts
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `npm i @temporalio/testing`
|
|
3
|
+
*
|
|
4
|
+
* Testing library for the SDK.
|
|
5
|
+
*
|
|
6
|
+
* [Documentation](https://docs.temporal.io/typescript/testing)
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
|
|
1
11
|
import * as activity from '@temporalio/activity';
|
|
2
12
|
import {
|
|
3
13
|
AsyncCompletionClient,
|
|
@@ -14,7 +24,7 @@ import { AbortController } from 'abort-controller';
|
|
|
14
24
|
import { ChildProcess, spawn, StdioOptions } from 'child_process';
|
|
15
25
|
import events from 'events';
|
|
16
26
|
import { kill, waitOnChild } from './child-process';
|
|
17
|
-
import
|
|
27
|
+
import getPort from 'get-port';
|
|
18
28
|
import { Connection, TestService } from './test-service-client';
|
|
19
29
|
|
|
20
30
|
const TEST_SERVER_EXECUTABLE_NAME = os.platform() === 'win32' ? 'test-server.exe' : 'test-server';
|
|
@@ -151,10 +161,6 @@ function addDefaults({
|
|
|
151
161
|
};
|
|
152
162
|
}
|
|
153
163
|
|
|
154
|
-
// TS transforms `import` statements into `require`s, this is a workaround until
|
|
155
|
-
// tsconfig module nodenext is stable.
|
|
156
|
-
const _importDynamic = new Function('modulePath', 'return import(modulePath)');
|
|
157
|
-
|
|
158
164
|
/**
|
|
159
165
|
* An execution environment for running Workflow integration tests.
|
|
160
166
|
*
|
|
@@ -199,8 +205,6 @@ export class TestWorkflowEnvironment {
|
|
|
199
205
|
* Create a new test environment
|
|
200
206
|
*/
|
|
201
207
|
static async create(opts?: TestWorkflowEnvironmentOptions): Promise<TestWorkflowEnvironment> {
|
|
202
|
-
// No, we're not going to compile this to ESM for one dependency
|
|
203
|
-
const getPort = (await _importDynamic('get-port')).default as typeof getPortType;
|
|
204
208
|
const port = await getPort();
|
|
205
209
|
|
|
206
210
|
const { testServerSpawner, logger } = addDefaults(opts ?? {});
|