@contember/engine-actions 1.3.0-alpha.8 → 1.3.0-beta.2

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.
Files changed (112) hide show
  1. package/dist/src/authorization/ActionsAuthorizationActions.d.ts +27 -0
  2. package/dist/src/authorization/ActionsAuthorizationActions.d.ts.map +1 -0
  3. package/dist/src/authorization/ActionsAuthorizationActions.js +17 -0
  4. package/dist/src/authorization/ActionsAuthorizationActions.js.map +1 -0
  5. package/dist/src/authorization/ActionsPermissionsFactory.d.ts +5 -0
  6. package/dist/src/authorization/ActionsPermissionsFactory.d.ts.map +1 -0
  7. package/dist/src/authorization/ActionsPermissionsFactory.js +17 -0
  8. package/dist/src/authorization/ActionsPermissionsFactory.js.map +1 -0
  9. package/dist/src/authorization/Identity.d.ts +5 -0
  10. package/dist/src/authorization/Identity.d.ts.map +1 -0
  11. package/dist/src/authorization/Identity.js +3 -0
  12. package/dist/src/authorization/Identity.js.map +1 -0
  13. package/dist/src/authorization/index.d.ts +4 -0
  14. package/dist/src/authorization/index.d.ts.map +1 -0
  15. package/dist/src/authorization/index.js +20 -0
  16. package/dist/src/authorization/index.js.map +1 -0
  17. package/dist/src/dispatch/EventDispatcher.d.ts +2 -2
  18. package/dist/src/dispatch/EventDispatcher.d.ts.map +1 -1
  19. package/dist/src/dispatch/EventsRepository.d.ts +1 -1
  20. package/dist/src/dispatch/EventsRepository.d.ts.map +1 -1
  21. package/dist/src/dispatch/EventsRepository.js +1 -1
  22. package/dist/src/dispatch/EventsRepository.js.map +1 -1
  23. package/dist/src/dispatch/WebhookFetcher.d.ts +14 -0
  24. package/dist/src/dispatch/WebhookFetcher.d.ts.map +1 -0
  25. package/dist/src/dispatch/WebhookFetcher.js +17 -0
  26. package/dist/src/dispatch/WebhookFetcher.js.map +1 -0
  27. package/dist/src/dispatch/WebhookTargetHandler.d.ts +8 -0
  28. package/dist/src/dispatch/WebhookTargetHandler.d.ts.map +1 -1
  29. package/dist/src/dispatch/WebhookTargetHandler.js +145 -44
  30. package/dist/src/dispatch/WebhookTargetHandler.js.map +1 -1
  31. package/dist/src/dispatch/types.d.ts +23 -2
  32. package/dist/src/dispatch/types.d.ts.map +1 -1
  33. package/dist/src/graphql/http/ActionsApiMiddlewareFactory.d.ts +4 -1
  34. package/dist/src/graphql/http/ActionsApiMiddlewareFactory.d.ts.map +1 -1
  35. package/dist/src/graphql/http/ActionsApiMiddlewareFactory.js +10 -2
  36. package/dist/src/graphql/http/ActionsApiMiddlewareFactory.js.map +1 -1
  37. package/dist/src/graphql/http/ActionsContextResolver.d.ts +8 -5
  38. package/dist/src/graphql/http/ActionsContextResolver.d.ts.map +1 -1
  39. package/dist/src/graphql/http/ActionsContextResolver.js +6 -4
  40. package/dist/src/graphql/http/ActionsContextResolver.js.map +1 -1
  41. package/dist/src/graphql/http/ActionsGraphQLHandlerFactory.d.ts +1 -1
  42. package/dist/src/graphql/http/ActionsGraphQLHandlerFactory.d.ts.map +1 -1
  43. package/dist/src/graphql/resolvers/ActionsContext.d.ts +2 -0
  44. package/dist/src/graphql/resolvers/ActionsContext.d.ts.map +1 -1
  45. package/dist/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.d.ts.map +1 -1
  46. package/dist/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.js +2 -0
  47. package/dist/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.js.map +1 -1
  48. package/dist/src/graphql/resolvers/mutation/SetVariablesMutationResolver.d.ts.map +1 -1
  49. package/dist/src/graphql/resolvers/mutation/SetVariablesMutationResolver.js +2 -0
  50. package/dist/src/graphql/resolvers/mutation/SetVariablesMutationResolver.js.map +1 -1
  51. package/dist/src/graphql/resolvers/query/EventsQueryResolver.d.ts.map +1 -1
  52. package/dist/src/graphql/resolvers/query/EventsQueryResolver.js +4 -0
  53. package/dist/src/graphql/resolvers/query/EventsQueryResolver.js.map +1 -1
  54. package/dist/src/graphql/resolvers/query/VariablesQueryResolver.d.ts.map +1 -1
  55. package/dist/src/graphql/resolvers/query/VariablesQueryResolver.js +2 -0
  56. package/dist/src/graphql/resolvers/query/VariablesQueryResolver.js.map +1 -1
  57. package/dist/src/graphql/schema/index.d.ts +43 -43
  58. package/dist/src/graphql/schema/index.d.ts.map +1 -1
  59. package/dist/src/index.d.ts.map +1 -1
  60. package/dist/src/index.js +9 -3
  61. package/dist/src/index.js.map +1 -1
  62. package/dist/src/model/VariablesManager.d.ts +1 -1
  63. package/dist/src/model/VariablesManager.d.ts.map +1 -1
  64. package/dist/src/model/VariablesQuery.d.ts +1 -1
  65. package/dist/src/model/VariablesQuery.d.ts.map +1 -1
  66. package/dist/src/model/types.d.ts +7 -4
  67. package/dist/src/model/types.d.ts.map +1 -1
  68. package/dist/src/triggers/Payload.d.ts +9 -14
  69. package/dist/src/triggers/Payload.d.ts.map +1 -1
  70. package/dist/src/triggers/TriggerHandler.d.ts +1 -1
  71. package/dist/src/triggers/TriggerHandler.d.ts.map +1 -1
  72. package/dist/src/triggers/TriggerListenersStore.d.ts +1 -1
  73. package/dist/src/triggers/TriggerListenersStore.d.ts.map +1 -1
  74. package/dist/src/triggers/TriggerPayloadBuilder.js +4 -4
  75. package/dist/src/triggers/TriggerPayloadBuilder.js.map +1 -1
  76. package/dist/src/triggers/TriggerPayloadManager.d.ts +1 -1
  77. package/dist/src/triggers/TriggerPayloadManager.d.ts.map +1 -1
  78. package/dist/src/triggers/TriggerPayloadPersister.d.ts.map +1 -1
  79. package/dist/src/triggers/TriggerPayloadPersister.js +3 -1
  80. package/dist/src/triggers/TriggerPayloadPersister.js.map +1 -1
  81. package/dist/src/tsconfig.tsbuildinfo +1 -1
  82. package/dist/tests/cases/integration/triggers.rootWatch.test.js +63 -0
  83. package/dist/tests/cases/integration/triggers.rootWatch.test.js.map +1 -1
  84. package/dist/tests/cases/unit/webhookHandler.test.d.ts +2 -0
  85. package/dist/tests/cases/unit/webhookHandler.test.d.ts.map +1 -0
  86. package/dist/tests/cases/unit/webhookHandler.test.js +248 -0
  87. package/dist/tests/cases/unit/webhookHandler.test.js.map +1 -0
  88. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  89. package/package.json +18 -17
  90. package/src/authorization/ActionsAuthorizationActions.ts +14 -0
  91. package/src/authorization/ActionsPermissionsFactory.ts +14 -0
  92. package/src/authorization/Identity.ts +4 -0
  93. package/src/authorization/index.ts +3 -0
  94. package/src/dispatch/EventsRepository.ts +1 -1
  95. package/src/dispatch/WebhookFetcher.ts +24 -0
  96. package/src/dispatch/WebhookTargetHandler.ts +151 -46
  97. package/src/dispatch/types.ts +27 -0
  98. package/src/graphql/http/ActionsApiMiddlewareFactory.ts +10 -1
  99. package/src/graphql/http/ActionsContextResolver.ts +15 -6
  100. package/src/graphql/resolvers/ActionsContext.ts +2 -0
  101. package/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.ts +3 -0
  102. package/src/graphql/resolvers/mutation/SetVariablesMutationResolver.ts +3 -0
  103. package/src/graphql/resolvers/query/EventsQueryResolver.ts +7 -0
  104. package/src/graphql/resolvers/query/VariablesQueryResolver.ts +3 -0
  105. package/src/index.ts +9 -3
  106. package/src/model/types.ts +7 -3
  107. package/src/triggers/Payload.ts +0 -8
  108. package/src/triggers/TriggerPayloadBuilder.ts +1 -1
  109. package/src/triggers/TriggerPayloadPersister.ts +10 -1
  110. package/src/tsconfig.json +1 -0
  111. package/tests/cases/integration/triggers.rootWatch.test.ts +64 -0
  112. package/tests/cases/unit/webhookHandler.test.ts +275 -0
