@devrev/ts-adaas 1.19.9-beta.0 → 1.19.9
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/attachments-streaming/attachments-streaming-pool.d.ts.map +1 -1
- package/dist/attachments-streaming/attachments-streaming-pool.js +6 -4
- package/dist/attachments-streaming/attachments-streaming-pool.test.js +65 -0
- package/dist/common/control-protocol.d.ts +2 -3
- package/dist/common/control-protocol.d.ts.map +1 -1
- package/dist/common/control-protocol.js +4 -2
- package/dist/http/axios-client-internal.d.ts.map +1 -1
- package/dist/http/axios-client-internal.js +1 -19
- package/dist/mock-server/mock-server.d.ts +0 -4
- package/dist/mock-server/mock-server.d.ts.map +1 -1
- package/dist/mock-server/mock-server.interfaces.d.ts +4 -9
- package/dist/mock-server/mock-server.interfaces.d.ts.map +1 -1
- package/dist/mock-server/mock-server.js +18 -30
- package/dist/multithreading/spawn/spawn.d.ts +1 -1
- package/dist/multithreading/spawn/spawn.d.ts.map +1 -1
- package/dist/multithreading/spawn/spawn.js +6 -11
- package/dist/multithreading/spawn/spawn.test.js +0 -1
- package/dist/multithreading/worker-adapter/worker-adapter.artifacts.test.js +1 -1
- package/dist/multithreading/worker-adapter/worker-adapter.d.ts +5 -11
- package/dist/multithreading/worker-adapter/worker-adapter.d.ts.map +1 -1
- package/dist/multithreading/worker-adapter/worker-adapter.emit.test.js +9 -90
- package/dist/multithreading/worker-adapter/worker-adapter.extraction.test.js +1 -1
- package/dist/multithreading/worker-adapter/worker-adapter.js +64 -93
- package/dist/repo/repo.d.ts +2 -11
- package/dist/repo/repo.d.ts.map +1 -1
- package/dist/repo/repo.interfaces.d.ts +0 -2
- package/dist/repo/repo.interfaces.d.ts.map +1 -1
- package/dist/repo/repo.js +11 -37
- package/dist/repo/repo.test.js +0 -184
- package/dist/types/extraction.d.ts +1 -8
- package/dist/types/extraction.d.ts.map +1 -1
- package/dist/types/workers.d.ts +0 -4
- package/dist/types/workers.d.ts.map +1 -1
- package/dist/uploader/uploader.d.ts.map +1 -1
- package/dist/uploader/uploader.helpers.d.ts +1 -6
- package/dist/uploader/uploader.helpers.d.ts.map +1 -1
- package/dist/uploader/uploader.helpers.js +0 -65
- package/dist/uploader/uploader.helpers.test.js +7 -148
- package/dist/uploader/uploader.interfaces.d.ts +0 -11
- package/dist/uploader/uploader.interfaces.d.ts.map +1 -1
- package/dist/uploader/uploader.interfaces.js +0 -11
- package/dist/uploader/uploader.js +5 -2
- package/dist/uploader/uploader.test.js +3 -54
- package/package.json +2 -2
- package/dist/common/control-protocol.test.d.ts +0 -2
- package/dist/common/control-protocol.test.d.ts.map +0 -1
- package/dist/common/control-protocol.test.js +0 -126
- package/dist/multithreading/worker-adapter/worker-adapter.upload-failure.test.d.ts +0 -2
- package/dist/multithreading/worker-adapter/worker-adapter.upload-failure.test.d.ts.map +0 -1
- package/dist/multithreading/worker-adapter/worker-adapter.upload-failure.test.js +0 -135
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const state_1 = require("../../state/state");
|
|
4
|
-
const jest_setup_1 = require("../../tests/jest.setup");
|
|
5
|
-
const test_helpers_1 = require("../../tests/test-helpers");
|
|
6
|
-
const test_utils_1 = require("../../common/test-utils");
|
|
7
|
-
const types_1 = require("../../types");
|
|
8
|
-
const worker_adapter_1 = require("./worker-adapter");
|
|
9
|
-
/* eslint-disable @typescript-eslint/no-require-imports */
|
|
10
|
-
jest.mock('../../common/control-protocol', () => ({
|
|
11
|
-
emit: jest.fn().mockResolvedValue({}),
|
|
12
|
-
}));
|
|
13
|
-
jest.mock('../../mappers/mappers');
|
|
14
|
-
jest.mock('node:worker_threads', () => ({
|
|
15
|
-
parentPort: { postMessage: jest.fn() },
|
|
16
|
-
}));
|
|
17
|
-
jest.mock('../../attachments-streaming/attachments-streaming-pool', () => ({
|
|
18
|
-
AttachmentsStreamingPool: jest.fn().mockImplementation(() => ({
|
|
19
|
-
streamAll: jest.fn().mockResolvedValue(undefined),
|
|
20
|
-
})),
|
|
21
|
-
}));
|
|
22
|
-
const UPLOAD_URL_PATH = '/internal/airdrop.artifacts.upload-url';
|
|
23
|
-
function makeAdapter() {
|
|
24
|
-
const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
|
|
25
|
-
payload: { event_type: types_1.EventType.StartExtractingData },
|
|
26
|
-
});
|
|
27
|
-
const initialState = {
|
|
28
|
-
attachments: { completed: false },
|
|
29
|
-
lastSyncStarted: '',
|
|
30
|
-
lastSuccessfulSyncStarted: '',
|
|
31
|
-
snapInVersionId: '',
|
|
32
|
-
toDevRev: {
|
|
33
|
-
attachmentsMetadata: {
|
|
34
|
-
artifactIds: [],
|
|
35
|
-
lastProcessed: 0,
|
|
36
|
-
lastProcessedAttachmentsIdsList: [],
|
|
37
|
-
},
|
|
38
|
-
},
|
|
39
|
-
};
|
|
40
|
-
const adapterState = new state_1.State({ event, initialState });
|
|
41
|
-
const adapter = new worker_adapter_1.WorkerAdapter({ event, adapterState });
|
|
42
|
-
const workerThreads = require('node:worker_threads');
|
|
43
|
-
const mockPostMessage = jest.fn();
|
|
44
|
-
if (workerThreads.parentPort) {
|
|
45
|
-
jest
|
|
46
|
-
.spyOn(workerThreads.parentPort, 'postMessage')
|
|
47
|
-
.mockImplementation(mockPostMessage);
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
workerThreads.parentPort = { postMessage: mockPostMessage };
|
|
51
|
-
}
|
|
52
|
-
return { adapter, mockPostMessage };
|
|
53
|
-
}
|
|
54
|
-
describe(`${worker_adapter_1.WorkerAdapter.name} upload failure (near-integration)`, () => {
|
|
55
|
-
let adapter;
|
|
56
|
-
let mockPostMessage;
|
|
57
|
-
beforeEach(() => {
|
|
58
|
-
jest.clearAllMocks();
|
|
59
|
-
jest_setup_1.mockServer.resetRoutes();
|
|
60
|
-
({ adapter, mockPostMessage } = makeAdapter());
|
|
61
|
-
adapter['adapterState'].postState = jest.fn().mockResolvedValue(undefined);
|
|
62
|
-
});
|
|
63
|
-
afterEach(() => {
|
|
64
|
-
jest.restoreAllMocks();
|
|
65
|
-
});
|
|
66
|
-
it('should throw from repo.push when upload-url returns 400 during batch upload', async () => {
|
|
67
|
-
var _a, _b;
|
|
68
|
-
jest_setup_1.mockServer.setRoute({
|
|
69
|
-
path: UPLOAD_URL_PATH,
|
|
70
|
-
method: 'GET',
|
|
71
|
-
status: 400,
|
|
72
|
-
});
|
|
73
|
-
adapter.initializeRepos([
|
|
74
|
-
{
|
|
75
|
-
itemType: 'tasks',
|
|
76
|
-
overridenOptions: { batchSize: 10 },
|
|
77
|
-
},
|
|
78
|
-
]);
|
|
79
|
-
await expect((_a = adapter.getRepo('tasks')) === null || _a === void 0 ? void 0 : _a.push((0, test_helpers_1.createItems)(20))).rejects.toThrow('artifact upload URL');
|
|
80
|
-
expect((_b = adapter.getRepo('tasks')) === null || _b === void 0 ? void 0 : _b.getItems().length).toBe(20);
|
|
81
|
-
});
|
|
82
|
-
it('should emit DataExtractionError via emitToPlatform when uploadAllRepos fails', async () => {
|
|
83
|
-
var _a;
|
|
84
|
-
const { emit: mockEmit } = require('../../common/control-protocol');
|
|
85
|
-
jest_setup_1.mockServer.setRoute({
|
|
86
|
-
path: UPLOAD_URL_PATH,
|
|
87
|
-
method: 'GET',
|
|
88
|
-
status: 400,
|
|
89
|
-
});
|
|
90
|
-
adapter.initializeRepos([{ itemType: 'tasks' }]);
|
|
91
|
-
await ((_a = adapter.getRepo('tasks')) === null || _a === void 0 ? void 0 : _a.push((0, test_helpers_1.createItems)(5)));
|
|
92
|
-
await adapter.emit(types_1.ExtractorEventType.DataExtractionDone);
|
|
93
|
-
expect(mockEmit).toHaveBeenCalledWith(expect.objectContaining({
|
|
94
|
-
eventType: types_1.ExtractorEventType.DataExtractionError,
|
|
95
|
-
data: expect.objectContaining({
|
|
96
|
-
error: expect.objectContaining({
|
|
97
|
-
message: expect.stringContaining('artifact upload URL'),
|
|
98
|
-
}),
|
|
99
|
-
}),
|
|
100
|
-
}));
|
|
101
|
-
expect(mockPostMessage).toHaveBeenCalledWith(expect.objectContaining({
|
|
102
|
-
subject: 'emit',
|
|
103
|
-
payload: { eventType: types_1.ExtractorEventType.DataExtractionError },
|
|
104
|
-
}));
|
|
105
|
-
});
|
|
106
|
-
it('should include partial artifacts when push batch succeeded before uploadAllRepos fails', async () => {
|
|
107
|
-
var _a;
|
|
108
|
-
const { emit: mockEmit } = require('../../common/control-protocol');
|
|
109
|
-
jest_setup_1.mockServer.setRoute({
|
|
110
|
-
path: UPLOAD_URL_PATH,
|
|
111
|
-
method: 'GET',
|
|
112
|
-
status: 200,
|
|
113
|
-
succeedThenFail: {
|
|
114
|
-
successCount: 1,
|
|
115
|
-
errorStatus: 400,
|
|
116
|
-
},
|
|
117
|
-
});
|
|
118
|
-
adapter.initializeRepos([
|
|
119
|
-
{
|
|
120
|
-
itemType: 'tasks',
|
|
121
|
-
overridenOptions: { batchSize: 10 },
|
|
122
|
-
},
|
|
123
|
-
]);
|
|
124
|
-
await ((_a = adapter.getRepo('tasks')) === null || _a === void 0 ? void 0 : _a.push((0, test_helpers_1.createItems)(15)));
|
|
125
|
-
await adapter.emit(types_1.ExtractorEventType.DataExtractionDone);
|
|
126
|
-
expect(mockEmit).toHaveBeenCalledWith(expect.objectContaining({
|
|
127
|
-
eventType: types_1.ExtractorEventType.DataExtractionError,
|
|
128
|
-
data: expect.objectContaining({
|
|
129
|
-
artifacts: expect.arrayContaining([
|
|
130
|
-
expect.objectContaining({ item_count: 10, item_type: 'tasks' }),
|
|
131
|
-
]),
|
|
132
|
-
}),
|
|
133
|
-
}));
|
|
134
|
-
});
|
|
135
|
-
});
|