@devrev/ts-adaas 1.18.0 → 1.18.1-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.
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const constants_1 = require("../common/constants");
4
- const test_helpers_1 = require("../tests/test-helpers");
4
+ const jest_setup_1 = require("../tests/jest.setup");
5
+ const test_utils_1 = require("../common/test-utils");
5
6
  const extraction_1 = require("../types/extraction");
6
7
  const state_1 = require("./state");
7
8
  const state_interfaces_1 = require("./state.interfaces");
@@ -25,8 +26,8 @@ describe(state_1.State.name, () => {
25
26
  });
26
27
  it.each(constants_1.STATELESS_EVENT_TYPES)('should not init, fetch, post or install IDM for stateless event type %s', async (eventType) => {
27
28
  // Arrange
28
- const event = (0, test_helpers_1.createEvent)({
29
- eventType: eventType,
29
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
30
+ payload: { event_type: eventType },
30
31
  });
31
32
  // Act
32
33
  await (0, state_1.createAdapterState)({
@@ -42,8 +43,8 @@ describe(state_1.State.name, () => {
42
43
  });
43
44
  it.each(constants_1.STATEFUL_EVENT_TYPES)('should exit the process if fetching the state fails', async (eventType) => {
44
45
  // Arrange
45
- const event = (0, test_helpers_1.createEvent)({
46
- eventType: eventType,
46
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
47
+ payload: { event_type: eventType },
47
48
  });
48
49
  fetchStateSpy.mockRejectedValue({
49
50
  isAxiosError: true,
@@ -60,8 +61,8 @@ describe(state_1.State.name, () => {
60
61
  });
61
62
  it.each(constants_1.STATEFUL_EVENT_TYPES)('should exit the process if parsing the state fails', async (eventType) => {
62
63
  // Arrange
63
- const event = (0, test_helpers_1.createEvent)({
64
- eventType: eventType,
64
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
65
+ payload: { event_type: eventType },
65
66
  });
66
67
  fetchStateSpy.mockResolvedValue({ state: 'invalid-json' });
67
68
  jest.spyOn(console, 'error').mockImplementation(() => { });
@@ -75,8 +76,8 @@ describe(state_1.State.name, () => {
75
76
  });
76
77
  it.each(constants_1.STATEFUL_EVENT_TYPES)('should exit the process if fetching is successful but there is no state in the response', async (eventType) => {
77
78
  // Arrange
78
- const event = (0, test_helpers_1.createEvent)({
79
- eventType: eventType,
79
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
80
+ payload: { event_type: eventType },
80
81
  });
81
82
  fetchStateSpy.mockResolvedValue({ state: null });
82
83
  jest.spyOn(console, 'error').mockImplementation(() => { });
@@ -93,11 +94,11 @@ describe(state_1.State.name, () => {
93
94
  const initialState = {
94
95
  test: 'test',
95
96
  };
96
- const event = (0, test_helpers_1.createEvent)({
97
- eventType: eventType,
98
- contextOverrides: {
97
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
98
+ context: {
99
99
  snap_in_version_id: '',
100
100
  },
101
+ payload: { event_type: eventType },
101
102
  });
102
103
  fetchStateSpy.mockRejectedValue({
103
104
  isAxiosError: true,
@@ -124,11 +125,11 @@ describe(state_1.State.name, () => {
124
125
  const initialState = {
125
126
  test: 'test',
126
127
  };
127
- const event = (0, test_helpers_1.createEvent)({
128
- eventType: extraction_1.EventType.StartExtractingData,
129
- contextOverrides: {
128
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
129
+ context: {
130
130
  snap_in_version_id: '',
131
131
  },
132
+ payload: { event_type: extraction_1.EventType.StartExtractingData },
132
133
  });
133
134
  fetchStateSpy.mockRejectedValue({
134
135
  isAxiosError: true,
@@ -156,8 +157,8 @@ describe(state_1.State.name, () => {
156
157
  });
157
158
  it.each(constants_1.STATEFUL_EVENT_TYPES)('should exit the process if initialDomainMapping is not provided for event type %s', async (eventType) => {
158
159
  // Arrange
159
- const event = (0, test_helpers_1.createEvent)({
160
- eventType: eventType,
160
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
161
+ payload: { event_type: eventType },
161
162
  });
162
163
  fetchStateSpy.mockResolvedValue({
163
164
  state: JSON.stringify({
@@ -176,11 +177,11 @@ describe(state_1.State.name, () => {
176
177
  });
177
178
  it.each(constants_1.STATEFUL_EVENT_TYPES)('should not install IDM if version matches for event type %s', async (eventType) => {
178
179
  // Arrange
179
- const event = (0, test_helpers_1.createEvent)({
180
- eventType: eventType,
181
- contextOverrides: {
180
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
181
+ context: {
182
182
  snap_in_version_id: '1.0.0',
183
183
  },
184
+ payload: { event_type: eventType },
184
185
  });
185
186
  const stringifiedState = JSON.stringify({
186
187
  test: 'test',
@@ -199,11 +200,11 @@ describe(state_1.State.name, () => {
199
200
  });
200
201
  it.each(constants_1.STATEFUL_EVENT_TYPES)('should install IDM if version does not match for event type %s', async (eventType) => {
201
202
  // Arrange
202
- const event = (0, test_helpers_1.createEvent)({
203
- eventType: eventType,
204
- contextOverrides: {
203
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
204
+ context: {
205
205
  snap_in_version_id: '2.0.0',
206
206
  },
207
+ payload: { event_type: eventType },
207
208
  });
208
209
  const stringifiedState = JSON.stringify({
209
210
  test: 'test',
@@ -226,11 +227,13 @@ describe(state_1.State.name, () => {
226
227
  describe('Enhanced Control Protocol - TimeValue resolution failures', () => {
227
228
  it('should exit the process if extraction_start_time resolution fails', async () => {
228
229
  // Arrange: WORKERS_NEWEST type but state has no workersNewest
229
- const event = (0, test_helpers_1.createEvent)({
230
- eventType: extraction_1.EventType.StartExtractingData,
231
- eventContextOverrides: {
232
- extraction_start_time: {
233
- type: extraction_1.TimeValueType.WORKERS_NEWEST,
230
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
231
+ payload: {
232
+ event_type: extraction_1.EventType.StartExtractingData,
233
+ event_context: {
234
+ extraction_start_time: {
235
+ type: extraction_1.TimeValueType.WORKERS_NEWEST,
236
+ },
234
237
  },
235
238
  },
236
239
  });
@@ -252,14 +255,16 @@ describe(state_1.State.name, () => {
252
255
  });
253
256
  it('should exit the process if extraction_end_time resolution fails', async () => {
254
257
  // Arrange: WORKERS_NEWEST type but state has no workersNewest
255
- const event = (0, test_helpers_1.createEvent)({
256
- eventType: extraction_1.EventType.StartExtractingData,
257
- eventContextOverrides: {
258
- extraction_start_time: {
259
- type: extraction_1.TimeValueType.UNBOUNDED,
260
- },
261
- extraction_end_time: {
262
- type: extraction_1.TimeValueType.WORKERS_NEWEST,
258
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
259
+ payload: {
260
+ event_type: extraction_1.EventType.StartExtractingData,
261
+ event_context: {
262
+ extraction_start_time: {
263
+ type: extraction_1.TimeValueType.UNBOUNDED,
264
+ },
265
+ extraction_end_time: {
266
+ type: extraction_1.TimeValueType.WORKERS_NEWEST,
267
+ },
263
268
  },
264
269
  },
265
270
  });
@@ -283,18 +288,20 @@ describe(state_1.State.name, () => {
283
288
  describe('Backwards compatibility - missing TimeValue type', () => {
284
289
  it('should skip resolution when extraction_start_time has no type', async () => {
285
290
  // Arrange: platform sends extraction_start_time without a type field (old platform version)
286
- const event = (0, test_helpers_1.createEvent)({
287
- eventType: extraction_1.EventType.StartExtractingData,
288
- eventContextOverrides: {
289
- extraction_start_time: {},
290
- extraction_end_time: {
291
- type: extraction_1.TimeValueType.ABSOLUTE_TIME,
292
- value: '2025-06-01T00:00:00Z',
293
- },
294
- },
295
- contextOverrides: {
291
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
292
+ context: {
296
293
  snap_in_version_id: 'test_snap_in_version_id',
297
294
  },
295
+ payload: {
296
+ event_type: extraction_1.EventType.StartExtractingData,
297
+ event_context: {
298
+ extraction_start_time: {},
299
+ extraction_end_time: {
300
+ type: extraction_1.TimeValueType.ABSOLUTE_TIME,
301
+ value: '2025-06-01T00:00:00Z',
302
+ },
303
+ },
304
+ },
298
305
  });
299
306
  const stringifiedState = JSON.stringify({
300
307
  snapInVersionId: 'test_snap_in_version_id',
@@ -315,18 +322,20 @@ describe(state_1.State.name, () => {
315
322
  });
316
323
  it('should skip resolution when extraction_end_time has no type', async () => {
317
324
  // Arrange: platform sends extraction_end_time without a type field
318
- const event = (0, test_helpers_1.createEvent)({
319
- eventType: extraction_1.EventType.StartExtractingData,
320
- eventContextOverrides: {
321
- extraction_start_time: {
322
- type: extraction_1.TimeValueType.ABSOLUTE_TIME,
323
- value: '2024-01-01T00:00:00Z',
324
- },
325
- extraction_end_time: {},
326
- },
327
- contextOverrides: {
325
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
326
+ context: {
328
327
  snap_in_version_id: 'test_snap_in_version_id',
329
328
  },
329
+ payload: {
330
+ event_type: extraction_1.EventType.StartExtractingData,
331
+ event_context: {
332
+ extraction_start_time: {
333
+ type: extraction_1.TimeValueType.ABSOLUTE_TIME,
334
+ value: '2024-01-01T00:00:00Z',
335
+ },
336
+ extraction_end_time: {},
337
+ },
338
+ },
330
339
  });
331
340
  const stringifiedState = JSON.stringify({
332
341
  snapInVersionId: 'test_snap_in_version_id',
@@ -346,15 +355,21 @@ describe(state_1.State.name, () => {
346
355
  });
347
356
  it('should skip resolution when both extraction times have no type', async () => {
348
357
  // Arrange: platform sends both time values without type fields
349
- const event = (0, test_helpers_1.createEvent)({
350
- eventType: extraction_1.EventType.StartExtractingData,
351
- eventContextOverrides: {
352
- extraction_start_time: { value: 'some-value' },
353
- extraction_end_time: { value: 'some-value' },
354
- },
355
- contextOverrides: {
358
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
359
+ context: {
356
360
  snap_in_version_id: 'test_snap_in_version_id',
357
361
  },
362
+ payload: {
363
+ event_type: extraction_1.EventType.StartExtractingData,
364
+ event_context: {
365
+ extraction_start_time: {
366
+ value: 'some-value',
367
+ },
368
+ extraction_end_time: {
369
+ value: 'some-value',
370
+ },
371
+ },
372
+ },
358
373
  });
359
374
  const stringifiedState = JSON.stringify({
360
375
  snapInVersionId: 'test_snap_in_version_id',
@@ -376,16 +391,18 @@ describe(state_1.State.name, () => {
376
391
  describe('Enhanced Control Protocol - extraction window validation', () => {
377
392
  it('should exit the process if extract_from >= extract_to', async () => {
378
393
  // Arrange: start is after end (inverted window)
379
- const event = (0, test_helpers_1.createEvent)({
380
- eventType: extraction_1.EventType.StartExtractingData,
381
- eventContextOverrides: {
382
- extraction_start_time: {
383
- type: extraction_1.TimeValueType.ABSOLUTE_TIME,
384
- value: '2025-06-01T00:00:00Z',
385
- },
386
- extraction_end_time: {
387
- type: extraction_1.TimeValueType.ABSOLUTE_TIME,
388
- value: '2024-01-01T00:00:00Z',
394
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
395
+ payload: {
396
+ event_type: extraction_1.EventType.StartExtractingData,
397
+ event_context: {
398
+ extraction_start_time: {
399
+ type: extraction_1.TimeValueType.ABSOLUTE_TIME,
400
+ value: '2025-06-01T00:00:00Z',
401
+ },
402
+ extraction_end_time: {
403
+ type: extraction_1.TimeValueType.ABSOLUTE_TIME,
404
+ value: '2024-01-01T00:00:00Z',
405
+ },
389
406
  },
390
407
  },
391
408
  });
@@ -405,16 +422,18 @@ describe(state_1.State.name, () => {
405
422
  });
406
423
  it('should exit the process if extract_from equals extract_to', async () => {
407
424
  // Arrange: start equals end (zero-width window)
408
- const event = (0, test_helpers_1.createEvent)({
409
- eventType: extraction_1.EventType.StartExtractingData,
410
- eventContextOverrides: {
411
- extraction_start_time: {
412
- type: extraction_1.TimeValueType.ABSOLUTE_TIME,
413
- value: '2024-06-01T00:00:00Z',
414
- },
415
- extraction_end_time: {
416
- type: extraction_1.TimeValueType.ABSOLUTE_TIME,
417
- value: '2024-06-01T00:00:00Z',
425
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
426
+ payload: {
427
+ event_type: extraction_1.EventType.StartExtractingData,
428
+ event_context: {
429
+ extraction_start_time: {
430
+ type: extraction_1.TimeValueType.ABSOLUTE_TIME,
431
+ value: '2024-06-01T00:00:00Z',
432
+ },
433
+ extraction_end_time: {
434
+ type: extraction_1.TimeValueType.ABSOLUTE_TIME,
435
+ value: '2024-06-01T00:00:00Z',
436
+ },
418
437
  },
419
438
  },
420
439
  });
@@ -434,16 +453,18 @@ describe(state_1.State.name, () => {
434
453
  });
435
454
  it('should not exit when extract_from < extract_to', async () => {
436
455
  // Arrange: valid window
437
- const event = (0, test_helpers_1.createEvent)({
438
- eventType: extraction_1.EventType.StartExtractingData,
439
- eventContextOverrides: {
440
- extraction_start_time: {
441
- type: extraction_1.TimeValueType.ABSOLUTE_TIME,
442
- value: '2024-01-01T00:00:00Z',
443
- },
444
- extraction_end_time: {
445
- type: extraction_1.TimeValueType.ABSOLUTE_TIME,
446
- value: '2025-06-01T00:00:00Z',
456
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
457
+ payload: {
458
+ event_type: extraction_1.EventType.StartExtractingData,
459
+ event_context: {
460
+ extraction_start_time: {
461
+ type: extraction_1.TimeValueType.ABSOLUTE_TIME,
462
+ value: '2024-01-01T00:00:00Z',
463
+ },
464
+ extraction_end_time: {
465
+ type: extraction_1.TimeValueType.ABSOLUTE_TIME,
466
+ value: '2025-06-01T00:00:00Z',
467
+ },
447
468
  },
448
469
  },
449
470
  });
@@ -463,12 +484,14 @@ describe(state_1.State.name, () => {
463
484
  });
464
485
  it('should not validate when only extract_from is set', async () => {
465
486
  // Arrange: only start, no end
466
- const event = (0, test_helpers_1.createEvent)({
467
- eventType: extraction_1.EventType.StartExtractingData,
468
- eventContextOverrides: {
469
- extraction_start_time: {
470
- type: extraction_1.TimeValueType.ABSOLUTE_TIME,
471
- value: '2024-01-01T00:00:00Z',
487
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
488
+ payload: {
489
+ event_type: extraction_1.EventType.StartExtractingData,
490
+ event_context: {
491
+ extraction_start_time: {
492
+ type: extraction_1.TimeValueType.ABSOLUTE_TIME,
493
+ value: '2024-01-01T00:00:00Z',
494
+ },
472
495
  },
473
496
  },
474
497
  });
@@ -488,15 +511,17 @@ describe(state_1.State.name, () => {
488
511
  });
489
512
  it('should not exit when extract_from is UNBOUNDED and extract_to is a real timestamp', async () => {
490
513
  // Arrange: UNBOUNDED start (epoch) with a real ABSOLUTE end timestamp
491
- const event = (0, test_helpers_1.createEvent)({
492
- eventType: extraction_1.EventType.StartExtractingData,
493
- eventContextOverrides: {
494
- extraction_start_time: {
495
- type: extraction_1.TimeValueType.UNBOUNDED,
496
- },
497
- extraction_end_time: {
498
- type: extraction_1.TimeValueType.ABSOLUTE_TIME,
499
- value: '2025-06-01T00:00:00Z',
514
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
515
+ payload: {
516
+ event_type: extraction_1.EventType.StartExtractingData,
517
+ event_context: {
518
+ extraction_start_time: {
519
+ type: extraction_1.TimeValueType.UNBOUNDED,
520
+ },
521
+ extraction_end_time: {
522
+ type: extraction_1.TimeValueType.ABSOLUTE_TIME,
523
+ value: '2025-06-01T00:00:00Z',
524
+ },
500
525
  },
501
526
  },
502
527
  });
@@ -526,19 +551,21 @@ describe(state_1.State.name, () => {
526
551
  });
527
552
  it('should store resolved values in pendingWorkersOldest/pendingWorkersNewest on StartExtractingData', async () => {
528
553
  // Arrange
529
- const event = (0, test_helpers_1.createEvent)({
530
- eventType: extraction_1.EventType.StartExtractingData,
531
- eventContextOverrides: {
532
- extraction_start_time: {
533
- type: extraction_1.TimeValueType.UNBOUNDED,
534
- },
535
- extraction_end_time: {
536
- type: extraction_1.TimeValueType.CURRENT_TIME,
537
- },
538
- },
539
- contextOverrides: {
554
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
555
+ context: {
540
556
  snap_in_version_id: '',
541
557
  },
558
+ payload: {
559
+ event_type: extraction_1.EventType.StartExtractingData,
560
+ event_context: {
561
+ extraction_start_time: {
562
+ type: extraction_1.TimeValueType.UNBOUNDED,
563
+ },
564
+ extraction_end_time: {
565
+ type: extraction_1.TimeValueType.CURRENT_TIME,
566
+ },
567
+ },
568
+ },
542
569
  });
543
570
  fetchStateSpy.mockRejectedValue({
544
571
  isAxiosError: true,
@@ -563,19 +590,21 @@ describe(state_1.State.name, () => {
563
590
  // Arrange: state has stale pending values from a previous failed attempt
564
591
  const staleOldest = '2026-03-25T08:00:00.000Z';
565
592
  const staleNewest = '2026-03-25T09:00:00.000Z';
566
- const event = (0, test_helpers_1.createEvent)({
567
- eventType: extraction_1.EventType.StartExtractingData,
568
- eventContextOverrides: {
569
- extraction_start_time: {
570
- type: extraction_1.TimeValueType.UNBOUNDED,
571
- },
572
- extraction_end_time: {
573
- type: extraction_1.TimeValueType.CURRENT_TIME,
574
- },
575
- },
576
- contextOverrides: {
593
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
594
+ context: {
577
595
  snap_in_version_id: 'test_snap_in_version_id',
578
596
  },
597
+ payload: {
598
+ event_type: extraction_1.EventType.StartExtractingData,
599
+ event_context: {
600
+ extraction_start_time: {
601
+ type: extraction_1.TimeValueType.UNBOUNDED,
602
+ },
603
+ extraction_end_time: {
604
+ type: extraction_1.TimeValueType.CURRENT_TIME,
605
+ },
606
+ },
607
+ },
579
608
  });
580
609
  const stringifiedState = JSON.stringify({
581
610
  snapInVersionId: 'test_snap_in_version_id',
@@ -599,20 +628,22 @@ describe(state_1.State.name, () => {
599
628
  // Arrange: state has pending values from a prior StartExtractingData phase
600
629
  const pendingOldest = '1970-01-01T00:00:00.000Z';
601
630
  const pendingNewest = '2026-03-26T08:00:00.000Z'; // Earlier than FIXED_NOW
602
- const event = (0, test_helpers_1.createEvent)({
603
- eventType: extraction_1.EventType.ContinueExtractingData,
604
- eventContextOverrides: {
605
- // Platform still sends TimeValue objects, but they should be ignored
606
- extraction_start_time: {
607
- type: extraction_1.TimeValueType.CURRENT_TIME,
608
- },
609
- extraction_end_time: {
610
- type: extraction_1.TimeValueType.CURRENT_TIME,
611
- },
612
- },
613
- contextOverrides: {
631
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
632
+ context: {
614
633
  snap_in_version_id: 'test_snap_in_version_id',
615
634
  },
635
+ payload: {
636
+ event_type: extraction_1.EventType.ContinueExtractingData,
637
+ event_context: {
638
+ // Platform still sends TimeValue objects, but they should be ignored
639
+ extraction_start_time: {
640
+ type: extraction_1.TimeValueType.CURRENT_TIME,
641
+ },
642
+ extraction_end_time: {
643
+ type: extraction_1.TimeValueType.CURRENT_TIME,
644
+ },
645
+ },
646
+ },
616
647
  });
617
648
  const stringifiedState = JSON.stringify({
618
649
  snapInVersionId: 'test_snap_in_version_id',
@@ -636,11 +667,11 @@ describe(state_1.State.name, () => {
636
667
  });
637
668
  it('should not set extract_from/extract_to on ContinueExtractingData if no pending values exist', async () => {
638
669
  // Arrange: state has no pending values (e.g. old state from before this feature)
639
- const event = (0, test_helpers_1.createEvent)({
640
- eventType: extraction_1.EventType.ContinueExtractingData,
641
- contextOverrides: {
670
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
671
+ context: {
642
672
  snap_in_version_id: 'test_snap_in_version_id',
643
673
  },
674
+ payload: { event_type: extraction_1.EventType.ContinueExtractingData },
644
675
  });
645
676
  const stringifiedState = JSON.stringify({
646
677
  snapInVersionId: 'test_snap_in_version_id',
@@ -661,11 +692,11 @@ describe(state_1.State.name, () => {
661
692
  // Arrange: state has pending values from the StartExtractingData phase
662
693
  const pendingOldest = '1970-01-01T00:00:00.000Z';
663
694
  const pendingNewest = '2026-03-26T08:00:00.000Z';
664
- const event = (0, test_helpers_1.createEvent)({
665
- eventType: extraction_1.EventType.StartExtractingAttachments,
666
- contextOverrides: {
695
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
696
+ context: {
667
697
  snap_in_version_id: 'test_snap_in_version_id',
668
698
  },
699
+ payload: { event_type: extraction_1.EventType.StartExtractingAttachments },
669
700
  });
670
701
  const stringifiedState = JSON.stringify({
671
702
  snapInVersionId: 'test_snap_in_version_id',
@@ -687,11 +718,11 @@ describe(state_1.State.name, () => {
687
718
  });
688
719
  it('should populate extractionScope from API response', async () => {
689
720
  // Arrange
690
- const event = (0, test_helpers_1.createEvent)({
691
- eventType: extraction_1.EventType.StartExtractingData,
692
- contextOverrides: {
721
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
722
+ context: {
693
723
  snap_in_version_id: '1.0.0',
694
724
  },
725
+ payload: { event_type: extraction_1.EventType.StartExtractingData },
695
726
  });
696
727
  fetchStateSpy.mockResolvedValue({
697
728
  state: JSON.stringify({ snapInVersionId: '1.0.0' }),
@@ -715,11 +746,11 @@ describe(state_1.State.name, () => {
715
746
  });
716
747
  it('should have empty extractionScope on 404', async () => {
717
748
  // Arrange
718
- const event = (0, test_helpers_1.createEvent)({
719
- eventType: extraction_1.EventType.StartExtractingMetadata,
720
- contextOverrides: {
749
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
750
+ context: {
721
751
  snap_in_version_id: '',
722
752
  },
753
+ payload: { event_type: extraction_1.EventType.StartExtractingMetadata },
723
754
  });
724
755
  fetchStateSpy.mockRejectedValue({
725
756
  isAxiosError: true,
@@ -739,8 +770,8 @@ describe(state_1.State.name, () => {
739
770
  });
740
771
  it('should have empty extractionScope for stateless events', async () => {
741
772
  // Arrange
742
- const event = (0, test_helpers_1.createEvent)({
743
- eventType: extraction_1.EventType.StartExtractingExternalSyncUnits,
773
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
774
+ payload: { event_type: extraction_1.EventType.StartExtractingExternalSyncUnits },
744
775
  });
745
776
  // Act
746
777
  const result = await (0, state_1.createAdapterState)({
@@ -19,7 +19,7 @@ export type StageKey = string;
19
19
  /**
20
20
  * Field type discriminator.
21
21
  */
22
- export type FieldType = 'bool' | 'int' | 'float' | 'text' | 'rich_text' | 'reference' | 'typed_reference' | 'enum' | 'date' | 'timestamp' | 'struct' | 'permission' | 'record_type_privilege' | 'field_privilege' | 'conditional_privilege';
22
+ export type FieldType = 'bool' | 'int' | 'float' | 'text' | 'rich_text' | 'reference' | 'typed_reference' | 'enum' | 'date' | 'timestamp' | 'struct' | 'permission' | 'record_type_privilege' | 'field_privilege' | 'conditional_privilege' | 'participation';
23
23
  /**
24
24
  * Reference type indicating parent-child relationship.
25
25
  */
@@ -113,6 +113,13 @@ export interface TypedReferenceData {
113
113
  export interface StructData {
114
114
  key?: StructTypeKey;
115
115
  }
116
+ /**
117
+ * Participation field data specifying target record types.
118
+ */
119
+ export interface ParticipationData {
120
+ /** The record types that this participation reference can refer to */
121
+ refers_to: Record<RecordTypeKey, ReferenceDetail>;
122
+ }
116
123
  /**
117
124
  * Permission data associating a reference with a role.
118
125
  */
@@ -190,6 +197,7 @@ export interface Field {
190
197
  record_type_privilege?: RecordTypePrivilegeData;
191
198
  field_privilege?: FieldPrivilegeData;
192
199
  conditional_privilege?: ConditionalPrivilegeData;
200
+ participation?: ParticipationData;
193
201
  }
194
202
  /**
195
203
  * Field condition definition.
@@ -269,6 +277,15 @@ export interface RecordTypeCategory {
269
277
  /** Indicates whether a record can move between the record types of this category while preserving its identity */
270
278
  are_record_type_conversions_possible?: boolean;
271
279
  }
280
+ /**
281
+ * Attachments configuration for a record type.
282
+ */
283
+ export interface Attachments {
284
+ /** Whether attachments can be extracted */
285
+ is_extractable?: boolean;
286
+ /** Whether attachments can be loaded: that is, whether the connector supports creating it in the system */
287
+ is_loadable?: boolean;
288
+ }
272
289
  /**
273
290
  * Record type definition.
274
291
  */
@@ -293,6 +310,8 @@ export interface RecordType {
293
310
  stage_diagram?: StageDiagram;
294
311
  /** Link naming data for custom links */
295
312
  link_naming_data?: CustomLinkData;
313
+ /** Attachments configuration */
314
+ attachments?: Attachments;
296
315
  }
297
316
  /**
298
317
  * Struct type definition for reusable field structures.
@@ -1 +1 @@
1
- {"version":3,"file":"external-domain-metadata.d.ts","sourceRoot":"","sources":["../../src/types/external-domain-metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"external-domain-metadata.d.ts","sourceRoot":"","sources":["../../src/types/external-domain-metadata.ts"],"names":[],"mappings":"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"}