@@ -156,4 +156,67 @@ var ActionsModel;
156
156
  },
157
157
  });
158
158
  });
159
+ (0, vitest_1.test)('triggers: root delete', async () => {
160
+ const schema = (0, schema_definition_1.createSchema)(ActionsModel);
161
+ await (0, engine_api_tester_1.executeDbTest)({
162
+ executionContainerFactoryFactory: utils_1.executionContainerFactoryFactory,
163
+ migrationGroups: { 'contember/actions': migrations_1.migrationsGroup },
164
+ schema: schema,
165
+ seed: [
166
+ {
167
+ query: (0, gql_1.gql) `
168
+ mutation {
169
+ createArticle(data: {title: "Hello world"}) {
170
+ ok
171
+ }
172
+ }
173
+ `,
174
+ },
175
+ ],
176
+ query: (0, gql_1.gql) `
177
+ mutation {
178
+ deleteArticle(by: {title: "Hello world"}) {
179
+ ok
180
+ }
181
+ }
182
+ `,
183
+ return: {
184
+ deleteArticle: {
185
+ ok: true,
186
+ },
187
+ },
188
+ expectSystemDatabase: {
189
+ actions_event: [{
190
+ payload: {
191
+ id: '123e4567-e89b-12d3-a456-000000000003',
192
+ entity: 'Article',
193
+ events: [{
194
+ id: '123e4567-e89b-12d3-a456-000000000003',
195
+ entity: 'Article',
196
+ values: { id: '123e4567-e89b-12d3-a456-000000000003', title: 'Hello world' },
197
+ operation: 'create',
198
+ }],
199
+ trigger: 'article_watch',
200
+ operation: 'watch',
201
+ selection: { id: '123e4567-e89b-12d3-a456-000000000003', title: 'Hello world' },
202
+ },
203
+ log: [],
204
+ }, {
205
+ payload: {
206
+ id: '123e4567-e89b-12d3-a456-000000000003',
207
+ entity: 'Article',
208
+ events: [{
209
+ id: '123e4567-e89b-12d3-a456-000000000003',
210
+ entity: 'Article',
211
+ operation: 'delete',
212
+ }],
213
+ trigger: 'article_watch',
214
+ operation: 'watch',
215
+ selection: { id: '123e4567-e89b-12d3-a456-000000000003', title: 'Hello world' },
216
+ },
217
+ log: [],
218
+ }],
219
+ },
220
+ });
221
+ });
159
222
  //# sourceMappingURL=triggers.rootWatch.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"triggers.rootWatch.test.js","sourceRoot":"","sources":["../../../../tests/cases/integration/triggers.rootWatch.test.ts"],"names":[],"mappings":";;;;;;;;AAAA,oEAAkH;AAClH,mCAA6B;AAC7B,oEAA4D;AAC5D,uCAAmC;AACnC,wDAAyD;AACzD,mCAA0D;AAE1D,IAAU,YAAY,CAgBrB;AAhBD,WAAU,YAAY;IAYrB,IAAa,OAAO,GAApB,MAAa,OAAO;QAApB;YACC,UAAK,GAAG,oCAAG,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,CAAA;QACpC,CAAC;KAAA,CAAA;IAFY,OAAO;QAVnB,qCAAO,CAAC,KAAK,CAAC;YACd,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE;;GAEN;YACD,OAAO,EAAE,eAAe;YACxB,SAAS,EAAE;;GAEV;SACD,CAAC;OACW,OAAO,CAEnB;IAFY,oBAAO,UAEnB,CAAA;AAEF,CAAC,EAhBS,YAAY,KAAZ,YAAY,QAgBrB;AAED,IAAA,aAAI,EAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IACvC,MAAM,MAAM,GAAG,IAAA,gCAAY,EAAC,YAAY,CAAC,CAAA;IACzC,MAAM,IAAA,iCAAa,EAAC;QACnB,gCAAgC,EAAhC,wCAAgC;QAChC,eAAe,EAAE,EAAE,mBAAmB,EAAE,4BAAe,EAAE;QACzD,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACL;gBACC,KAAK,EAAE,IAAA,SAAG,EAAA;;;;;;KAMT;aACD;SACD;QACD,KAAK,EAAE,IAAA,SAAG,EAAA;;;;;;GAMT;QACD,MAAM,EAAE;YACP,aAAa,EAAE;gBACd,EAAE,EAAE,IAAI;aACR;SACD;QACD,oBAAoB,EAAE;YACrB,aAAa,EAAE,CAAC;oBACf,OAAO,EAAE;wBACR,EAAE,EAAE,sCAAsC;wBAC1C,MAAM,EAAE,SAAS;wBACjB,MAAM,EAAE,CAAC;gCACR,EAAE,EAAE,sCAAsC;gCAC1C,MAAM,EAAE,SAAS;gCACjB,MAAM,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE,KAAK,EAAE,aAAa,EAAE;gCAC5E,SAAS,EAAE,QAAQ;6BACnB,CAAC;wBACF,OAAO,EAAE,eAAe;wBACxB,SAAS,EAAE,OAAO;wBAClB,SAAS,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE,KAAK,EAAE,aAAa,EAAE;qBAC/E;oBACD,GAAG,EAAE,EAAE;iBACP,EAAE;oBACF,OAAO,EAAE;wBACR,EAAE,EAAE,sCAAsC;wBAC1C,MAAM,EAAE,SAAS;wBACjB,MAAM,EAAE,CAAC;gCACR,EAAE,EAAE,sCAAsC;gCAC1C,GAAG,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE;gCAC7B,MAAM,EAAE,SAAS;gCACjB,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;gCACxB,SAAS,EAAE,QAAQ;6BACnB,CAAC;wBACF,OAAO,EAAE,eAAe;wBACxB,SAAS,EAAE,OAAO;wBAClB,SAAS,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE,KAAK,EAAE,KAAK,EAAE;qBACvE;oBACD,GAAG,EAAE,EAAE;iBACP,CAAC;SACF;KACD,CAAC,CAAA;AACH,CAAC,CAAC,CAAA;AAGF,IAAA,aAAI,EAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;IAC9C,MAAM,MAAM,GAAG,IAAA,gCAAY,EAAC,YAAY,CAAC,CAAA;IACzC,MAAM,IAAA,iCAAa,EAAC;QACnB,gCAAgC,EAAhC,wCAAgC;QAChC,eAAe,EAAE,EAAE,mBAAmB,EAAE,4BAAe,EAAE;QACzD,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACL;gBACC,KAAK,EAAE,IAAA,SAAG,EAAA;;;;;;KAMT;aACD;SACD;QACD,KAAK,EAAE,IAAA,SAAG,EAAA;;;;;;GAMT;QACD,MAAM,EAAE;YACP,aAAa,EAAE;gBACd,EAAE,EAAE,IAAI;aACR;SACD;QACD,oBAAoB,EAAE;YACrB,aAAa,EAAE,CAAC;oBACf,EAAE,EAAE,sCAAsC;oBAC1C,cAAc,EAAE,sCAAsC;oBACtD,WAAW,EAAE,CAAC;oBACd,KAAK,EAAE,SAAS;oBAChB,QAAQ,EAAE,sCAAsC;oBAChD,SAAS,EAAE,CAAC;oBACZ,MAAM,EAAE,sBAAsB;oBAC9B,OAAO,EAAE,eAAe;oBACxB,QAAQ,EAAE,CAAC;oBACX,OAAO,EAAE;wBACR,EAAE,EAAE,sCAAsC;wBAC1C,MAAM,EAAE,SAAS;wBACjB,MAAM,EAAE,CAAC;gCACR,EAAE,EAAE,sCAAsC;gCAC1C,MAAM,EAAE,SAAS;gCACjB,MAAM,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE,KAAK,EAAE,aAAa,EAAE;gCAC5E,SAAS,EAAE,QAAQ;6BACnB,CAAC;wBACF,OAAO,EAAE,eAAe;wBACxB,SAAS,EAAE,OAAO;wBAClB,SAAS,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE,KAAK,EAAE,aAAa,EAAE;qBAC/E;oBACD,GAAG,EAAE,EAAE;iBACP,CAAC;SACF;KACD,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"triggers.rootWatch.test.js","sourceRoot":"","sources":["../../../../tests/cases/integration/triggers.rootWatch.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=webhookHandler.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhookHandler.test.d.ts","sourceRoot":"","sources":["../../../../tests/cases/unit/webhookHandler.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,248 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const WebhookTargetHandler_1 = require("../../../src/dispatch/WebhookTargetHandler");
