@devrev/airsync-sdk 2.0.0-beta.2 → 2.0.0-beta.4
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 +5 -11
- package/dist/attachments-streaming/attachments-streaming-pool.d.ts +1 -8
- package/dist/attachments-streaming/attachments-streaming-pool.d.ts.map +1 -1
- package/dist/attachments-streaming/attachments-streaming-pool.interfaces.d.ts +4 -3
- package/dist/attachments-streaming/attachments-streaming-pool.interfaces.d.ts.map +1 -1
- package/dist/attachments-streaming/attachments-streaming-pool.js +11 -39
- package/dist/common/constants.d.ts +1 -0
- package/dist/common/constants.d.ts.map +1 -1
- package/dist/common/constants.js +2 -1
- package/dist/common/helpers.d.ts +0 -14
- package/dist/common/helpers.d.ts.map +1 -1
- package/dist/common/helpers.js +0 -36
- package/dist/http/{axios-client-internal.d.ts → client.d.ts} +1 -1
- package/dist/http/client.d.ts.map +1 -0
- package/dist/index.d.ts +25 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +51 -30
- package/dist/logger/logger.d.ts +14 -0
- package/dist/logger/logger.d.ts.map +1 -1
- package/dist/logger/logger.js +55 -8
- package/dist/mappers/mappers.d.ts +9 -10
- package/dist/mappers/mappers.d.ts.map +1 -1
- package/dist/mappers/{mappers.interface.d.ts → mappers.interfaces.d.ts} +5 -5
- package/dist/mappers/mappers.interfaces.d.ts.map +1 -0
- package/dist/mappers/{mappers.interface.js → mappers.interfaces.js} +3 -3
- package/dist/mappers/mappers.js +13 -9
- package/dist/multithreading/adapters/base-adapter.d.ts +71 -0
- package/dist/multithreading/adapters/base-adapter.d.ts.map +1 -0
- package/dist/multithreading/adapters/base-adapter.js +138 -0
- package/dist/multithreading/adapters/extraction-adapter.d.ts +57 -0
- package/dist/multithreading/adapters/extraction-adapter.d.ts.map +1 -0
- package/dist/multithreading/adapters/extraction-adapter.js +323 -0
- package/dist/multithreading/adapters/loading-adapter.d.ts +44 -0
- package/dist/multithreading/adapters/loading-adapter.d.ts.map +1 -0
- package/dist/multithreading/{worker-adapter/worker-adapter.helpers.d.ts → adapters/loading-adapter.helpers.d.ts} +1 -1
- package/dist/multithreading/adapters/loading-adapter.helpers.d.ts.map +1 -0
- package/dist/multithreading/adapters/loading-adapter.js +431 -0
- package/dist/{common/control-protocol.d.ts → multithreading/emit.d.ts} +1 -1
- package/dist/multithreading/emit.d.ts.map +1 -0
- package/dist/{common/control-protocol.js → multithreading/emit.js} +3 -3
- package/dist/multithreading/process-task.d.ts +16 -1
- package/dist/multithreading/process-task.d.ts.map +1 -1
- package/dist/multithreading/process-task.js +115 -50
- package/dist/multithreading/spawn/spawn.helpers.d.ts +23 -3
- package/dist/multithreading/spawn/spawn.helpers.d.ts.map +1 -1
- package/dist/multithreading/spawn/spawn.helpers.js +152 -2
- package/dist/multithreading/spawn/spawn.js +7 -7
- package/dist/multithreading/worker.js +1 -2
- package/dist/repo/repo.js +2 -2
- package/dist/state/base-state.d.ts +75 -0
- package/dist/state/base-state.d.ts.map +1 -0
- package/dist/state/base-state.js +261 -0
- package/dist/state/extraction-state.d.ts +29 -0
- package/dist/state/extraction-state.d.ts.map +1 -0
- package/dist/state/extraction-state.js +122 -0
- package/dist/state/install-initial-domain-mapping.d.ts.map +1 -0
- package/dist/{common → state}/install-initial-domain-mapping.js +4 -4
- package/dist/state/loading-state.d.ts +18 -0
- package/dist/state/loading-state.d.ts.map +1 -0
- package/dist/state/loading-state.js +39 -0
- package/dist/state/state.d.ts +3 -35
- package/dist/state/state.d.ts.map +1 -1
- package/dist/state/state.interfaces.d.ts +20 -3
- package/dist/state/state.interfaces.d.ts.map +1 -1
- package/dist/state/state.interfaces.js +19 -1
- package/dist/state/state.js +9 -263
- package/dist/{common → state}/time-value-resolver.d.ts +4 -5
- package/dist/state/time-value-resolver.d.ts.map +1 -0
- package/dist/{common → state}/time-value-resolver.js +9 -8
- package/dist/{common/test-utils.d.ts → testing/mock-event.d.ts} +1 -2
- package/dist/testing/mock-event.d.ts.map +1 -0
- package/dist/{common/test-utils.js → testing/mock-event.js} +14 -3
- package/dist/{mock-server → testing}/mock-server.d.ts +5 -0
- package/dist/testing/mock-server.d.ts.map +1 -0
- package/dist/testing/mock-server.interfaces.d.ts.map +1 -0
- package/dist/{mock-server → testing}/mock-server.js +6 -1
- package/dist/types/errors.d.ts +9 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/extraction.d.ts +73 -18
- package/dist/types/extraction.d.ts.map +1 -1
- package/dist/types/extraction.js +4 -6
- package/dist/types/loading.d.ts +1 -2
- package/dist/types/loading.d.ts.map +1 -1
- package/dist/types/loading.js +0 -1
- package/dist/types/workers.d.ts +64 -20
- package/dist/types/workers.d.ts.map +1 -1
- package/dist/uploader/uploader.d.ts +5 -4
- package/dist/uploader/uploader.d.ts.map +1 -1
- package/dist/uploader/uploader.interfaces.d.ts +1 -1
- package/dist/uploader/uploader.js +10 -10
- package/package.json +3 -3
- package/dist/airsync-sdk.d.ts +0 -1802
- package/dist/attachments-streaming/attachments-streaming-pool.test.d.ts +0 -2
- package/dist/attachments-streaming/attachments-streaming-pool.test.d.ts.map +0 -1
- package/dist/attachments-streaming/attachments-streaming-pool.test.js +0 -516
- package/dist/common/control-protocol.d.ts.map +0 -1
- package/dist/common/errors.d.ts +0 -6
- package/dist/common/errors.d.ts.map +0 -1
- package/dist/common/install-initial-domain-mapping.d.ts.map +0 -1
- package/dist/common/install-initial-domain-mapping.test.d.ts +0 -2
- package/dist/common/install-initial-domain-mapping.test.d.ts.map +0 -1
- package/dist/common/install-initial-domain-mapping.test.js +0 -211
- package/dist/common/test-utils.d.ts.map +0 -1
- package/dist/common/time-value-resolver.d.ts.map +0 -1
- package/dist/common/time-value-resolver.test.d.ts +0 -2
- package/dist/common/time-value-resolver.test.d.ts.map +0 -1
- package/dist/common/time-value-resolver.test.js +0 -268
- package/dist/http/axios-client-internal.d.ts.map +0 -1
- package/dist/http/axios-client-internal.test.d.ts +0 -2
- package/dist/http/axios-client-internal.test.d.ts.map +0 -1
- package/dist/http/axios-client-internal.test.js +0 -175
- package/dist/http/axios-client.d.ts +0 -27
- package/dist/http/axios-client.d.ts.map +0 -1
- package/dist/http/axios-client.js +0 -60
- package/dist/http/constants.d.ts +0 -4
- package/dist/http/constants.d.ts.map +0 -1
- package/dist/http/constants.js +0 -6
- package/dist/http/index.d.ts +0 -2
- package/dist/http/index.d.ts.map +0 -1
- package/dist/http/index.js +0 -17
- package/dist/logger/logger.constants.d.ts +0 -6
- package/dist/logger/logger.constants.d.ts.map +0 -1
- package/dist/logger/logger.constants.js +0 -13
- package/dist/logger/logger.context.d.ts +0 -58
- package/dist/logger/logger.context.d.ts.map +0 -1
- package/dist/logger/logger.context.js +0 -86
- package/dist/logger/logger.test.d.ts +0 -2
- package/dist/logger/logger.test.d.ts.map +0 -1
- package/dist/logger/logger.test.js +0 -537
- package/dist/mappers/mappers.interface.d.ts.map +0 -1
- package/dist/mappers/mappers.test.d.ts +0 -2
- package/dist/mappers/mappers.test.d.ts.map +0 -1
- package/dist/mappers/mappers.test.js +0 -105
- package/dist/mock-server/mock-server.d.ts.map +0 -1
- package/dist/mock-server/mock-server.interfaces.d.ts.map +0 -1
- package/dist/multithreading/create-worker.test.d.ts +0 -2
- package/dist/multithreading/create-worker.test.d.ts.map +0 -1
- package/dist/multithreading/create-worker.test.js +0 -108
- package/dist/multithreading/process-task.test.d.ts +0 -2
- package/dist/multithreading/process-task.test.d.ts.map +0 -1
- package/dist/multithreading/process-task.test.js +0 -146
- package/dist/multithreading/spawn/spawn.helpers.test.d.ts +0 -2
- package/dist/multithreading/spawn/spawn.helpers.test.d.ts.map +0 -1
- package/dist/multithreading/spawn/spawn.helpers.test.js +0 -293
- package/dist/multithreading/spawn/spawn.test.d.ts +0 -2
- package/dist/multithreading/spawn/spawn.test.d.ts.map +0 -1
- package/dist/multithreading/spawn/spawn.test.js +0 -232
- package/dist/multithreading/worker-adapter/worker-adapter.artifacts.test.d.ts +0 -2
- package/dist/multithreading/worker-adapter/worker-adapter.artifacts.test.d.ts.map +0 -1
- package/dist/multithreading/worker-adapter/worker-adapter.artifacts.test.js +0 -175
- package/dist/multithreading/worker-adapter/worker-adapter.d.ts +0 -97
- package/dist/multithreading/worker-adapter/worker-adapter.d.ts.map +0 -1
- package/dist/multithreading/worker-adapter/worker-adapter.emit.test.d.ts +0 -2
- package/dist/multithreading/worker-adapter/worker-adapter.emit.test.d.ts.map +0 -1
- package/dist/multithreading/worker-adapter/worker-adapter.emit.test.js +0 -390
- package/dist/multithreading/worker-adapter/worker-adapter.extraction.test.d.ts +0 -2
- package/dist/multithreading/worker-adapter/worker-adapter.extraction.test.d.ts.map +0 -1
- package/dist/multithreading/worker-adapter/worker-adapter.extraction.test.js +0 -799
- package/dist/multithreading/worker-adapter/worker-adapter.helpers.d.ts.map +0 -1
- package/dist/multithreading/worker-adapter/worker-adapter.helpers.test.d.ts +0 -2
- package/dist/multithreading/worker-adapter/worker-adapter.helpers.test.d.ts.map +0 -1
- package/dist/multithreading/worker-adapter/worker-adapter.helpers.test.js +0 -514
- package/dist/multithreading/worker-adapter/worker-adapter.js +0 -846
- package/dist/multithreading/worker-adapter/worker-adapter.loading.test.d.ts +0 -2
- package/dist/multithreading/worker-adapter/worker-adapter.loading.test.d.ts.map +0 -1
- package/dist/multithreading/worker-adapter/worker-adapter.loading.test.js +0 -596
- package/dist/multithreading/worker-adapter/worker-adapter.serialization.test.d.ts +0 -2
- package/dist/multithreading/worker-adapter/worker-adapter.serialization.test.d.ts.map +0 -1
- package/dist/multithreading/worker-adapter/worker-adapter.serialization.test.js +0 -71
- package/dist/repo/repo.test.d.ts +0 -2
- package/dist/repo/repo.test.d.ts.map +0 -1
- package/dist/repo/repo.test.js +0 -184
- package/dist/state/state.extract-window.test.d.ts +0 -2
- package/dist/state/state.extract-window.test.d.ts.map +0 -1
- package/dist/state/state.extract-window.test.js +0 -163
- package/dist/state/state.pending-boundaries.test.d.ts +0 -2
- package/dist/state/state.pending-boundaries.test.d.ts.map +0 -1
- package/dist/state/state.pending-boundaries.test.js +0 -189
- package/dist/state/state.post-state.test.d.ts +0 -2
- package/dist/state/state.post-state.test.d.ts.map +0 -1
- package/dist/state/state.post-state.test.js +0 -77
- package/dist/state/state.test.d.ts +0 -2
- package/dist/state/state.test.d.ts.map +0 -1
- package/dist/state/state.test.js +0 -268
- package/dist/state/state.time-value-resolution.test.d.ts +0 -2
- package/dist/state/state.time-value-resolution.test.d.ts.map +0 -1
- package/dist/state/state.time-value-resolution.test.js +0 -175
- package/dist/tsdoc-metadata.json +0 -11
- package/dist/types/extraction.test.d.ts +0 -2
- package/dist/types/extraction.test.d.ts.map +0 -1
- package/dist/types/extraction.test.js +0 -96
- package/dist/types/index.d.ts +0 -11
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -21
- package/dist/uploader/uploader.helpers.test.d.ts +0 -2
- package/dist/uploader/uploader.helpers.test.d.ts.map +0 -1
- package/dist/uploader/uploader.helpers.test.js +0 -256
- package/dist/uploader/uploader.test.d.ts +0 -2
- package/dist/uploader/uploader.test.d.ts.map +0 -1
- package/dist/uploader/uploader.test.js +0 -601
- /package/dist/http/{axios-client-internal.js → client.js} +0 -0
- /package/dist/multithreading/{worker-adapter/worker-adapter.helpers.js → adapters/loading-adapter.helpers.js} +0 -0
- /package/dist/{common → state}/install-initial-domain-mapping.d.ts +0 -0
- /package/dist/{mock-server → testing}/mock-server.interfaces.d.ts +0 -0
- /package/dist/{mock-server → testing}/mock-server.interfaces.js +0 -0
- /package/dist/{common → types}/errors.js +0 -0
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const worker_threads_1 = require("worker_threads");
|
|
4
|
-
const jest_setup_1 = require("../tests/jest.setup");
|
|
5
|
-
const test_utils_1 = require("../common/test-utils");
|
|
6
|
-
const extraction_1 = require("../types/extraction");
|
|
7
|
-
const create_worker_1 = require("./create-worker");
|
|
8
|
-
describe(create_worker_1.createWorker.name, () => {
|
|
9
|
-
it('should create a Worker instance when valid parameters are provided', async () => {
|
|
10
|
-
// Arrange
|
|
11
|
-
const workerPath = __dirname + '../tests/dummy-worker.ts';
|
|
12
|
-
const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
|
|
13
|
-
payload: { event_type: extraction_1.EventType.StartExtractingExternalSyncUnits },
|
|
14
|
-
});
|
|
15
|
-
// Act
|
|
16
|
-
const worker = worker_threads_1.isMainThread
|
|
17
|
-
? await (0, create_worker_1.createWorker)({
|
|
18
|
-
event,
|
|
19
|
-
initialState: {},
|
|
20
|
-
workerPath,
|
|
21
|
-
})
|
|
22
|
-
: null;
|
|
23
|
-
// Assert
|
|
24
|
-
expect(worker).not.toBeNull();
|
|
25
|
-
expect(worker).toBeInstanceOf(worker_threads_1.Worker);
|
|
26
|
-
if (worker) {
|
|
27
|
-
await worker.terminate();
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
it('should throw error when not in main thread', async () => {
|
|
31
|
-
// Arrange
|
|
32
|
-
const originalIsMainThread = worker_threads_1.isMainThread;
|
|
33
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
34
|
-
worker_threads_1.isMainThread = false;
|
|
35
|
-
const workerPath = __dirname + '../tests/dummy-worker.ts';
|
|
36
|
-
const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
|
|
37
|
-
payload: { event_type: extraction_1.EventType.StartExtractingExternalSyncUnits },
|
|
38
|
-
});
|
|
39
|
-
// Act & Assert
|
|
40
|
-
await expect((0, create_worker_1.createWorker)({
|
|
41
|
-
event,
|
|
42
|
-
initialState: {},
|
|
43
|
-
workerPath,
|
|
44
|
-
})).rejects.toThrow('Worker threads can not start more worker threads.');
|
|
45
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
46
|
-
worker_threads_1.isMainThread = originalIsMainThread;
|
|
47
|
-
});
|
|
48
|
-
it('[edge] should handle worker creation with minimal valid data', async () => {
|
|
49
|
-
// Arrange
|
|
50
|
-
const workerPath = __dirname + '../tests/dummy-worker.ts';
|
|
51
|
-
const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
|
|
52
|
-
payload: { event_type: extraction_1.EventType.StartExtractingExternalSyncUnits },
|
|
53
|
-
});
|
|
54
|
-
if (worker_threads_1.isMainThread) {
|
|
55
|
-
// Act
|
|
56
|
-
const worker = await (0, create_worker_1.createWorker)({
|
|
57
|
-
event,
|
|
58
|
-
initialState: {},
|
|
59
|
-
workerPath,
|
|
60
|
-
});
|
|
61
|
-
// Assert
|
|
62
|
-
expect(worker).toBeInstanceOf(worker_threads_1.Worker);
|
|
63
|
-
await worker.terminate();
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
it('[edge] should handle worker creation with complex initial state', async () => {
|
|
67
|
-
// Arrange
|
|
68
|
-
const workerPath = __dirname + '../tests/dummy-worker.ts';
|
|
69
|
-
const complexState = {
|
|
70
|
-
nested: {
|
|
71
|
-
data: [1, 2, 3],
|
|
72
|
-
config: { enabled: true },
|
|
73
|
-
},
|
|
74
|
-
};
|
|
75
|
-
const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
|
|
76
|
-
payload: { event_type: extraction_1.EventType.StartExtractingData },
|
|
77
|
-
});
|
|
78
|
-
if (worker_threads_1.isMainThread) {
|
|
79
|
-
// Act
|
|
80
|
-
const worker = await (0, create_worker_1.createWorker)({
|
|
81
|
-
event,
|
|
82
|
-
initialState: complexState,
|
|
83
|
-
workerPath,
|
|
84
|
-
});
|
|
85
|
-
// Assert
|
|
86
|
-
expect(worker).toBeInstanceOf(worker_threads_1.Worker);
|
|
87
|
-
await worker.terminate();
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
|
-
it('[edge] should handle different event types', async () => {
|
|
91
|
-
// Arrange
|
|
92
|
-
const workerPath = __dirname + '../tests/dummy-worker.ts';
|
|
93
|
-
const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
|
|
94
|
-
payload: { event_type: extraction_1.EventType.StartExtractingMetadata },
|
|
95
|
-
});
|
|
96
|
-
if (worker_threads_1.isMainThread) {
|
|
97
|
-
// Act
|
|
98
|
-
const worker = await (0, create_worker_1.createWorker)({
|
|
99
|
-
event,
|
|
100
|
-
initialState: {},
|
|
101
|
-
workerPath,
|
|
102
|
-
});
|
|
103
|
-
// Assert
|
|
104
|
-
expect(worker).toBeInstanceOf(worker_threads_1.Worker);
|
|
105
|
-
await worker.terminate();
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"process-task.test.d.ts","sourceRoot":"","sources":["../../src/multithreading/process-task.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const extraction_1 = require("../types/extraction");
|
|
4
|
-
const workers_1 = require("../types/workers");
|
|
5
|
-
// These tests cover logic that is NOT exercised by the end-to-end integration
|
|
6
|
-
// tests under src/tests/timeout-handling/:
|
|
7
|
-
// - translation of legacy wire event types into the new enum (mutates event in place)
|
|
8
|
-
// - the hasWorkerEmitted guard that prevents onTimeout from firing after a
|
|
9
|
-
// successful emit (integration tests only exercise the positive case)
|
|
10
|
-
// - the error branch that posts WorkerMessageFailed and exits(1)
|
|
11
|
-
// - the WorkerMessage handler's guard that only flips isTimeout on
|
|
12
|
-
// WorkerMessageExit (integration tests can't cleanly target non-Exit messages)
|
|
13
|
-
//
|
|
14
|
-
// Tests for the happy path, timeout-signal-reaches-worker behavior, and main-thread
|
|
15
|
-
// early return were removed — they either duplicate what the integration suite
|
|
16
|
-
// already exercises or assert mocked behavior with little signal.
|
|
17
|
-
const mockParentPortPostMessage = jest.fn();
|
|
18
|
-
const mockParentPortOn = jest.fn();
|
|
19
|
-
let mockIsMainThread = false;
|
|
20
|
-
jest.mock('node:worker_threads', () => ({
|
|
21
|
-
get isMainThread() {
|
|
22
|
-
return mockIsMainThread;
|
|
23
|
-
},
|
|
24
|
-
get parentPort() {
|
|
25
|
-
return {
|
|
26
|
-
postMessage: mockParentPortPostMessage,
|
|
27
|
-
on: mockParentPortOn,
|
|
28
|
-
};
|
|
29
|
-
},
|
|
30
|
-
get workerData() {
|
|
31
|
-
var _a;
|
|
32
|
-
return (_a = global.__workerData__) !== null && _a !== void 0 ? _a : {};
|
|
33
|
-
},
|
|
34
|
-
}));
|
|
35
|
-
jest.mock('../logger/logger', () => ({
|
|
36
|
-
Logger: jest.fn().mockImplementation(() => ({
|
|
37
|
-
log: jest.fn(),
|
|
38
|
-
warn: jest.fn(),
|
|
39
|
-
error: jest.fn(),
|
|
40
|
-
info: jest.fn(),
|
|
41
|
-
logFn: jest.fn(),
|
|
42
|
-
})),
|
|
43
|
-
serializeError: jest.fn((e) => String(e)),
|
|
44
|
-
}));
|
|
45
|
-
jest.mock('../logger/logger.context', () => ({
|
|
46
|
-
runWithSdkLogContext: jest.fn((fn) => fn()),
|
|
47
|
-
runWithUserLogContext: jest.fn((fn) => fn()),
|
|
48
|
-
}));
|
|
49
|
-
jest.mock('../state/state', () => ({
|
|
50
|
-
createAdapterState: jest.fn(),
|
|
51
|
-
}));
|
|
52
|
-
jest.mock('./worker-adapter/worker-adapter', () => ({
|
|
53
|
-
WorkerAdapter: jest.fn().mockImplementation(() => ({
|
|
54
|
-
isTimeout: false,
|
|
55
|
-
hasWorkerEmitted: false,
|
|
56
|
-
})),
|
|
57
|
-
}));
|
|
58
|
-
const process_task_1 = require("./process-task");
|
|
59
|
-
const state_1 = require("../state/state");
|
|
60
|
-
const worker_adapter_1 = require("./worker-adapter/worker-adapter");
|
|
61
|
-
const test_utils_1 = require("../common/test-utils");
|
|
62
|
-
function setWorkerData(data) {
|
|
63
|
-
global.__workerData__ = data;
|
|
64
|
-
}
|
|
65
|
-
function makeEvent(eventType = extraction_1.EventType.StartExtractingData) {
|
|
66
|
-
return (0, test_utils_1.createMockEvent)('http://localhost:0', {
|
|
67
|
-
payload: { event_type: eventType },
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
// Flush the microtask queue enough to let the async IIFE inside processTask run.
|
|
71
|
-
const flush = async () => new Promise((r) => setTimeout(r, 0));
|
|
72
|
-
describe(process_task_1.processTask.name, () => {
|
|
73
|
-
let processExitSpy;
|
|
74
|
-
beforeEach(() => {
|
|
75
|
-
jest.clearAllMocks();
|
|
76
|
-
mockIsMainThread = false;
|
|
77
|
-
processExitSpy = jest
|
|
78
|
-
.spyOn(process, 'exit')
|
|
79
|
-
.mockImplementation((() => { }));
|
|
80
|
-
state_1.createAdapterState.mockResolvedValue({});
|
|
81
|
-
});
|
|
82
|
-
afterEach(() => {
|
|
83
|
-
processExitSpy.mockRestore();
|
|
84
|
-
});
|
|
85
|
-
it('should NOT call onTimeout when the worker already emitted before timeout check', async () => {
|
|
86
|
-
// Arrange
|
|
87
|
-
const event = makeEvent();
|
|
88
|
-
setWorkerData({ event, initialState: {}, options: {} });
|
|
89
|
-
// Both flags true: a timeout arrived but the worker had already emitted —
|
|
90
|
-
// onTimeout must be skipped. This is the guard the integration suite cannot
|
|
91
|
-
// target cleanly because it requires a precise race between emit and timeout.
|
|
92
|
-
const mockAdapter = { isTimeout: true, hasWorkerEmitted: true };
|
|
93
|
-
worker_adapter_1.WorkerAdapter.mockImplementation(() => mockAdapter);
|
|
94
|
-
const task = jest.fn().mockResolvedValue(undefined);
|
|
95
|
-
const onTimeout = jest.fn().mockResolvedValue(undefined);
|
|
96
|
-
// Act
|
|
97
|
-
(0, process_task_1.processTask)({ task, onTimeout });
|
|
98
|
-
await flush();
|
|
99
|
-
// Assert
|
|
100
|
-
expect(onTimeout).not.toHaveBeenCalled();
|
|
101
|
-
expect(processExitSpy).toHaveBeenCalledWith(0);
|
|
102
|
-
});
|
|
103
|
-
it('should NOT flip adapter.isTimeout when a non-Exit WorkerMessage arrives', async () => {
|
|
104
|
-
// Arrange
|
|
105
|
-
const event = makeEvent();
|
|
106
|
-
setWorkerData({ event, initialState: {}, options: {} });
|
|
107
|
-
const mockAdapter = { isTimeout: false, hasWorkerEmitted: false };
|
|
108
|
-
worker_adapter_1.WorkerAdapter.mockImplementation(() => mockAdapter);
|
|
109
|
-
const task = jest.fn().mockResolvedValue(undefined);
|
|
110
|
-
const onTimeout = jest.fn().mockResolvedValue(undefined);
|
|
111
|
-
// Act
|
|
112
|
-
(0, process_task_1.processTask)({ task, onTimeout });
|
|
113
|
-
await flush();
|
|
114
|
-
// Grab the handler registered for WorkerMessage events and invoke it with
|
|
115
|
-
// subjects that must NOT flip isTimeout (log messages, unknown subjects).
|
|
116
|
-
const messageHandlerCall = mockParentPortOn.mock.calls.find(([eventName]) => eventName === workers_1.WorkerEvent.WorkerMessage);
|
|
117
|
-
expect(messageHandlerCall).toBeDefined();
|
|
118
|
-
const handler = messageHandlerCall[1];
|
|
119
|
-
handler({ subject: workers_1.WorkerMessageSubject.WorkerMessageLog });
|
|
120
|
-
handler({ subject: 'NONSENSE_SUBJECT' });
|
|
121
|
-
// Assert
|
|
122
|
-
expect(mockAdapter.isTimeout).toBe(false);
|
|
123
|
-
});
|
|
124
|
-
it('should post WorkerMessageFailed with the error message and exit(1) when task throws', async () => {
|
|
125
|
-
// Arrange
|
|
126
|
-
const event = makeEvent();
|
|
127
|
-
setWorkerData({ event, initialState: {}, options: {} });
|
|
128
|
-
const mockAdapter = { isTimeout: false, hasWorkerEmitted: false };
|
|
129
|
-
worker_adapter_1.WorkerAdapter.mockImplementation(() => mockAdapter);
|
|
130
|
-
const taskError = new Error('task boom');
|
|
131
|
-
const task = jest.fn().mockRejectedValue(taskError);
|
|
132
|
-
const onTimeout = jest.fn().mockResolvedValue(undefined);
|
|
133
|
-
// Act
|
|
134
|
-
(0, process_task_1.processTask)({ task, onTimeout });
|
|
135
|
-
await flush();
|
|
136
|
-
// Assert
|
|
137
|
-
expect(mockParentPortPostMessage).toHaveBeenCalledWith(expect.objectContaining({
|
|
138
|
-
subject: workers_1.WorkerMessageSubject.WorkerMessageFailed,
|
|
139
|
-
payload: expect.objectContaining({
|
|
140
|
-
message: expect.stringContaining('task boom'),
|
|
141
|
-
}),
|
|
142
|
-
}));
|
|
143
|
-
expect(processExitSpy).toHaveBeenCalledWith(1);
|
|
144
|
-
expect(onTimeout).not.toHaveBeenCalled();
|
|
145
|
-
});
|
|
146
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spawn.helpers.test.d.ts","sourceRoot":"","sources":["../../../src/multithreading/spawn/spawn.helpers.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,293 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const extraction_1 = require("../../types/extraction");
|
|
4
|
-
const loading_1 = require("../../types/loading");
|
|
5
|
-
const spawn_helpers_1 = require("./spawn.helpers");
|
|
6
|
-
describe(spawn_helpers_1.getTimeoutErrorEventType.name, () => {
|
|
7
|
-
describe('metadata extraction', () => {
|
|
8
|
-
it('should return MetadataExtractionError for StartExtractingMetadata', () => {
|
|
9
|
-
// Arrange
|
|
10
|
-
const eventType = extraction_1.EventType.StartExtractingMetadata;
|
|
11
|
-
// Act
|
|
12
|
-
const result = (0, spawn_helpers_1.getTimeoutErrorEventType)(eventType);
|
|
13
|
-
// Assert
|
|
14
|
-
expect(result.eventType).toBe(extraction_1.ExtractorEventType.MetadataExtractionError);
|
|
15
|
-
});
|
|
16
|
-
it('should return MetadataExtractionError for deprecated ExtractionMetadataStart', () => {
|
|
17
|
-
// Arrange
|
|
18
|
-
const eventType = extraction_1.EventType.StartExtractingMetadata;
|
|
19
|
-
// Act
|
|
20
|
-
const result = (0, spawn_helpers_1.getTimeoutErrorEventType)(eventType);
|
|
21
|
-
// Assert
|
|
22
|
-
expect(result.eventType).toBe(extraction_1.ExtractorEventType.MetadataExtractionError);
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
describe('data extraction', () => {
|
|
26
|
-
it('should return DataExtractionError for StartExtractingData', () => {
|
|
27
|
-
// Arrange
|
|
28
|
-
const eventType = extraction_1.EventType.StartExtractingData;
|
|
29
|
-
// Act
|
|
30
|
-
const result = (0, spawn_helpers_1.getTimeoutErrorEventType)(eventType);
|
|
31
|
-
// Assert
|
|
32
|
-
expect(result.eventType).toBe(extraction_1.ExtractorEventType.DataExtractionError);
|
|
33
|
-
});
|
|
34
|
-
it('should return DataExtractionError for ContinueExtractingData', () => {
|
|
35
|
-
// Arrange
|
|
36
|
-
const eventType = extraction_1.EventType.ContinueExtractingData;
|
|
37
|
-
// Act
|
|
38
|
-
const result = (0, spawn_helpers_1.getTimeoutErrorEventType)(eventType);
|
|
39
|
-
// Assert
|
|
40
|
-
expect(result.eventType).toBe(extraction_1.ExtractorEventType.DataExtractionError);
|
|
41
|
-
});
|
|
42
|
-
it('should return DataExtractionError for deprecated ExtractionDataStart', () => {
|
|
43
|
-
// Arrange
|
|
44
|
-
const eventType = extraction_1.EventType.StartExtractingData;
|
|
45
|
-
// Act
|
|
46
|
-
const result = (0, spawn_helpers_1.getTimeoutErrorEventType)(eventType);
|
|
47
|
-
// Assert
|
|
48
|
-
expect(result.eventType).toBe(extraction_1.ExtractorEventType.DataExtractionError);
|
|
49
|
-
});
|
|
50
|
-
it('should return DataExtractionError for deprecated ExtractionDataContinue', () => {
|
|
51
|
-
// Arrange
|
|
52
|
-
const eventType = extraction_1.EventType.ContinueExtractingData;
|
|
53
|
-
// Act
|
|
54
|
-
const result = (0, spawn_helpers_1.getTimeoutErrorEventType)(eventType);
|
|
55
|
-
// Assert
|
|
56
|
-
expect(result.eventType).toBe(extraction_1.ExtractorEventType.DataExtractionError);
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
describe('extractor state deletion', () => {
|
|
60
|
-
it('should return ExtractorStateDeletionError for StartDeletingExtractorState', () => {
|
|
61
|
-
// Arrange
|
|
62
|
-
const eventType = extraction_1.EventType.StartDeletingExtractorState;
|
|
63
|
-
// Act
|
|
64
|
-
const result = (0, spawn_helpers_1.getTimeoutErrorEventType)(eventType);
|
|
65
|
-
// Assert
|
|
66
|
-
expect(result.eventType).toBe(extraction_1.ExtractorEventType.ExtractorStateDeletionError);
|
|
67
|
-
});
|
|
68
|
-
it('should return ExtractorStateDeletionError for deprecated ExtractionDataDelete', () => {
|
|
69
|
-
// Arrange
|
|
70
|
-
const eventType = extraction_1.EventType.StartDeletingExtractorState;
|
|
71
|
-
// Act
|
|
72
|
-
const result = (0, spawn_helpers_1.getTimeoutErrorEventType)(eventType);
|
|
73
|
-
// Assert
|
|
74
|
-
expect(result.eventType).toBe(extraction_1.ExtractorEventType.ExtractorStateDeletionError);
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
describe('attachments extraction', () => {
|
|
78
|
-
it('should return AttachmentExtractionError for StartExtractingAttachments', () => {
|
|
79
|
-
// Arrange
|
|
80
|
-
const eventType = extraction_1.EventType.StartExtractingAttachments;
|
|
81
|
-
// Act
|
|
82
|
-
const result = (0, spawn_helpers_1.getTimeoutErrorEventType)(eventType);
|
|
83
|
-
// Assert
|
|
84
|
-
expect(result.eventType).toBe(extraction_1.ExtractorEventType.AttachmentExtractionError);
|
|
85
|
-
});
|
|
86
|
-
it('should return AttachmentExtractionError for ContinueExtractingAttachments', () => {
|
|
87
|
-
// Arrange
|
|
88
|
-
const eventType = extraction_1.EventType.ContinueExtractingAttachments;
|
|
89
|
-
// Act
|
|
90
|
-
const result = (0, spawn_helpers_1.getTimeoutErrorEventType)(eventType);
|
|
91
|
-
// Assert
|
|
92
|
-
expect(result.eventType).toBe(extraction_1.ExtractorEventType.AttachmentExtractionError);
|
|
93
|
-
});
|
|
94
|
-
it('should return AttachmentExtractionError for deprecated ExtractionAttachmentsStart', () => {
|
|
95
|
-
// Arrange
|
|
96
|
-
const eventType = extraction_1.EventType.StartExtractingAttachments;
|
|
97
|
-
// Act
|
|
98
|
-
const result = (0, spawn_helpers_1.getTimeoutErrorEventType)(eventType);
|
|
99
|
-
// Assert
|
|
100
|
-
expect(result.eventType).toBe(extraction_1.ExtractorEventType.AttachmentExtractionError);
|
|
101
|
-
});
|
|
102
|
-
it('should return AttachmentExtractionError for deprecated ExtractionAttachmentsContinue', () => {
|
|
103
|
-
// Arrange
|
|
104
|
-
const eventType = extraction_1.EventType.ContinueExtractingAttachments;
|
|
105
|
-
// Act
|
|
106
|
-
const result = (0, spawn_helpers_1.getTimeoutErrorEventType)(eventType);
|
|
107
|
-
// Assert
|
|
108
|
-
expect(result.eventType).toBe(extraction_1.ExtractorEventType.AttachmentExtractionError);
|
|
109
|
-
});
|
|
110
|
-
});
|
|
111
|
-
describe('extractor attachments state deletion', () => {
|
|
112
|
-
it('should return ExtractorAttachmentsStateDeletionError for StartDeletingExtractorAttachmentsState', () => {
|
|
113
|
-
// Arrange
|
|
114
|
-
const eventType = extraction_1.EventType.StartDeletingExtractorAttachmentsState;
|
|
115
|
-
// Act
|
|
116
|
-
const result = (0, spawn_helpers_1.getTimeoutErrorEventType)(eventType);
|
|
117
|
-
// Assert
|
|
118
|
-
expect(result.eventType).toBe(extraction_1.ExtractorEventType.ExtractorAttachmentsStateDeletionError);
|
|
119
|
-
});
|
|
120
|
-
it('should return ExtractorAttachmentsStateDeletionError for deprecated ExtractionAttachmentsDelete', () => {
|
|
121
|
-
// Arrange
|
|
122
|
-
const eventType = extraction_1.EventType.StartDeletingExtractorAttachmentsState;
|
|
123
|
-
// Act
|
|
124
|
-
const result = (0, spawn_helpers_1.getTimeoutErrorEventType)(eventType);
|
|
125
|
-
// Assert
|
|
126
|
-
expect(result.eventType).toBe(extraction_1.ExtractorEventType.ExtractorAttachmentsStateDeletionError);
|
|
127
|
-
});
|
|
128
|
-
});
|
|
129
|
-
describe('external sync units extraction', () => {
|
|
130
|
-
it('should return ExternalSyncUnitExtractionError for StartExtractingExternalSyncUnits', () => {
|
|
131
|
-
// Arrange
|
|
132
|
-
const eventType = extraction_1.EventType.StartExtractingExternalSyncUnits;
|
|
133
|
-
// Act
|
|
134
|
-
const result = (0, spawn_helpers_1.getTimeoutErrorEventType)(eventType);
|
|
135
|
-
// Assert
|
|
136
|
-
expect(result.eventType).toBe(extraction_1.ExtractorEventType.ExternalSyncUnitExtractionError);
|
|
137
|
-
});
|
|
138
|
-
it('should return ExternalSyncUnitExtractionError for deprecated ExtractionExternalSyncUnitsStart', () => {
|
|
139
|
-
// Arrange
|
|
140
|
-
const eventType = extraction_1.EventType.StartExtractingExternalSyncUnits;
|
|
141
|
-
// Act
|
|
142
|
-
const result = (0, spawn_helpers_1.getTimeoutErrorEventType)(eventType);
|
|
143
|
-
// Assert
|
|
144
|
-
expect(result.eventType).toBe(extraction_1.ExtractorEventType.ExternalSyncUnitExtractionError);
|
|
145
|
-
});
|
|
146
|
-
});
|
|
147
|
-
describe('data loading', () => {
|
|
148
|
-
it('should return DataLoadingError for StartLoadingData', () => {
|
|
149
|
-
// Arrange
|
|
150
|
-
const eventType = extraction_1.EventType.StartLoadingData;
|
|
151
|
-
// Act
|
|
152
|
-
const result = (0, spawn_helpers_1.getTimeoutErrorEventType)(eventType);
|
|
153
|
-
// Assert
|
|
154
|
-
expect(result.eventType).toBe(loading_1.LoaderEventType.DataLoadingError);
|
|
155
|
-
});
|
|
156
|
-
it('should return DataLoadingError for ContinueLoadingData', () => {
|
|
157
|
-
// Arrange
|
|
158
|
-
const eventType = extraction_1.EventType.ContinueLoadingData;
|
|
159
|
-
// Act
|
|
160
|
-
const result = (0, spawn_helpers_1.getTimeoutErrorEventType)(eventType);
|
|
161
|
-
// Assert
|
|
162
|
-
expect(result.eventType).toBe(loading_1.LoaderEventType.DataLoadingError);
|
|
163
|
-
});
|
|
164
|
-
});
|
|
165
|
-
describe('loader state deletion', () => {
|
|
166
|
-
it('should return LoaderStateDeletionError for StartDeletingLoaderState', () => {
|
|
167
|
-
// Arrange
|
|
168
|
-
const eventType = extraction_1.EventType.StartDeletingLoaderState;
|
|
169
|
-
// Act
|
|
170
|
-
const result = (0, spawn_helpers_1.getTimeoutErrorEventType)(eventType);
|
|
171
|
-
// Assert
|
|
172
|
-
expect(result.eventType).toBe(loading_1.LoaderEventType.LoaderStateDeletionError);
|
|
173
|
-
});
|
|
174
|
-
});
|
|
175
|
-
describe('attachment loading', () => {
|
|
176
|
-
it('should return AttachmentLoadingError for StartLoadingAttachments', () => {
|
|
177
|
-
// Arrange
|
|
178
|
-
const eventType = extraction_1.EventType.StartLoadingAttachments;
|
|
179
|
-
// Act
|
|
180
|
-
const result = (0, spawn_helpers_1.getTimeoutErrorEventType)(eventType);
|
|
181
|
-
// Assert
|
|
182
|
-
expect(result.eventType).toBe(loading_1.LoaderEventType.AttachmentLoadingError);
|
|
183
|
-
});
|
|
184
|
-
it('should return AttachmentLoadingError for ContinueLoadingAttachments', () => {
|
|
185
|
-
// Arrange
|
|
186
|
-
const eventType = extraction_1.EventType.ContinueLoadingAttachments;
|
|
187
|
-
// Act
|
|
188
|
-
const result = (0, spawn_helpers_1.getTimeoutErrorEventType)(eventType);
|
|
189
|
-
// Assert
|
|
190
|
-
expect(result.eventType).toBe(loading_1.LoaderEventType.AttachmentLoadingError);
|
|
191
|
-
});
|
|
192
|
-
});
|
|
193
|
-
describe('loader attachment state deletion', () => {
|
|
194
|
-
it('should return LoaderAttachmentStateDeletionError for StartDeletingLoaderAttachmentState', () => {
|
|
195
|
-
// Arrange
|
|
196
|
-
const eventType = extraction_1.EventType.StartDeletingLoaderAttachmentState;
|
|
197
|
-
// Act
|
|
198
|
-
const result = (0, spawn_helpers_1.getTimeoutErrorEventType)(eventType);
|
|
199
|
-
// Assert
|
|
200
|
-
expect(result.eventType).toBe(loading_1.LoaderEventType.LoaderAttachmentStateDeletionError);
|
|
201
|
-
});
|
|
202
|
-
});
|
|
203
|
-
describe('unknown event types', () => {
|
|
204
|
-
it('[edge] should return UnknownEventType and log error for unrecognized event type', () => {
|
|
205
|
-
// Arrange
|
|
206
|
-
const eventType = extraction_1.EventType.UnknownEventType;
|
|
207
|
-
const consoleErrorSpy = jest
|
|
208
|
-
.spyOn(console, 'error')
|
|
209
|
-
.mockImplementation(() => { });
|
|
210
|
-
// Act
|
|
211
|
-
const result = (0, spawn_helpers_1.getTimeoutErrorEventType)(eventType);
|
|
212
|
-
// Assert
|
|
213
|
-
expect(result.eventType).toBe(loading_1.LoaderEventType.UnknownEventType);
|
|
214
|
-
expect(consoleErrorSpy).toHaveBeenCalledWith('Event type not recognized in getTimeoutErrorEventType function: ' +
|
|
215
|
-
eventType);
|
|
216
|
-
// Cleanup
|
|
217
|
-
consoleErrorSpy.mockRestore();
|
|
218
|
-
});
|
|
219
|
-
});
|
|
220
|
-
});
|
|
221
|
-
describe(spawn_helpers_1.getNoScriptEventType.name, () => {
|
|
222
|
-
describe('extractor state deletion', () => {
|
|
223
|
-
it('should return ExtractorStateDeletionDone for StartDeletingExtractorState', () => {
|
|
224
|
-
// Arrange
|
|
225
|
-
const eventType = extraction_1.EventType.StartDeletingExtractorState;
|
|
226
|
-
// Act
|
|
227
|
-
const result = (0, spawn_helpers_1.getNoScriptEventType)(eventType);
|
|
228
|
-
// Assert
|
|
229
|
-
expect(result.eventType).toBe(extraction_1.ExtractorEventType.ExtractorStateDeletionDone);
|
|
230
|
-
});
|
|
231
|
-
});
|
|
232
|
-
describe('extractor attachments state deletion', () => {
|
|
233
|
-
it('should return ExtractorAttachmentsStateDeletionDone for StartDeletingExtractorAttachmentsState', () => {
|
|
234
|
-
// Arrange
|
|
235
|
-
const eventType = extraction_1.EventType.StartDeletingExtractorAttachmentsState;
|
|
236
|
-
// Act
|
|
237
|
-
const result = (0, spawn_helpers_1.getNoScriptEventType)(eventType);
|
|
238
|
-
// Assert
|
|
239
|
-
expect(result.eventType).toBe(extraction_1.ExtractorEventType.ExtractorAttachmentsStateDeletionDone);
|
|
240
|
-
});
|
|
241
|
-
});
|
|
242
|
-
describe('loader state deletion', () => {
|
|
243
|
-
it('should return LoaderStateDeletionDone for StartDeletingLoaderState', () => {
|
|
244
|
-
// Arrange
|
|
245
|
-
const eventType = extraction_1.EventType.StartDeletingLoaderState;
|
|
246
|
-
// Act
|
|
247
|
-
const result = (0, spawn_helpers_1.getNoScriptEventType)(eventType);
|
|
248
|
-
// Assert
|
|
249
|
-
expect(result.eventType).toBe(loading_1.LoaderEventType.LoaderStateDeletionDone);
|
|
250
|
-
});
|
|
251
|
-
});
|
|
252
|
-
describe('loader attachment state deletion', () => {
|
|
253
|
-
it('should return LoaderAttachmentStateDeletionDone for StartDeletingLoaderAttachmentState', () => {
|
|
254
|
-
// Arrange
|
|
255
|
-
const eventType = extraction_1.EventType.StartDeletingLoaderAttachmentState;
|
|
256
|
-
// Act
|
|
257
|
-
const result = (0, spawn_helpers_1.getNoScriptEventType)(eventType);
|
|
258
|
-
// Assert
|
|
259
|
-
expect(result.eventType).toBe(loading_1.LoaderEventType.LoaderAttachmentStateDeletionDone);
|
|
260
|
-
});
|
|
261
|
-
});
|
|
262
|
-
describe('unknown event types', () => {
|
|
263
|
-
it('[edge] should return UnknownEventType and log error for unrecognized event type', () => {
|
|
264
|
-
// Arrange
|
|
265
|
-
const eventType = extraction_1.EventType.StartExtractingData;
|
|
266
|
-
const consoleErrorSpy = jest
|
|
267
|
-
.spyOn(console, 'error')
|
|
268
|
-
.mockImplementation(() => { });
|
|
269
|
-
// Act
|
|
270
|
-
const result = (0, spawn_helpers_1.getNoScriptEventType)(eventType);
|
|
271
|
-
// Assert
|
|
272
|
-
expect(result.eventType).toBe(loading_1.LoaderEventType.UnknownEventType);
|
|
273
|
-
expect(consoleErrorSpy).toHaveBeenCalledWith('Event type not recognized in getNoScriptEventType function: ' +
|
|
274
|
-
eventType);
|
|
275
|
-
// Cleanup
|
|
276
|
-
consoleErrorSpy.mockRestore();
|
|
277
|
-
});
|
|
278
|
-
it('[edge] should return UnknownEventType for StartLoadingData', () => {
|
|
279
|
-
// Arrange
|
|
280
|
-
const eventType = extraction_1.EventType.StartLoadingData;
|
|
281
|
-
const consoleErrorSpy = jest
|
|
282
|
-
.spyOn(console, 'error')
|
|
283
|
-
.mockImplementation(() => { });
|
|
284
|
-
// Act
|
|
285
|
-
const result = (0, spawn_helpers_1.getNoScriptEventType)(eventType);
|
|
286
|
-
// Assert
|
|
287
|
-
expect(result.eventType).toBe(loading_1.LoaderEventType.UnknownEventType);
|
|
288
|
-
expect(consoleErrorSpy).toHaveBeenCalled();
|
|
289
|
-
// Cleanup
|
|
290
|
-
consoleErrorSpy.mockRestore();
|
|
291
|
-
});
|
|
292
|
-
});
|
|
293
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spawn.test.d.ts","sourceRoot":"","sources":["../../../src/multithreading/spawn/spawn.test.ts"],"names":[],"mappings":""}
|