n8n-nodes-sendzen 1.0.5 → 1.0.7

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 (45) hide show
  1. package/README.md +2 -2
  2. package/dist/assets/Session_Message.png +0 -0
  3. package/dist/assets/Template_Message.png +0 -0
  4. package/dist/credentials/SendZenApi.credentials.d.ts +3 -2
  5. package/dist/credentials/SendZenApi.credentials.js +3 -5
  6. package/dist/credentials/SendZenApi.credentials.js.map +1 -0
  7. package/dist/credentials/SendZenWebhookApi.credentials.d.ts +3 -2
  8. package/dist/credentials/SendZenWebhookApi.credentials.js +6 -8
  9. package/dist/credentials/SendZenWebhookApi.credentials.js.map +1 -0
  10. package/dist/nodes/SendZen/SendZen.node.js +4 -10
  11. package/dist/nodes/SendZen/SendZen.node.js.map +1 -0
  12. package/dist/nodes/SendZen/SendZenTrigger.node.js +2 -0
  13. package/dist/nodes/SendZen/SendZenTrigger.node.js.map +1 -0
  14. package/dist/package.json +72 -0
  15. package/dist/shared/constants.js +1 -0
  16. package/dist/shared/constants.js.map +1 -0
  17. package/dist/shared/nodeProperties.d.ts +1 -0
  18. package/dist/shared/nodeProperties.js +29 -1
  19. package/dist/shared/nodeProperties.js.map +1 -0
  20. package/dist/shared/template/template.api.types.js +1 -0
  21. package/dist/shared/template/template.api.types.js.map +1 -0
  22. package/dist/shared/template/template.builder.js +3 -13
  23. package/dist/shared/template/template.builder.js.map +1 -0
  24. package/dist/shared/type.js +1 -0
  25. package/dist/shared/type.js.map +1 -0
  26. package/dist/shared/utils.js +1 -0
  27. package/dist/shared/utils.js.map +1 -0
  28. package/dist/tests/credentials/sendZenApi.test.d.ts +1 -0
  29. package/dist/tests/credentials/sendZenApi.test.js +51 -0
  30. package/dist/tests/credentials/sendZenApi.test.js.map +1 -0
  31. package/dist/tests/credentials/sendZenWebhookApi.test.d.ts +1 -0
  32. package/dist/tests/credentials/sendZenWebhookApi.test.js +40 -0
  33. package/dist/tests/credentials/sendZenWebhookApi.test.js.map +1 -0
  34. package/dist/tests/nodes/sendZenNode.test.d.ts +1 -0
  35. package/dist/tests/nodes/sendZenNode.test.js +252 -0
  36. package/dist/tests/nodes/sendZenNode.test.js.map +1 -0
  37. package/dist/tests/nodes/sendZenTrigger.test.d.ts +1 -0
  38. package/dist/tests/nodes/sendZenTrigger.test.js +92 -0
  39. package/dist/tests/nodes/sendZenTrigger.test.js.map +1 -0
  40. package/dist/tests/templates/templates.builder.test.d.ts +1 -0
  41. package/dist/tests/templates/templates.builder.test.js +447 -0
  42. package/dist/tests/templates/templates.builder.test.js.map +1 -0
  43. package/dist/tsconfig.tsbuildinfo +1 -0
  44. package/package.json +72 -83
  45. package/index.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sendZenWebhookApi.test.js","sourceRoot":"","sources":["../../../tests/credentials/sendZenWebhookApi.test.ts"],"names":[],"mappings":";;AAAA,mGAAoF;AAEpF,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC9C,IAAI,WAA8B,CAAC;IAEnC,SAAS,CAAC,GAAG,EAAE;QACd,WAAW,GAAG,IAAI,iDAAiB,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACzC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC5C,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;QACjD,MAAM,cAAc,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC3D,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACpD,MAAM,iBAAiB,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjD,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACpF,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,252 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const SendZen_node_1 = require("../../nodes/SendZen/SendZen.node");
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const nodeProperties_1 = require("../../shared/nodeProperties");
6
+ describe('SendZen Node', () => {
7
+ let node;
8
+ let description;
9
+ let methods;
10
+ let properties;
11
+ beforeAll(() => {
12
+ node = new SendZen_node_1.SendZen();
13
+ description = node.description;
14
+ properties = description.properties;
15
+ methods = node.methods;
16
+ });
17
+ test('should have the correct Description', () => {
18
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
19
+ expect(description.name).toBe('sendZen');
20
+ expect(description.displayName).toBe('SendZen for WhatsApp API');
21
+ expect(description.icon).toBe('file:sendzen.svg');
22
+ expect(description.group).toHaveLength(1);
23
+ expect((_a = description.group) === null || _a === void 0 ? void 0 : _a[0]).toBe('output');
24
+ expect(description.version).toBe(1);
25
+ expect(description.subtitle).toBe('={{ $parameter.operation === "sendSessionMessage" ? "Send Session Message" : $parameter.operation === "sendTemplateMessage" ? "Send Template Message" : $parameter.operation === "markAsRead" ? "Mark as Read" : $parameter.operation === "showTyping" ? "Show Typing Indicator" : "SendZen" }}');
26
+ expect(description.description).toBe('Build WhatsApp chatbots & automations: send messages, media, and notifications via the WhatsApp Cloud API.');
27
+ expect(description.defaults).toBeInstanceOf(Object);
28
+ expect((_b = description.defaults) === null || _b === void 0 ? void 0 : _b.name).toBe('SendZen');
29
+ expect(description.inputs).toHaveLength(1);
30
+ expect((_c = description.inputs) === null || _c === void 0 ? void 0 : _c[0]).toBe('main');
31
+ expect(description.outputs).toHaveLength(1);
32
+ expect((_d = description.outputs) === null || _d === void 0 ? void 0 : _d[0]).toBe('main');
33
+ expect(description.credentials).toHaveLength(1);
34
+ expect((_e = description.credentials) === null || _e === void 0 ? void 0 : _e[0]).toBeInstanceOf(Object);
35
+ expect((_g = (_f = description.credentials) === null || _f === void 0 ? void 0 : _f[0]) === null || _g === void 0 ? void 0 : _g.name).toBe('sendZenApi');
36
+ expect((_j = (_h = description.credentials) === null || _h === void 0 ? void 0 : _h[0]) === null || _j === void 0 ? void 0 : _j.required).toBe(true);
37
+ expect(description.properties).toBeInstanceOf(Array);
38
+ });
39
+ test('should have the correct Properties and length', () => {
40
+ expect(properties).toHaveLength(10);
41
+ expect(properties[0]).toBe(nodeProperties_1.ResourseProperties);
42
+ expect(properties[1]).toBe(nodeProperties_1.OperationProperties);
43
+ expect(properties[2]).toBe(nodeProperties_1.WabaAccountProperties);
44
+ expect(properties[3]).toBe(nodeProperties_1.PhoneNumberIdProperties);
45
+ expect(properties[4]).toBe(nodeProperties_1.MessageIdProperties);
46
+ expect(properties[5]).toBe(nodeProperties_1.RecipientPhoneNumberProperties);
47
+ expect(properties[6]).toBe(nodeProperties_1.TemplateProperties);
48
+ expect(properties[7]).toBe(nodeProperties_1.ReplyMessageProperties);
49
+ expect(properties[8]).toBe(nodeProperties_1.EnableUrlPreviewProperties);
50
+ expect(properties[9]).toBe(nodeProperties_1.TemplateNameOrIdProperties);
51
+ });
52
+ test('should have the correct Methods', () => {
53
+ expect(methods).toBeDefined();
54
+ expect(methods === null || methods === void 0 ? void 0 : methods.loadOptions).toBeDefined();
55
+ expect(methods === null || methods === void 0 ? void 0 : methods.resourceMapping).toBeDefined();
56
+ const loadOptions = methods === null || methods === void 0 ? void 0 : methods.loadOptions;
57
+ if (loadOptions) {
58
+ const loadOptionsKeys = Object.keys(loadOptions);
59
+ expect(loadOptionsKeys).toHaveLength(2);
60
+ expect(loadOptionsKeys[0]).toBe('getTemplates');
61
+ expect(loadOptionsKeys[1]).toBe('getWabaAccounts');
62
+ }
63
+ const resourceMapping = methods === null || methods === void 0 ? void 0 : methods.resourceMapping;
64
+ if (resourceMapping) {
65
+ const resourceMappingKeys = Object.keys(resourceMapping);
66
+ expect(resourceMappingKeys).toHaveLength(1);
67
+ expect(resourceMappingKeys[0]).toBe('getTemplateVariables');
68
+ }
69
+ });
70
+ test('should have the correct values in Operation property', () => {
71
+ var _a, _b, _c, _d, _e, _f, _g, _h;
72
+ expect(nodeProperties_1.OperationProperties.name).toBe('operation');
73
+ expect(nodeProperties_1.OperationProperties.displayName).toBe('Operation');
74
+ expect(nodeProperties_1.OperationProperties.type).toBe('options');
75
+ expect(nodeProperties_1.OperationProperties.noDataExpression).toBe(true);
76
+ expect(nodeProperties_1.OperationProperties.options).toHaveLength(4);
77
+ expect((_b = (_a = nodeProperties_1.OperationProperties.options) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.name).toBe('Send Session Message');
78
+ expect((_d = (_c = nodeProperties_1.OperationProperties.options) === null || _c === void 0 ? void 0 : _c[1]) === null || _d === void 0 ? void 0 : _d.name).toBe('Send Template Message');
79
+ expect((_f = (_e = nodeProperties_1.OperationProperties.options) === null || _e === void 0 ? void 0 : _e[2]) === null || _f === void 0 ? void 0 : _f.name).toBe('Mark as Read');
80
+ expect((_h = (_g = nodeProperties_1.OperationProperties.options) === null || _g === void 0 ? void 0 : _g[3]) === null || _h === void 0 ? void 0 : _h.name).toBe('Show Typing Indicator');
81
+ });
82
+ describe('execute', () => {
83
+ let mockExecuteFunctions;
84
+ let mockHttpRequest;
85
+ beforeEach(() => {
86
+ mockHttpRequest = jest.fn();
87
+ mockExecuteFunctions = {
88
+ getInputData: jest.fn(),
89
+ getNodeParameter: jest.fn(),
90
+ getCredentials: jest.fn().mockResolvedValue({ returnFullResponse: false }),
91
+ helpers: {
92
+ httpRequestWithAuthentication: mockHttpRequest,
93
+ },
94
+ getNode: jest.fn().mockReturnValue({ name: 'SendZen' }),
95
+ continueOnFail: jest.fn().mockReturnValue(false),
96
+ };
97
+ });
98
+ const setupGetNodeParameter = (params) => {
99
+ mockExecuteFunctions.getNodeParameter.mockImplementation((paramName) => {
100
+ return params[paramName];
101
+ });
102
+ };
103
+ test('should execute "sendSessionMessage" successfully', async () => {
104
+ mockExecuteFunctions.getInputData.mockReturnValue([{ json: {} }]);
105
+ setupGetNodeParameter({
106
+ operation: 'sendSessionMessage',
107
+ wabaAccount: JSON.stringify({
108
+ wabaId: 'waba_123',
109
+ phoneNumber: '1555000000',
110
+ phoneNumberId: 'phone_id_123',
111
+ }),
112
+ recipient: '+1234567890',
113
+ replyMessage: 'Hello World',
114
+ enableUrlPreview: true,
115
+ });
116
+ mockHttpRequest.mockResolvedValue({ success: true, messageId: 'msg_123' });
117
+ const result = await node.execute.call(mockExecuteFunctions);
118
+ expect(mockHttpRequest).toHaveBeenCalledTimes(1);
119
+ expect(mockHttpRequest).toHaveBeenCalledWith('sendZenApi', expect.objectContaining({
120
+ method: 'POST',
121
+ url: '/v1/messages',
122
+ body: {
123
+ from: '1555000000',
124
+ to: '+1234567890',
125
+ type: 'text',
126
+ text: {
127
+ body: 'Hello World',
128
+ preview_url: true,
129
+ },
130
+ },
131
+ }));
132
+ expect(result).toEqual([[{ json: { success: true, messageId: 'msg_123' } }]]);
133
+ });
134
+ test('should throw error for invalid recipient number in sendSessionMessage', async () => {
135
+ mockExecuteFunctions.getInputData.mockReturnValue([{ json: {} }]);
136
+ setupGetNodeParameter({
137
+ operation: 'sendSessionMessage',
138
+ wabaAccount: JSON.stringify({ phoneNumber: '123' }),
139
+ recipient: 'INVALID_NUMBER',
140
+ });
141
+ await expect(node.execute.call(mockExecuteFunctions)).rejects.toThrow(n8n_workflow_1.NodeOperationError);
142
+ });
143
+ test('should execute "sendTemplateMessage" successfully', async () => {
144
+ mockExecuteFunctions.getInputData.mockReturnValue([{ json: {} }]);
145
+ const mockTemplate = {
146
+ name: 'hello_world',
147
+ language: { code: 'en_US' },
148
+ components: [],
149
+ };
150
+ setupGetNodeParameter({
151
+ operation: 'sendTemplateMessage',
152
+ wabaAccount: JSON.stringify({ phoneNumber: '1555000000' }),
153
+ recipient: '+1234567890',
154
+ template: JSON.stringify(mockTemplate),
155
+ templateVariables: { value: {} },
156
+ });
157
+ mockHttpRequest.mockResolvedValue({ messages: [{ id: 'msg_123' }] });
158
+ const result = await node.execute.call(mockExecuteFunctions);
159
+ expect(mockHttpRequest).toHaveBeenCalledWith('sendZenApi', expect.objectContaining({
160
+ method: 'POST',
161
+ url: '/v1/messages',
162
+ body: expect.objectContaining({
163
+ type: 'template',
164
+ template: expect.objectContaining({
165
+ name: 'hello_world',
166
+ }),
167
+ }),
168
+ }));
169
+ expect(result[0][0].json).toEqual({ response: { messages: [{ id: 'msg_123' }] } });
170
+ });
171
+ test('should execute "markAsRead" successfully using Manual Parameters', async () => {
172
+ mockExecuteFunctions.getInputData.mockReturnValue([{ json: {} }]);
173
+ setupGetNodeParameter({
174
+ operation: 'markAsRead',
175
+ phoneNumberId: 'pid_manual_123',
176
+ messageId: 'mid_manual_123',
177
+ });
178
+ mockHttpRequest.mockResolvedValue({ success: true });
179
+ await node.execute.call(mockExecuteFunctions);
180
+ expect(mockHttpRequest).toHaveBeenCalledWith('sendZenApi', expect.objectContaining({
181
+ method: 'POST',
182
+ url: '/v1/pid_manual_123/messages',
183
+ body: {
184
+ messaging_product: 'whatsapp',
185
+ status: 'read',
186
+ message_id: 'mid_manual_123',
187
+ },
188
+ }));
189
+ });
190
+ test('should execute "markAsRead" successfully using Input JSON (Auto-resolve)', async () => {
191
+ const inputItem = {
192
+ json: {
193
+ entry: [{
194
+ changes: [{
195
+ value: {
196
+ metadata: { phone_number_id: 'pid_from_json' },
197
+ messages: [{ id: 'mid_from_json' }]
198
+ }
199
+ }]
200
+ }]
201
+ }
202
+ };
203
+ mockExecuteFunctions.getInputData.mockReturnValue([inputItem]);
204
+ mockExecuteFunctions.getNodeParameter.mockImplementation((paramName) => {
205
+ if (paramName === 'operation')
206
+ return 'markAsRead';
207
+ return '';
208
+ });
209
+ mockHttpRequest.mockResolvedValue({ success: true });
210
+ await node.execute.call(mockExecuteFunctions);
211
+ expect(mockHttpRequest).toHaveBeenCalledWith('sendZenApi', expect.objectContaining({
212
+ url: '/v1/pid_from_json/messages',
213
+ body: expect.objectContaining({
214
+ message_id: 'mid_from_json',
215
+ }),
216
+ }));
217
+ });
218
+ test('should execute "showTyping" successfully', async () => {
219
+ mockExecuteFunctions.getInputData.mockReturnValue([{ json: {} }]);
220
+ setupGetNodeParameter({
221
+ operation: 'showTyping',
222
+ phoneNumberId: 'pid_123',
223
+ messageId: 'mid_123',
224
+ });
225
+ mockHttpRequest.mockResolvedValue({ success: true });
226
+ await node.execute.call(mockExecuteFunctions);
227
+ expect(mockHttpRequest).toHaveBeenCalledWith('sendZenApi', expect.objectContaining({
228
+ body: {
229
+ messaging_product: 'whatsapp',
230
+ status: 'read',
231
+ message_id: 'mid_123',
232
+ typing_indicator: {
233
+ type: 'text',
234
+ },
235
+ },
236
+ }));
237
+ });
238
+ test('should handle HTTP Errors correctly', async () => {
239
+ mockExecuteFunctions.getInputData.mockReturnValue([{ json: {} }]);
240
+ setupGetNodeParameter({
241
+ operation: 'sendSessionMessage',
242
+ wabaAccount: JSON.stringify({ phoneNumber: '1555000000' }),
243
+ recipient: '+1234567890',
244
+ replyMessage: 'Hi',
245
+ });
246
+ const error = new Error('API Error');
247
+ mockHttpRequest.mockRejectedValue(error);
248
+ await expect(node.execute.call(mockExecuteFunctions)).rejects.toThrow(n8n_workflow_1.NodeOperationError);
249
+ });
250
+ });
251
+ });
252
+ //# sourceMappingURL=sendZenNode.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sendZenNode.test.js","sourceRoot":"","sources":["../../../tests/nodes/sendZenNode.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const SendZenTrigger_node_1 = require("../../nodes/SendZen/SendZenTrigger.node");
4
+ describe('SendZenTrigger', () => {
5
+ let node;
6
+ let description;
7
+ beforeAll(() => {
8
+ node = new SendZenTrigger_node_1.SendZenTrigger();
9
+ description = node.description;
10
+ });
11
+ describe('description', () => {
12
+ it('should have the correct static properties', () => {
13
+ expect(description.name).toBe('sendZenTrigger');
14
+ expect(description.displayName).toBe('SendZen Trigger');
15
+ expect(description.group).toEqual(['trigger']);
16
+ expect(description.version).toBe(1);
17
+ expect(description.subtitle).toBe('On Message Received');
18
+ expect(description.description).toBe('Trigger when a WhatsApp incoming message is received via SendZen Services');
19
+ expect(description.defaults).toEqual({ name: 'Message Received Trigger' });
20
+ expect(description.inputs).toEqual([]);
21
+ expect(description.outputs).toEqual(['main']);
22
+ });
23
+ it('should have optional webhook credentials for signature verification', () => {
24
+ expect(description.credentials).toEqual([
25
+ {
26
+ name: 'sendZenWebhookApi',
27
+ required: false,
28
+ },
29
+ ]);
30
+ });
31
+ it('should have the correct webhook definition', () => {
32
+ var _a, _b, _c, _d, _e;
33
+ expect(description.webhooks).toBeInstanceOf(Array);
34
+ expect((_a = description.webhooks) === null || _a === void 0 ? void 0 : _a[0]).toBeDefined();
35
+ expect((_b = description.webhooks) === null || _b === void 0 ? void 0 : _b[0].name).toBe('default');
36
+ expect((_c = description.webhooks) === null || _c === void 0 ? void 0 : _c[0].httpMethod).toBe('={{$parameter["httpMethod"]}}');
37
+ expect((_d = description.webhooks) === null || _d === void 0 ? void 0 : _d[0].path).toBe('sendzen-webhook');
38
+ expect((_e = description.webhooks) === null || _e === void 0 ? void 0 : _e[0].isFullPath).toBe(false);
39
+ });
40
+ it('should have the correct properties for the UI', () => {
41
+ const properties = description.properties;
42
+ expect(properties).toBeInstanceOf(Array);
43
+ expect(properties).toHaveLength(1);
44
+ const httpMethodProperty = properties === null || properties === void 0 ? void 0 : properties[0];
45
+ expect(httpMethodProperty === null || httpMethodProperty === void 0 ? void 0 : httpMethodProperty.name).toBe('httpMethod');
46
+ expect(httpMethodProperty === null || httpMethodProperty === void 0 ? void 0 : httpMethodProperty.displayName).toBe('HTTP Method');
47
+ expect(httpMethodProperty === null || httpMethodProperty === void 0 ? void 0 : httpMethodProperty.type).toBe('options');
48
+ expect(httpMethodProperty === null || httpMethodProperty === void 0 ? void 0 : httpMethodProperty.default).toBe('POST');
49
+ expect(httpMethodProperty === null || httpMethodProperty === void 0 ? void 0 : httpMethodProperty.options).toEqual([{ name: 'POST', value: 'POST' }]);
50
+ });
51
+ });
52
+ describe('webhook', () => {
53
+ it('should process the incoming request body and return it as workflowData', async () => {
54
+ var _a;
55
+ const mockWebhookData = {
56
+ contact: {
57
+ name: 'John Doe',
58
+ wa_id: '15551234567',
59
+ },
60
+ message: {
61
+ type: 'text',
62
+ text: {
63
+ body: 'Hello from SendZen!',
64
+ },
65
+ },
66
+ };
67
+ const mockContext = {
68
+ getRequestObject: jest.fn().mockReturnValue({
69
+ body: mockWebhookData,
70
+ headers: {},
71
+ params: {},
72
+ query: {},
73
+ }),
74
+ getResponseObject: jest.fn().mockReturnValue({
75
+ status: jest.fn().mockReturnThis(),
76
+ send: jest.fn(),
77
+ json: jest.fn(),
78
+ }),
79
+ helpers: {
80
+ returnJsonArray: jest.fn((data) => {
81
+ return data;
82
+ }),
83
+ },
84
+ };
85
+ const result = await node.webhook.call(mockContext);
86
+ expect((_a = mockContext.helpers) === null || _a === void 0 ? void 0 : _a.returnJsonArray).toHaveBeenCalledWith(mockWebhookData);
87
+ expect(result).toBeDefined();
88
+ expect(result.workflowData).toEqual([mockWebhookData]);
89
+ });
90
+ });
91
+ });
92
+ //# sourceMappingURL=sendZenTrigger.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sendZenTrigger.test.js","sourceRoot":"","sources":["../../../tests/nodes/sendZenTrigger.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};