5
+ const logger_1 = require("@contember/logger");
6
+ const engine_api_tester_1 = require("@contember/engine-api-tester");
7
+ const now = new Date();
8
+ const createTestEvent = (i = 0, row = {}) => ({
9
+ created_at: now,
10
+ id: (0, engine_api_tester_1.testUuid)(i * 10 + 1),
11
+ trigger: 'test',
12
+ target: 'test_target',
13
+ last_state_change: now,
14
+ log: [],
15
+ num_retries: 0,
16
+ resolved_at: null,
17
+ transaction_id: (0, engine_api_tester_1.testUuid)(i * 10 + 2),
18
+ stage_id: (0, engine_api_tester_1.testUuid)(i * 10 + 3),
19
+ visible_at: now,
20
+ payload: { foo: 'bar' },
21
+ priority: 1,
22
+ schema_id: 1,
23
+ state: 'created',
24
+ ...row,
25
+ });
26
+ const dropDuration = (events) => {
27
+ return events.map(it => ({ ...it, result: { ...it.result, durationMs: -1 } }));
28
+ };
29
+ (0, vitest_1.describe)('webhook handler', () => {
30
+ (0, vitest_1.test)('successful response', async () => {
31
+ const testLoggerHandler = new logger_1.TestLoggerHandler();
32
+ const logger = (0, logger_1.createLogger)(testLoggerHandler);
33
+ let fetchCalled = false;
34
+ const webhookHandler = new WebhookTargetHandler_1.WebhookTargetHandler({
35
+ fetch(url, init) {
36
+ fetchCalled = true;
37
+ vitest_1.assert.equal(url, 'http://localhost');
38
+ return Promise.resolve({
39
+ ok: true,
40
+ headers: new Headers(),
41
+ responseText: '',
42
+ status: 200,
43
+ statusText: 'OK',
44
+ });
45
+ },
46
+ });
47
+ const target = {
48
+ name: 'test_target',
49
+ type: 'webhook',
50
+ url: 'http://localhost',
51
+ };
52
+ const event1 = createTestEvent(0);
53
+ const event2 = createTestEvent(1);
54
+ const result = await webhookHandler.handle({
55
+ logger,
56
+ target: target,
57
+ events: [event1, event2],
58
+ variables: {},
59
+ });
60
+ vitest_1.assert.equal(fetchCalled, true);
61
+ vitest_1.assert.deepStrictEqual(dropDuration(result), [
62
+ {
63
+ row: event1,
64
+ target,
65
+ result: {
66
+ ok: true,
67
+ code: 200,
68
+ durationMs: -1,
69
+ },
70
+ },
71
+ {
72
+ row: event2,
73
+ target,
74
+ result: {
75
+ ok: true,
76
+ code: 200,
77
+ durationMs: -1,
78
+ },
79
+ },
80
+ ]);
81
+ });
82
+ (0, vitest_1.test)('error response', async () => {
83
+ const testLoggerHandler = new logger_1.TestLoggerHandler();
84
+ const logger = (0, logger_1.createLogger)(testLoggerHandler);
85
+ let fetchCalled = false;
86
+ const webhookHandler = new WebhookTargetHandler_1.WebhookTargetHandler({
87
+ fetch(url, init) {
88
+ fetchCalled = true;
89
+ vitest_1.assert.equal(url, 'http://localhost');
90
+ return Promise.resolve({
91
+ ok: false,
92
+ headers: new Headers(),
93
+ responseText: 'Failed to something',
94
+ status: 500,
95
+ statusText: 'Err',
96
+ });
97
+ },
98
+ });
99
+ const target = {
100
+ name: 'test_target',
101
+ type: 'webhook',
102
+ url: 'http://localhost',
103
+ };
104
+ const event1 = createTestEvent(0);
105
+ const event2 = createTestEvent(1);
106
+ const result = await webhookHandler.handle({
107
+ logger,
108
+ target: target,
109
+ events: [event1, event2],
110
+ variables: {},
111
+ });
112
+ vitest_1.assert.equal(fetchCalled, true);
113
+ vitest_1.assert.deepStrictEqual(dropDuration(result), [
114
+ {
115
+ row: event1,
116
+ target,
117
+ result: {
118
+ ok: false,
119
+ code: 500,
120
+ durationMs: -1,
121
+ errorMessage: 'Err',
122
+ response: 'Failed to something',
123
+ },
124
+ },
125
+ {
126
+ row: event2,
127
+ target,
128
+ result: {
129
+ ok: false,
130
+ code: 500,
131
+ durationMs: -1,
132
+ errorMessage: 'Err',
133
+ response: 'Failed to something',
134
+ },
135
+ },
136
+ ]);
137
+ });
138
+ (0, vitest_1.test)('invalid partial response', async () => {
139
+ const testLoggerHandler = new logger_1.TestLoggerHandler();
140
+ const logger = (0, logger_1.createLogger)(testLoggerHandler);
141
+ let fetchCalled = false;
142
+ const webhookHandler = new WebhookTargetHandler_1.WebhookTargetHandler({
143
+ fetch(url, init) {
144
+ fetchCalled = true;
145
+ vitest_1.assert.equal(url, 'http://localhost');
146
+ return Promise.resolve({
147
+ ok: true,
148
+ headers: new Headers([['content-type', 'application/json']]),
149
+ responseText: `{"events": []}`,
150
+ status: 200,
151
+ statusText: 'OK',
152
+ });
153
+ },
154
+ });
155
+ const target = {
156
+ name: 'test_target',
157
+ type: 'webhook',
158
+ url: 'http://localhost',
159
+ };
160
+ const event1 = createTestEvent(0);
161
+ const event2 = createTestEvent(1);
162
+ const result = await webhookHandler.handle({
163
+ logger,
164
+ target: target,
165
+ events: [event1, event2],
166
+ variables: {},
167
+ });
168
+ vitest_1.assert.equal(fetchCalled, true);
169
+ vitest_1.assert.deepStrictEqual(dropDuration(result), [
170
+ {
171
+ row: event1,
172
+ target,
173
+ result: {
174
+ ok: false,
175
+ code: 200,
176
+ durationMs: -1,
177
+ errorMessage: 'Invalid response: value at path /failures: must be array, undefined given',
178
+ response: '{"events": []}',
179
+ },
180
+ },
181
+ {
182
+ row: event2,
183
+ target,
184
+ result: {
185
+ ok: false,
186
+ code: 200,
187
+ durationMs: -1,
188
+ errorMessage: 'Invalid response: value at path /failures: must be array, undefined given',
189
+ response: '{"events": []}',
190
+ },
191
+ },
192
+ ]);
193
+ });
194
+ (0, vitest_1.test)('partially successful response', async () => {
195
+ const testLoggerHandler = new logger_1.TestLoggerHandler();
196
+ const logger = (0, logger_1.createLogger)(testLoggerHandler);
197
+ let fetchCalled = false;
198
+ const webhookHandler = new WebhookTargetHandler_1.WebhookTargetHandler({
199
+ fetch(url, init) {
200
+ fetchCalled = true;
201
+ vitest_1.assert.equal(url, 'http://localhost');
202
+ return Promise.resolve({
203
+ ok: true,
204
+ headers: new Headers([['content-type', 'application/json']]),
205
+ responseText: `{"failures": [{"eventId": "${(0, engine_api_tester_1.testUuid)(1)}", "error": "foo failure"}]}`,
206
+ status: 200,
207
+ statusText: 'OK',
208
+ });
209
+ },
210
+ });
211
+ const target = {
212
+ name: 'test_target',
213
+ type: 'webhook',
214
+ url: 'http://localhost',
215
+ };
216
+ const event1 = createTestEvent(0);
217
+ const event2 = createTestEvent(1);
218
+ const result = await webhookHandler.handle({
219
+ logger,
220
+ target: target,
221
+ events: [event1, event2],
222
+ variables: {},
223
+ });
224
+ vitest_1.assert.equal(fetchCalled, true);
225
+ vitest_1.assert.deepStrictEqual(dropDuration(result), [
226
+ {
227
+ row: event1,
228
+ target,
229
+ result: {
230
+ ok: false,
231
+ code: 200,
232
+ durationMs: -1,
233
+ errorMessage: 'foo failure',
234
+ },
235
+ },
236
+ {
237
+ row: event2,
238
+ target,
239
+ result: {
240
+ ok: true,
241
+ code: 200,
242
+ durationMs: -1,
243
+ },
244
+ },
245
+ ]);
246
+ });
247
+ });
248
+ //# sourceMappingURL=webhookHandler.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhookHandler.test.js","sourceRoot":"","sources":["../../../../tests/cases/unit/webhookHandler.test.ts"],"names":[],"mappings":"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"}