@devrev/airsync-sdk 2.0.0-beta.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/README.md +31 -0
- package/dist/attachments-streaming/attachments-streaming-pool.d.ts +16 -0
- package/dist/attachments-streaming/attachments-streaming-pool.d.ts.map +1 -0
- package/dist/attachments-streaming/attachments-streaming-pool.interfaces.d.ts +9 -0
- package/dist/attachments-streaming/attachments-streaming-pool.interfaces.d.ts.map +1 -0
- package/dist/attachments-streaming/attachments-streaming-pool.interfaces.js +2 -0
- package/dist/attachments-streaming/attachments-streaming-pool.js +97 -0
- package/dist/attachments-streaming/attachments-streaming-pool.test.d.ts +2 -0
- package/dist/attachments-streaming/attachments-streaming-pool.test.d.ts.map +1 -0
- package/dist/attachments-streaming/attachments-streaming-pool.test.js +267 -0
- package/dist/common/constants.d.ts +25 -0
- package/dist/common/constants.d.ts.map +1 -0
- package/dist/common/constants.js +58 -0
- package/dist/common/control-protocol.d.ts +10 -0
- package/dist/common/control-protocol.d.ts.map +1 -0
- package/dist/common/control-protocol.js +31 -0
- package/dist/common/errors.d.ts +6 -0
- package/dist/common/errors.d.ts.map +1 -0
- package/dist/common/errors.js +4 -0
- package/dist/common/event-type-translation.d.ts +24 -0
- package/dist/common/event-type-translation.d.ts.map +1 -0
- package/dist/common/event-type-translation.js +117 -0
- package/dist/common/helpers.d.ts +41 -0
- package/dist/common/helpers.d.ts.map +1 -0
- package/dist/common/helpers.js +124 -0
- package/dist/common/install-initial-domain-mapping.d.ts +4 -0
- package/dist/common/install-initial-domain-mapping.d.ts.map +1 -0
- package/dist/common/install-initial-domain-mapping.js +58 -0
- package/dist/common/install-initial-domain-mapping.test.d.ts +2 -0
- package/dist/common/install-initial-domain-mapping.test.d.ts.map +1 -0
- package/dist/common/install-initial-domain-mapping.test.js +207 -0
- package/dist/deprecated/adapter/index.d.ts +62 -0
- package/dist/deprecated/adapter/index.d.ts.map +1 -0
- package/dist/deprecated/adapter/index.js +151 -0
- package/dist/deprecated/common/helpers.d.ts +7 -0
- package/dist/deprecated/common/helpers.d.ts.map +1 -0
- package/dist/deprecated/common/helpers.js +47 -0
- package/dist/deprecated/demo-extractor/external_domain_metadata.json +38 -0
- package/dist/deprecated/demo-extractor/index.d.ts +18 -0
- package/dist/deprecated/demo-extractor/index.d.ts.map +1 -0
- package/dist/deprecated/demo-extractor/index.js +161 -0
- package/dist/deprecated/http/client.d.ts +22 -0
- package/dist/deprecated/http/client.d.ts.map +1 -0
- package/dist/deprecated/http/client.js +161 -0
- package/dist/deprecated/uploader/index.d.ts +35 -0
- package/dist/deprecated/uploader/index.d.ts.map +1 -0
- package/dist/deprecated/uploader/index.js +161 -0
- package/dist/http/axios-client-internal.d.ts +3 -0
- package/dist/http/axios-client-internal.d.ts.map +1 -0
- package/dist/http/axios-client-internal.js +66 -0
- package/dist/http/axios-client-internal.test.d.ts +2 -0
- package/dist/http/axios-client-internal.test.d.ts.map +1 -0
- package/dist/http/axios-client-internal.test.js +154 -0
- package/dist/http/axios-client.d.ts +27 -0
- package/dist/http/axios-client.d.ts.map +1 -0
- package/dist/http/axios-client.js +57 -0
- package/dist/http/constants.d.ts +4 -0
- package/dist/http/constants.d.ts.map +1 -0
- package/dist/http/constants.js +6 -0
- package/dist/http/index.d.ts +3 -0
- package/dist/http/index.d.ts.map +1 -0
- package/dist/http/index.js +18 -0
- package/dist/http/types.d.ts +17 -0
- package/dist/http/types.d.ts.map +1 -0
- package/dist/http/types.js +2 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +34 -0
- package/dist/logger/logger.constants.d.ts +6 -0
- package/dist/logger/logger.constants.d.ts.map +1 -0
- package/dist/logger/logger.constants.js +13 -0
- package/dist/logger/logger.context.d.ts +58 -0
- package/dist/logger/logger.context.d.ts.map +1 -0
- package/dist/logger/logger.context.js +86 -0
- package/dist/logger/logger.d.ts +89 -0
- package/dist/logger/logger.d.ts.map +1 -0
- package/dist/logger/logger.interfaces.d.ts +43 -0
- package/dist/logger/logger.interfaces.d.ts.map +1 -0
- package/dist/logger/logger.interfaces.js +9 -0
- package/dist/logger/logger.js +196 -0
- package/dist/logger/logger.test.d.ts +2 -0
- package/dist/logger/logger.test.d.ts.map +1 -0
- package/dist/logger/logger.test.js +490 -0
- package/dist/mappers/mappers.d.ts +52 -0
- package/dist/mappers/mappers.d.ts.map +1 -0
- package/dist/mappers/mappers.interface.d.ts +294 -0
- package/dist/mappers/mappers.interface.d.ts.map +1 -0
- package/dist/mappers/mappers.interface.js +48 -0
- package/dist/mappers/mappers.js +83 -0
- package/dist/mappers/mappers.test.d.ts +2 -0
- package/dist/mappers/mappers.test.d.ts.map +1 -0
- package/dist/mappers/mappers.test.js +107 -0
- package/dist/multithreading/create-worker.d.ts +5 -0
- package/dist/multithreading/create-worker.d.ts.map +1 -0
- package/dist/multithreading/create-worker.js +28 -0
- package/dist/multithreading/create-worker.test.d.ts +2 -0
- package/dist/multithreading/create-worker.test.d.ts.map +1 -0
- package/dist/multithreading/create-worker.test.js +89 -0
- package/dist/multithreading/process-task.d.ts +3 -0
- package/dist/multithreading/process-task.d.ts.map +1 -0
- package/dist/multithreading/process-task.js +58 -0
- package/dist/multithreading/spawn/spawn.d.ts +30 -0
- package/dist/multithreading/spawn/spawn.d.ts.map +1 -0
- package/dist/multithreading/spawn/spawn.helpers.d.ts +21 -0
- package/dist/multithreading/spawn/spawn.helpers.d.ts.map +1 -0
- package/dist/multithreading/spawn/spawn.helpers.js +114 -0
- package/dist/multithreading/spawn/spawn.helpers.test.d.ts +2 -0
- package/dist/multithreading/spawn/spawn.helpers.test.d.ts.map +1 -0
- package/dist/multithreading/spawn/spawn.helpers.test.js +293 -0
- package/dist/multithreading/spawn/spawn.js +249 -0
- package/dist/multithreading/worker-adapter/worker-adapter.artifacts.test.d.ts +2 -0
- package/dist/multithreading/worker-adapter/worker-adapter.artifacts.test.d.ts.map +1 -0
- package/dist/multithreading/worker-adapter/worker-adapter.artifacts.test.js +127 -0
- package/dist/multithreading/worker-adapter/worker-adapter.d.ts +91 -0
- package/dist/multithreading/worker-adapter/worker-adapter.d.ts.map +1 -0
- package/dist/multithreading/worker-adapter/worker-adapter.helpers.d.ts +22 -0
- package/dist/multithreading/worker-adapter/worker-adapter.helpers.d.ts.map +1 -0
- package/dist/multithreading/worker-adapter/worker-adapter.helpers.js +64 -0
- package/dist/multithreading/worker-adapter/worker-adapter.helpers.test.d.ts +2 -0
- package/dist/multithreading/worker-adapter/worker-adapter.helpers.test.d.ts.map +1 -0
- package/dist/multithreading/worker-adapter/worker-adapter.helpers.test.js +514 -0
- package/dist/multithreading/worker-adapter/worker-adapter.js +747 -0
- package/dist/multithreading/worker-adapter/worker-adapter.test.d.ts +2 -0
- package/dist/multithreading/worker-adapter/worker-adapter.test.d.ts.map +1 -0
- package/dist/multithreading/worker-adapter/worker-adapter.test.js +483 -0
- package/dist/multithreading/worker.d.ts +2 -0
- package/dist/multithreading/worker.d.ts.map +1 -0
- package/dist/multithreading/worker.js +9 -0
- package/dist/repo/repo.d.ts +18 -0
- package/dist/repo/repo.d.ts.map +1 -0
- package/dist/repo/repo.interfaces.d.ts +46 -0
- package/dist/repo/repo.interfaces.d.ts.map +1 -0
- package/dist/repo/repo.interfaces.js +2 -0
- package/dist/repo/repo.js +75 -0
- package/dist/repo/repo.test.d.ts +2 -0
- package/dist/repo/repo.test.d.ts.map +1 -0
- package/dist/repo/repo.test.js +131 -0
- package/dist/state/state.d.ts +30 -0
- package/dist/state/state.d.ts.map +1 -0
- package/dist/state/state.interfaces.d.ts +51 -0
- package/dist/state/state.interfaces.d.ts.map +1 -0
- package/dist/state/state.interfaces.js +21 -0
- package/dist/state/state.js +166 -0
- package/dist/state/state.test.d.ts +2 -0
- package/dist/state/state.test.d.ts.map +1 -0
- package/dist/state/state.test.js +224 -0
- package/dist/types/common.d.ts +50 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +25 -0
- package/dist/types/extraction.d.ts +417 -0
- package/dist/types/extraction.d.ts.map +1 -0
- package/dist/types/extraction.js +170 -0
- package/dist/types/extraction.test.d.ts +2 -0
- package/dist/types/extraction.test.d.ts.map +1 -0
- package/dist/types/extraction.test.js +70 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +18 -0
- package/dist/types/loading.d.ts +147 -0
- package/dist/types/loading.d.ts.map +1 -0
- package/dist/types/loading.js +48 -0
- package/dist/types/workers.d.ts +161 -0
- package/dist/types/workers.d.ts.map +1 -0
- package/dist/types/workers.js +22 -0
- package/dist/uploader/uploader.d.ts +92 -0
- package/dist/uploader/uploader.d.ts.map +1 -0
- package/dist/uploader/uploader.helpers.d.ts +33 -0
- package/dist/uploader/uploader.helpers.d.ts.map +1 -0
- package/dist/uploader/uploader.helpers.js +139 -0
- package/dist/uploader/uploader.helpers.test.d.ts +2 -0
- package/dist/uploader/uploader.helpers.test.d.ts.map +1 -0
- package/dist/uploader/uploader.helpers.test.js +267 -0
- package/dist/uploader/uploader.interfaces.d.ts +95 -0
- package/dist/uploader/uploader.interfaces.d.ts.map +1 -0
- package/dist/uploader/uploader.interfaces.js +2 -0
- package/dist/uploader/uploader.js +305 -0
- package/dist/uploader/uploader.test.d.ts +2 -0
- package/dist/uploader/uploader.test.d.ts.map +1 -0
- package/dist/uploader/uploader.test.js +589 -0
- package/package.json +60 -0
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const worker_threads_1 = require("worker_threads");
|
|
4
|
+
const test_helpers_1 = require("../tests/test-helpers");
|
|
5
|
+
const extraction_1 = require("../types/extraction");
|
|
6
|
+
const create_worker_1 = require("./create-worker");
|
|
7
|
+
describe(create_worker_1.createWorker.name, () => {
|
|
8
|
+
it('should create a Worker instance when valid parameters are provided', async () => {
|
|
9
|
+
const workerPath = __dirname + '../tests/dummy-worker.ts';
|
|
10
|
+
const worker = worker_threads_1.isMainThread
|
|
11
|
+
? await (0, create_worker_1.createWorker)({
|
|
12
|
+
event: (0, test_helpers_1.createEvent)({
|
|
13
|
+
eventType: extraction_1.EventType.ExtractionExternalSyncUnitsStart,
|
|
14
|
+
}),
|
|
15
|
+
initialState: {},
|
|
16
|
+
workerPath,
|
|
17
|
+
})
|
|
18
|
+
: null;
|
|
19
|
+
expect(worker).not.toBeNull();
|
|
20
|
+
expect(worker).toBeInstanceOf(worker_threads_1.Worker);
|
|
21
|
+
if (worker) {
|
|
22
|
+
await worker.terminate();
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
it('should throw error when not in main thread', async () => {
|
|
26
|
+
const originalIsMainThread = worker_threads_1.isMainThread;
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
28
|
+
worker_threads_1.isMainThread = false;
|
|
29
|
+
const workerPath = __dirname + '../tests/dummy-worker.ts';
|
|
30
|
+
await expect((0, create_worker_1.createWorker)({
|
|
31
|
+
event: (0, test_helpers_1.createEvent)({
|
|
32
|
+
eventType: extraction_1.EventType.ExtractionExternalSyncUnitsStart,
|
|
33
|
+
}),
|
|
34
|
+
initialState: {},
|
|
35
|
+
workerPath,
|
|
36
|
+
})).rejects.toThrow('Worker threads can not start more worker threads.');
|
|
37
|
+
// Restore original value
|
|
38
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
39
|
+
worker_threads_1.isMainThread = originalIsMainThread;
|
|
40
|
+
});
|
|
41
|
+
it('[edge] should handle worker creation with minimal valid data', async () => {
|
|
42
|
+
const workerPath = __dirname + '../tests/dummy-worker.ts';
|
|
43
|
+
if (worker_threads_1.isMainThread) {
|
|
44
|
+
const worker = await (0, create_worker_1.createWorker)({
|
|
45
|
+
event: (0, test_helpers_1.createEvent)({
|
|
46
|
+
eventType: extraction_1.EventType.ExtractionExternalSyncUnitsStart,
|
|
47
|
+
}),
|
|
48
|
+
initialState: {},
|
|
49
|
+
workerPath,
|
|
50
|
+
});
|
|
51
|
+
expect(worker).toBeInstanceOf(worker_threads_1.Worker);
|
|
52
|
+
await worker.terminate();
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
it('[edge] should handle worker creation with complex initial state', async () => {
|
|
56
|
+
const workerPath = __dirname + '../tests/dummy-worker.ts';
|
|
57
|
+
const complexState = {
|
|
58
|
+
nested: {
|
|
59
|
+
data: [1, 2, 3],
|
|
60
|
+
config: { enabled: true },
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
if (worker_threads_1.isMainThread) {
|
|
64
|
+
const worker = await (0, create_worker_1.createWorker)({
|
|
65
|
+
event: (0, test_helpers_1.createEvent)({
|
|
66
|
+
eventType: extraction_1.EventType.ExtractionDataStart,
|
|
67
|
+
}),
|
|
68
|
+
initialState: complexState,
|
|
69
|
+
workerPath,
|
|
70
|
+
});
|
|
71
|
+
expect(worker).toBeInstanceOf(worker_threads_1.Worker);
|
|
72
|
+
await worker.terminate();
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
it('[edge] should handle different event types', async () => {
|
|
76
|
+
const workerPath = __dirname + '../tests/dummy-worker.ts';
|
|
77
|
+
if (worker_threads_1.isMainThread) {
|
|
78
|
+
const worker = await (0, create_worker_1.createWorker)({
|
|
79
|
+
event: (0, test_helpers_1.createEvent)({
|
|
80
|
+
eventType: extraction_1.EventType.ExtractionMetadataStart,
|
|
81
|
+
}),
|
|
82
|
+
initialState: {},
|
|
83
|
+
workerPath,
|
|
84
|
+
});
|
|
85
|
+
expect(worker).toBeInstanceOf(worker_threads_1.Worker);
|
|
86
|
+
await worker.terminate();
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-task.d.ts","sourceRoot":"","sources":["../../src/multithreading/process-task.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,oBAAoB,EAGrB,MAAM,kBAAkB,CAAC;AAG1B,wBAAgB,WAAW,CAAC,cAAc,EAAE,EAC1C,IAAI,EACJ,SAAS,GACV,EAAE,oBAAoB,CAAC,cAAc,CAAC,QAmEtC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.processTask = processTask;
|
|
4
|
+
const node_worker_threads_1 = require("node:worker_threads");
|
|
5
|
+
const event_type_translation_1 = require("../common/event-type-translation");
|
|
6
|
+
const logger_1 = require("../logger/logger");
|
|
7
|
+
const logger_context_1 = require("../logger/logger.context");
|
|
8
|
+
const state_1 = require("../state/state");
|
|
9
|
+
const workers_1 = require("../types/workers");
|
|
10
|
+
const worker_adapter_1 = require("./worker-adapter/worker-adapter");
|
|
11
|
+
function processTask({ task, onTimeout, }) {
|
|
12
|
+
if (!node_worker_threads_1.isMainThread) {
|
|
13
|
+
void (async () => {
|
|
14
|
+
await (0, logger_context_1.runWithSdkLogContext)(async () => {
|
|
15
|
+
try {
|
|
16
|
+
const event = node_worker_threads_1.workerData.event;
|
|
17
|
+
// TODO: Remove when the old types are completely phased out
|
|
18
|
+
event.payload.event_type = (0, event_type_translation_1.translateIncomingEventType)(event.payload.event_type);
|
|
19
|
+
const initialState = node_worker_threads_1.workerData.initialState;
|
|
20
|
+
const initialDomainMapping = node_worker_threads_1.workerData.initialDomainMapping;
|
|
21
|
+
const options = node_worker_threads_1.workerData.options;
|
|
22
|
+
// eslint-disable-next-line no-global-assign
|
|
23
|
+
console = new logger_1.Logger({ event, options });
|
|
24
|
+
const adapterState = await (0, state_1.createAdapterState)({
|
|
25
|
+
event,
|
|
26
|
+
initialState,
|
|
27
|
+
initialDomainMapping,
|
|
28
|
+
options,
|
|
29
|
+
});
|
|
30
|
+
if (node_worker_threads_1.parentPort && node_worker_threads_1.workerData.event) {
|
|
31
|
+
const adapter = new worker_adapter_1.WorkerAdapter({
|
|
32
|
+
event,
|
|
33
|
+
adapterState,
|
|
34
|
+
options,
|
|
35
|
+
});
|
|
36
|
+
node_worker_threads_1.parentPort.on(workers_1.WorkerEvent.WorkerMessage, (message) => void (async () => {
|
|
37
|
+
await (0, logger_context_1.runWithSdkLogContext)(async () => {
|
|
38
|
+
if (message.subject === workers_1.WorkerMessageSubject.WorkerMessageExit) {
|
|
39
|
+
console.log('Worker received message to gracefully exit. Setting isTimeout flag and executing onTimeout function.');
|
|
40
|
+
adapter.handleTimeout();
|
|
41
|
+
await (0, logger_context_1.runWithUserLogContext)(async () => onTimeout({ adapter }));
|
|
42
|
+
console.log('Finished executing onTimeout function. Exiting worker.');
|
|
43
|
+
process.exit(0);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
})());
|
|
47
|
+
await (0, logger_context_1.runWithUserLogContext)(async () => task({ adapter }));
|
|
48
|
+
process.exit(0);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
console.error('Error while processing task.', (0, logger_1.serializeError)(error));
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
})();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { SpawnFactoryInterface, SpawnInterface } from '../../types/workers';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a new instance of Spawn class.
|
|
4
|
+
* Spawn class is responsible for spawning a new worker thread and managing the lifecycle of the worker.
|
|
5
|
+
* The class provides utilities to emit control events to the platform and exit the worker gracefully.
|
|
6
|
+
* In case of lambda timeout, the class emits a lambda timeout event to the platform.
|
|
7
|
+
* @param {SpawnFactoryInterface} options - The options to create a new instance of Spawn class
|
|
8
|
+
* @param {AirdropEvent} options.event - The event object received from the platform
|
|
9
|
+
* @param {object} options.initialState - The initial state of the adapter
|
|
10
|
+
* @param {string} [options.workerPath] Remove getWorkerPath function and use baseWorkerPath: __dirname instead of workerPath
|
|
11
|
+
* @param {string} [options.baseWorkerPath] - The base path for the worker files, usually `__dirname`
|
|
12
|
+
* @returns {Promise<Spawn>} - A new instance of Spawn class
|
|
13
|
+
*/
|
|
14
|
+
export declare function spawn<ConnectorState>({ event, initialState, workerPath, initialDomainMapping, options, baseWorkerPath, }: SpawnFactoryInterface<ConnectorState>): Promise<void>;
|
|
15
|
+
export declare class Spawn {
|
|
16
|
+
private event;
|
|
17
|
+
private alreadyEmitted;
|
|
18
|
+
private defaultLambdaTimeout;
|
|
19
|
+
private lambdaTimeout;
|
|
20
|
+
private softTimeoutTimer;
|
|
21
|
+
private hardTimeoutTimer;
|
|
22
|
+
private memoryMonitoringInterval;
|
|
23
|
+
private resolve;
|
|
24
|
+
private originalConsole;
|
|
25
|
+
private logger;
|
|
26
|
+
constructor({ event, worker, options, resolve, originalConsole, }: SpawnInterface);
|
|
27
|
+
private clearTimeouts;
|
|
28
|
+
private exitFromMainThread;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=spawn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spawn.d.ts","sourceRoot":"","sources":["../../../src/multithreading/spawn/spawn.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,qBAAqB,EACrB,cAAc,EAGf,MAAM,qBAAqB,CAAC;AA+C7B;;;;;;;;;;;GAWG;AACH,wBAAsB,KAAK,CAAC,cAAc,EAAE,EAC1C,KAAK,EACL,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,OAAO,EACP,cAAc,GACf,EAAE,qBAAqB,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAwFvD;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,oBAAoB,CAAkC;IAC9D,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,gBAAgB,CAA4C;IACpE,OAAO,CAAC,gBAAgB,CAA4C;IACpE,OAAO,CAAC,wBAAwB,CAA6C;IAC7E,OAAO,CAAC,OAAO,CAA4C;IAC3D,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,MAAM,CAAS;gBACX,EACV,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,eAAe,GAChB,EAAE,cAAc;IAiGjB,OAAO,CAAC,aAAa;YAYP,kBAAkB;CAiCjC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { EventType, ExtractorEventType } from '../../types/extraction';
|
|
2
|
+
import { LoaderEventType } from '../../types/loading';
|
|
3
|
+
/**
|
|
4
|
+
* Gets the event type for the timeout error.
|
|
5
|
+
* @param {EventType} eventType - The event type to get the timeout error event type for
|
|
6
|
+
* @returns {ExtractorEventType | LoaderEventType} The event type for the timeout error
|
|
7
|
+
*/
|
|
8
|
+
export declare function getTimeoutErrorEventType(eventType: EventType): {
|
|
9
|
+
eventType: ExtractorEventType | LoaderEventType;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Gets the event type for the no script error.
|
|
13
|
+
* @param {EventType} eventType - The event type to get the no script error event type for
|
|
14
|
+
* @returns {ExtractorEventType | LoaderEventType} The event type for the no script error
|
|
15
|
+
*/
|
|
16
|
+
export declare function getNoScriptEventType(eventType: EventType): {
|
|
17
|
+
eventType: ExtractorEventType;
|
|
18
|
+
} | {
|
|
19
|
+
eventType: LoaderEventType;
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=spawn.helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spawn.helpers.d.ts","sourceRoot":"","sources":["../../../src/multithreading/spawn/spawn.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,SAAS,GAAG;IAC9D,SAAS,EAAE,kBAAkB,GAAG,eAAe,CAAC;CACjD,CAmFA;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS;;;;EA2BxD"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTimeoutErrorEventType = getTimeoutErrorEventType;
|
|
4
|
+
exports.getNoScriptEventType = getNoScriptEventType;
|
|
5
|
+
const extraction_1 = require("../../types/extraction");
|
|
6
|
+
const loading_1 = require("../../types/loading");
|
|
7
|
+
/**
|
|
8
|
+
* Gets the event type for the timeout error.
|
|
9
|
+
* @param {EventType} eventType - The event type to get the timeout error event type for
|
|
10
|
+
* @returns {ExtractorEventType | LoaderEventType} The event type for the timeout error
|
|
11
|
+
*/
|
|
12
|
+
function getTimeoutErrorEventType(eventType) {
|
|
13
|
+
switch (eventType) {
|
|
14
|
+
// Metadata extraction (handles both old and new enum members)
|
|
15
|
+
case extraction_1.EventType.StartExtractingMetadata:
|
|
16
|
+
case extraction_1.EventType.ExtractionMetadataStart:
|
|
17
|
+
return {
|
|
18
|
+
eventType: extraction_1.ExtractorEventType.MetadataExtractionError,
|
|
19
|
+
};
|
|
20
|
+
// Data extraction (handles both old and new enum members)
|
|
21
|
+
case extraction_1.EventType.StartExtractingData:
|
|
22
|
+
case extraction_1.EventType.ContinueExtractingData:
|
|
23
|
+
case extraction_1.EventType.ExtractionDataStart:
|
|
24
|
+
case extraction_1.EventType.ExtractionDataContinue:
|
|
25
|
+
return {
|
|
26
|
+
eventType: extraction_1.ExtractorEventType.DataExtractionError,
|
|
27
|
+
};
|
|
28
|
+
// Data deletion (handles both old and new enum members)
|
|
29
|
+
case extraction_1.EventType.StartDeletingExtractorState:
|
|
30
|
+
case extraction_1.EventType.ExtractionDataDelete:
|
|
31
|
+
return {
|
|
32
|
+
eventType: extraction_1.ExtractorEventType.ExtractorStateDeletionError,
|
|
33
|
+
};
|
|
34
|
+
// Attachments extraction (handles both old and new enum members)
|
|
35
|
+
case extraction_1.EventType.StartExtractingAttachments:
|
|
36
|
+
case extraction_1.EventType.ContinueExtractingAttachments:
|
|
37
|
+
case extraction_1.EventType.ExtractionAttachmentsStart:
|
|
38
|
+
case extraction_1.EventType.ExtractionAttachmentsContinue:
|
|
39
|
+
return {
|
|
40
|
+
eventType: extraction_1.ExtractorEventType.AttachmentExtractionError,
|
|
41
|
+
};
|
|
42
|
+
// Attachments deletion (handles both old and new enum members)
|
|
43
|
+
case extraction_1.EventType.StartDeletingExtractorAttachmentsState:
|
|
44
|
+
case extraction_1.EventType.ExtractionAttachmentsDelete:
|
|
45
|
+
return {
|
|
46
|
+
eventType: extraction_1.ExtractorEventType.ExtractorAttachmentsStateDeletionError,
|
|
47
|
+
};
|
|
48
|
+
// External sync units (handles both old and new enum members)
|
|
49
|
+
case extraction_1.EventType.StartExtractingExternalSyncUnits:
|
|
50
|
+
case extraction_1.EventType.ExtractionExternalSyncUnitsStart:
|
|
51
|
+
return {
|
|
52
|
+
eventType: extraction_1.ExtractorEventType.ExternalSyncUnitExtractionError,
|
|
53
|
+
};
|
|
54
|
+
// Loading data
|
|
55
|
+
case extraction_1.EventType.StartLoadingData:
|
|
56
|
+
case extraction_1.EventType.ContinueLoadingData:
|
|
57
|
+
return {
|
|
58
|
+
eventType: loading_1.LoaderEventType.DataLoadingError,
|
|
59
|
+
};
|
|
60
|
+
// Deleting loader state
|
|
61
|
+
case extraction_1.EventType.StartDeletingLoaderState:
|
|
62
|
+
return {
|
|
63
|
+
eventType: loading_1.LoaderEventType.LoaderStateDeletionError,
|
|
64
|
+
};
|
|
65
|
+
// Loading attachments
|
|
66
|
+
case extraction_1.EventType.StartLoadingAttachments:
|
|
67
|
+
case extraction_1.EventType.ContinueLoadingAttachments:
|
|
68
|
+
return {
|
|
69
|
+
eventType: loading_1.LoaderEventType.AttachmentLoadingError,
|
|
70
|
+
};
|
|
71
|
+
// Deleting loader attachment state
|
|
72
|
+
case extraction_1.EventType.StartDeletingLoaderAttachmentState:
|
|
73
|
+
return {
|
|
74
|
+
eventType: loading_1.LoaderEventType.LoaderAttachmentStateDeletionError,
|
|
75
|
+
};
|
|
76
|
+
default:
|
|
77
|
+
console.error('Event type not recognized in getTimeoutErrorEventType function: ' +
|
|
78
|
+
eventType);
|
|
79
|
+
return {
|
|
80
|
+
eventType: loading_1.LoaderEventType.UnknownEventType,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Gets the event type for the no script error.
|
|
86
|
+
* @param {EventType} eventType - The event type to get the no script error event type for
|
|
87
|
+
* @returns {ExtractorEventType | LoaderEventType} The event type for the no script error
|
|
88
|
+
*/
|
|
89
|
+
function getNoScriptEventType(eventType) {
|
|
90
|
+
switch (eventType) {
|
|
91
|
+
case extraction_1.EventType.StartDeletingExtractorState:
|
|
92
|
+
return {
|
|
93
|
+
eventType: extraction_1.ExtractorEventType.ExtractorStateDeletionDone,
|
|
94
|
+
};
|
|
95
|
+
case extraction_1.EventType.StartDeletingExtractorAttachmentsState:
|
|
96
|
+
return {
|
|
97
|
+
eventType: extraction_1.ExtractorEventType.ExtractorAttachmentsStateDeletionDone,
|
|
98
|
+
};
|
|
99
|
+
case extraction_1.EventType.StartDeletingLoaderState:
|
|
100
|
+
return {
|
|
101
|
+
eventType: loading_1.LoaderEventType.LoaderStateDeletionDone,
|
|
102
|
+
};
|
|
103
|
+
case extraction_1.EventType.StartDeletingLoaderAttachmentState:
|
|
104
|
+
return {
|
|
105
|
+
eventType: loading_1.LoaderEventType.LoaderAttachmentStateDeletionDone,
|
|
106
|
+
};
|
|
107
|
+
default:
|
|
108
|
+
console.error('Event type not recognized in getNoScriptEventType function: ' +
|
|
109
|
+
eventType);
|
|
110
|
+
return {
|
|
111
|
+
eventType: loading_1.LoaderEventType.UnknownEventType,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spawn.helpers.test.d.ts","sourceRoot":"","sources":["../../../src/multithreading/spawn/spawn.helpers.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,293 @@
|
|
|
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.ExtractionMetadataStart;
|
|
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.ExtractionDataStart;
|
|
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.ExtractionDataContinue;
|
|
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.ExtractionDataDelete;
|
|
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.ExtractionAttachmentsStart;
|
|
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.ExtractionAttachmentsContinue;
|
|
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.ExtractionAttachmentsDelete;
|
|
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.ExtractionExternalSyncUnitsStart;
|
|
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
|
+
});
|