nango 0.68.1 → 0.69.1

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.
@@ -0,0 +1,345 @@
1
+ import { exec } from 'node:child_process';
2
+ import { promises as fs } from 'node:fs';
3
+ import path from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
5
+ import { promisify } from 'node:util';
6
+ import readline from 'readline';
7
+ import axios from 'axios';
8
+ import chalk from 'chalk';
9
+ import ejs from 'ejs';
10
+ import ora from 'ora';
11
+ import { printDebug } from '../utils.js';
12
+ import { compileAll } from '../zeroYaml/compile.js';
13
+ import { buildDefinitions } from '../zeroYaml/definitions.js';
14
+ const execAsync = promisify(exec);
15
+ const __filename = fileURLToPath(import.meta.url);
16
+ const __dirname = path.dirname(__filename);
17
+ const VITE_CONFIG_TEMPLATE = path.resolve(__dirname, '../templates/vite.config.ejs');
18
+ const VITEST_SETUP_TEMPLATE = path.resolve(__dirname, '../templates/vitest.setup.ejs');
19
+ const SYNC_TEMPLATE_PATH = path.resolve(__dirname, '../templates/sync-test-template.ejs');
20
+ const ACTION_TEMPLATE_PATH = path.resolve(__dirname, '../templates/action-test-template.ejs');
21
+ function askQuestion(query) {
22
+ const rl = readline.createInterface({
23
+ input: process.stdin,
24
+ output: process.stdout
25
+ });
26
+ return new Promise((resolve) => {
27
+ rl.question(query + ' (y/N): ', (answer) => {
28
+ rl.close();
29
+ resolve(/^y(es)?$/i.test(answer.trim()));
30
+ });
31
+ });
32
+ }
33
+ async function pathExists(path) {
34
+ try {
35
+ await fs.access(path);
36
+ return true;
37
+ }
38
+ catch {
39
+ return false;
40
+ }
41
+ }
42
+ async function findUpFilename(filename, fromDir) {
43
+ let currentDir = fromDir;
44
+ while (true) {
45
+ const potentialPath = path.join(currentDir, filename);
46
+ if (await pathExists(potentialPath)) {
47
+ return potentialPath;
48
+ }
49
+ const parentDir = path.dirname(currentDir);
50
+ if (parentDir === currentDir) {
51
+ return null;
52
+ }
53
+ currentDir = parentDir;
54
+ }
55
+ }
56
+ async function getProjectRoot() {
57
+ const cwd = process.cwd();
58
+ const packageJsonPath = await findUpFilename('package.json', cwd);
59
+ return packageJsonPath ? path.dirname(packageJsonPath) : cwd;
60
+ }
61
+ async function fetchLatestVersions(packages, debug) {
62
+ const versions = {};
63
+ for (const pkg of packages) {
64
+ try {
65
+ const response = await axios.get(`https://registry.npmjs.org/${pkg}`, {
66
+ timeout: 5000
67
+ });
68
+ const latestVersion = response.data['dist-tags'].latest;
69
+ versions[pkg] = latestVersion;
70
+ }
71
+ catch (err) {
72
+ if (debug) {
73
+ printDebug(`Failed to fetch latest version for ${pkg}: ${err}`);
74
+ }
75
+ }
76
+ }
77
+ return versions;
78
+ }
79
+ async function injectTestDependencies({ debug }) {
80
+ const rootPath = await getProjectRoot();
81
+ const packageJsonPath = path.resolve(rootPath, 'package.json');
82
+ if (!(await pathExists(packageJsonPath))) {
83
+ if (debug) {
84
+ printDebug(`package.json not found at ${packageJsonPath}. Skipping dependency injection.`);
85
+ }
86
+ return;
87
+ }
88
+ try {
89
+ const packageJsonContent = await fs.readFile(packageJsonPath, 'utf8');
90
+ const packageJson = JSON.parse(packageJsonContent);
91
+ let needsUpdate = false;
92
+ packageJson.scripts = packageJson.scripts || {};
93
+ if (!packageJson.scripts.test || packageJson.scripts.test.trim() === '') {
94
+ if (debug) {
95
+ printDebug('Injecting test script: vitest');
96
+ }
97
+ packageJson.scripts.test = 'vitest';
98
+ needsUpdate = true;
99
+ }
100
+ packageJson.devDependencies = packageJson.devDependencies || {};
101
+ // dependencies for vitest config files
102
+ const depPackages = ['vitest'];
103
+ const missingDeps = depPackages.filter((pkg) => !packageJson.devDependencies[pkg]);
104
+ if (missingDeps.length === 0) {
105
+ if (debug) {
106
+ printDebug('All required dependencies already present in package.json. Skipping dependency injection.');
107
+ }
108
+ if (needsUpdate) {
109
+ await fs.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2) + '\n', 'utf8');
110
+ if (debug) {
111
+ printDebug(`package.json updated at ${packageJsonPath} (scripts only)`);
112
+ }
113
+ }
114
+ return;
115
+ }
116
+ const requiredDeps = {};
117
+ if (debug) {
118
+ printDebug('Attempting to fetch latest versions from npm registry...');
119
+ }
120
+ const latestDeps = missingDeps.length > 0 ? await fetchLatestVersions(missingDeps, debug) : {};
121
+ for (const pkg of missingDeps) {
122
+ requiredDeps[pkg] = latestDeps[pkg] ? latestDeps[pkg] : 'latest';
123
+ }
124
+ if (debug) {
125
+ printDebug(`Fetched latest versions: ${JSON.stringify(latestDeps)}`);
126
+ }
127
+ for (const [dep, version] of Object.entries(requiredDeps)) {
128
+ packageJson.devDependencies[dep] = version;
129
+ needsUpdate = true;
130
+ if (debug) {
131
+ printDebug(`Adding dependency: ${dep}@${version}`);
132
+ }
133
+ }
134
+ if (needsUpdate) {
135
+ await fs.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2) + '\n', 'utf8');
136
+ if (debug) {
137
+ printDebug(`package.json updated at ${packageJsonPath}`);
138
+ }
139
+ if (debug) {
140
+ printDebug(`Running npm install in project root`);
141
+ }
142
+ await execAsync('npm install', { cwd: rootPath });
143
+ }
144
+ else if (debug) {
145
+ printDebug(`All required dependencies already present in package.json`);
146
+ }
147
+ }
148
+ catch (err) {
149
+ if (debug) {
150
+ printDebug(`Error injecting test dependencies: ${err}`);
151
+ }
152
+ throw err;
153
+ }
154
+ }
155
+ async function generateSyncTest({ integration, syncName, modelName, writePath, debug }) {
156
+ const data = {
157
+ integration,
158
+ syncName,
159
+ modelName
160
+ };
161
+ if (debug) {
162
+ printDebug(`Generating sync test for ${integration}/${syncName} with data: ${JSON.stringify(data, null, 2)}`);
163
+ }
164
+ const templateSource = await fs.readFile(SYNC_TEMPLATE_PATH, 'utf8');
165
+ const result = ejs.render(templateSource, data);
166
+ const testDir = path.resolve(writePath, `${integration}/tests`);
167
+ await fs.mkdir(testDir, { recursive: true });
168
+ const outputPath = path.resolve(testDir, `${integration}-${syncName}.test.ts`);
169
+ await fs.writeFile(outputPath, result);
170
+ if (debug) {
171
+ printDebug(`Test file created at ${outputPath}`);
172
+ }
173
+ }
174
+ async function generateActionTest({ integration, actionName, output, writePath, debug }) {
175
+ const data = {
176
+ integration,
177
+ actionName,
178
+ output
179
+ };
180
+ if (debug) {
181
+ printDebug(`Generating action test for ${integration}/${actionName} with data: ${JSON.stringify(data, null, 2)}`);
182
+ }
183
+ const templateSource = await fs.readFile(ACTION_TEMPLATE_PATH, 'utf8');
184
+ const result = ejs.render(templateSource, data);
185
+ const testDir = path.resolve(writePath, `${integration}/tests`);
186
+ await fs.mkdir(testDir, { recursive: true });
187
+ const outputPath = path.resolve(testDir, `${integration}-${actionName}.test.ts`);
188
+ await fs.writeFile(outputPath, result);
189
+ if (debug) {
190
+ printDebug(`Test file created at ${outputPath}`);
191
+ }
192
+ }
193
+ async function generateTestConfigs({ debug, force = false }) {
194
+ try {
195
+ const rootPath = await getProjectRoot();
196
+ if (debug) {
197
+ printDebug(`Resolved project root: ${rootPath}`);
198
+ printDebug(`Generating config files in: ${rootPath}`);
199
+ }
200
+ const viteConfigPath = path.resolve(rootPath, 'vite.config.ts');
201
+ const vitestSetupPath = path.resolve(rootPath, 'vitest.setup.ts');
202
+ const viteTemplate = await fs.readFile(VITE_CONFIG_TEMPLATE, 'utf8');
203
+ const vitestTemplateSource = await fs.readFile(VITEST_SETUP_TEMPLATE, 'utf8');
204
+ const vitestTemplate = ejs.render(vitestTemplateSource);
205
+ if (force || !(await pathExists(viteConfigPath))) {
206
+ await fs.writeFile(viteConfigPath, viteTemplate);
207
+ if (debug)
208
+ printDebug(`Created/Overwritten vite.config.ts at ${viteConfigPath}`);
209
+ }
210
+ else if (debug) {
211
+ printDebug(`vite.config.ts already exists and force is not enabled, skipping`);
212
+ }
213
+ if (force || !(await pathExists(vitestSetupPath))) {
214
+ await fs.writeFile(vitestSetupPath, vitestTemplate);
215
+ if (debug)
216
+ printDebug(`Created/Overwritten vitest.setup.ts at ${vitestSetupPath}`);
217
+ }
218
+ else if (debug) {
219
+ printDebug(`vitest.setup.ts already exists and force is not enabled, skipping`);
220
+ }
221
+ return true;
222
+ }
223
+ catch (err) {
224
+ console.error(chalk.red(`Config generation failed: ${err}`));
225
+ return false;
226
+ }
227
+ }
228
+ export async function generateTests({ absolutePath, integrationId, debug = false, autoConfirm = false }) {
229
+ try {
230
+ if (debug) {
231
+ printDebug(`Generating test files in ${absolutePath}`);
232
+ }
233
+ const spinner = ora({ text: 'Setting up test dependencies' }).start();
234
+ try {
235
+ await injectTestDependencies({ debug });
236
+ spinner.succeed();
237
+ }
238
+ catch (err) {
239
+ spinner.fail();
240
+ console.error(chalk.red(`Failed to inject test dependencies: ${err}`));
241
+ return false;
242
+ }
243
+ const rootPath = await getProjectRoot();
244
+ const viteConfigPath = path.resolve(rootPath, 'vite.config.ts');
245
+ const vitestSetupPath = path.resolve(rootPath, 'vitest.setup.ts');
246
+ const viteExists = await pathExists(viteConfigPath);
247
+ const vitestExists = await pathExists(vitestSetupPath);
248
+ let forceOverwrite = true;
249
+ if (viteExists || vitestExists) {
250
+ if (autoConfirm) {
251
+ forceOverwrite = true;
252
+ if (debug) {
253
+ printDebug(`Auto-confirm enabled. Skipping prompt and overwriting existing config files.`);
254
+ }
255
+ }
256
+ else {
257
+ forceOverwrite = await askQuestion('Tests config files already exist. Do you want to overwrite them?');
258
+ }
259
+ }
260
+ await generateTestConfigs({ debug, force: forceOverwrite });
261
+ let integrationsToProcess = {};
262
+ if (debug) {
263
+ printDebug('Detected zero-yaml project, compiling TypeScript and parsing definitions');
264
+ }
265
+ // compile then use js definitions
266
+ const compileResult = await compileAll({ fullPath: absolutePath, debug });
267
+ if (compileResult.isErr()) {
268
+ console.error(chalk.red(`Failed to compile TypeScript: ${compileResult.error}`));
269
+ return false;
270
+ }
271
+ const defsResult = await buildDefinitions({ fullPath: absolutePath, debug });
272
+ if (defsResult.isErr()) {
273
+ console.error(chalk.red(`Failed to build definitions: ${defsResult.error}`));
274
+ return false;
275
+ }
276
+ const parsed = defsResult.value;
277
+ for (const integration of parsed.integrations) {
278
+ integrationsToProcess[integration.providerConfigKey] = {
279
+ syncs: {},
280
+ actions: {}
281
+ };
282
+ for (const sync of integration.syncs) {
283
+ integrationsToProcess[integration.providerConfigKey].syncs[sync.name] = {
284
+ output: sync.output
285
+ };
286
+ }
287
+ for (const action of integration.actions) {
288
+ integrationsToProcess[integration.providerConfigKey].actions[action.name] = {
289
+ output: action.output
290
+ };
291
+ }
292
+ }
293
+ if (integrationId) {
294
+ if (!integrationsToProcess[integrationId]) {
295
+ console.error(chalk.red(`Integration "${integrationId}" not found`));
296
+ return false;
297
+ }
298
+ integrationsToProcess = { [integrationId]: integrationsToProcess[integrationId] };
299
+ }
300
+ for (const integration of Object.keys(integrationsToProcess)) {
301
+ if (debug) {
302
+ printDebug(`Processing integration: ${integration}`);
303
+ }
304
+ const { syncs, actions } = integrationsToProcess[integration];
305
+ for (const syncName of Object.keys(syncs || {})) {
306
+ const sync = syncs[syncName];
307
+ const mockPath = path.resolve(absolutePath, `${integration}/mocks/${syncName}`);
308
+ if (await pathExists(mockPath)) {
309
+ await generateSyncTest({
310
+ integration,
311
+ syncName,
312
+ modelName: sync.output,
313
+ writePath: absolutePath,
314
+ debug
315
+ });
316
+ }
317
+ else if (debug) {
318
+ printDebug(`No mocks found for sync ${syncName}, skipping test generation`);
319
+ }
320
+ }
321
+ for (const actionName of Object.keys(actions || {})) {
322
+ const action = actions[actionName];
323
+ const mockPath = path.resolve(absolutePath, `${integration}/mocks/${actionName}`);
324
+ if (await pathExists(mockPath)) {
325
+ await generateActionTest({
326
+ integration,
327
+ actionName,
328
+ output: action.output,
329
+ writePath: absolutePath,
330
+ debug
331
+ });
332
+ }
333
+ else if (debug) {
334
+ printDebug(`No mocks found for action ${actionName}, skipping test generation`);
335
+ }
336
+ }
337
+ }
338
+ return true;
339
+ }
340
+ catch (err) {
341
+ console.error(chalk.red(`Error generating tests: ${err}`));
342
+ return false;
343
+ }
344
+ }
345
+ //# sourceMappingURL=test.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.service.js","sourceRoot":"","sources":["../../lib/services/test.service.ts"],"names":[],"mappings":"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"}
@@ -78,7 +78,7 @@ class VerificationService {
78
78
  const tsFileNames = tsFiles.filter((file) => file.baseName !== 'models').map((file) => file.baseName);
79
79
  const missingFiles = flows.filter((scriptName) => !tsFileNames.includes(scriptName));
80
80
  if (missingFiles.length > 0) {
81
- console.log(chalk.red(`The following scripts are missing a corresponding .ts file: ${missingFiles.join(', ')}`));
81
+ console.log(chalk.red(`The following functions are missing a corresponding .ts file: ${missingFiles.join(', ')}`));
82
82
  throw new Error('Script missing .ts files');
83
83
  }
84
84
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"verification.service.js","sourceRoot":"","sources":["../../lib/services/verification.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verification.service.js","sourceRoot":"","sources":["../../lib/services/verification.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,mBAAmB;IACd,KAAK,CAAC,mBAAmB,CAAC,EAC7B,QAAQ,EACR,WAAW,EACX,KAAK,GAAG,KAAK,EACb,SAAS,GAAG,KAAK,EAMpB;QACG,IAAI,KAAK,EAAE,CAAC;YACR,UAAU,CAAC,8CAA8C,QAAQ,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,KAAK,EAAE,CAAC;YACR,UAAU,CAAC,0CAA0C,gBAAgB,EAAE,CAAC,CAAC;QAC7E,CAAC;QAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACJ,IAAI,KAAK,EAAE,CAAC;gBACR,UAAU,CAAC,SAAS,eAAe,qBAAqB,CAAC,CAAC;YAC9D,CAAC;QACL,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO;QACX,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAE5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,IAAI,KAAK,EAAE,CAAC;gBACR,UAAU,CAAC,+BAA+B,CAAC,CAAC;YAChD,CAAC;YACD,MAAM,UAAU,GAAG,WAAW;gBAC1B,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,oGAAoG,CAAC,CAAC;YAEnI,IAAI,UAAU,EAAE,CAAC;gBACb,IAAI,KAAK,EAAE,CAAC;oBACR,UAAU,CAAC,2EAA2E,CAAC,CAAC;gBAC5F,CAAC;gBACD,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBACtB,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC9B,MAAM,eAAe,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/C,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACtC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrB,IAAI,KAAK,EAAE,CAAC;oBACR,UAAU,CAAC,qCAAqC,CAAC,CAAC;gBACtD,CAAC;gBACD,MAAM,OAAO,GAAG,WAAW;oBACvB,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,4FAA4F,CAAC,CAAC;gBAE3H,IAAI,OAAO,EAAE,CAAC;oBACV,IAAI,KAAK,EAAE,CAAC;wBACR,UAAU,CAAC,2CAA2C,CAAC,CAAC;oBAC5D,CAAC;oBACD,MAAM,eAAe,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC/C,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAEM,gBAAgB,CAAC,EAAE,QAAQ,EAAwB;QACtD,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAC9C,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAChH,MAAM,WAAW,GAAG,MAAM,CAAC,MAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACxH,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAChI,MAAM,KAAK,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,WAAW,EAAE,GAAG,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QAE5F,MAAM,OAAO,GAAG,kBAAkB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAO,EAAE,CAAC,CAAC;QAEzE,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEtG,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QAErF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iEAAiE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACnH,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,EAClB,QAAQ,EACR,KAAK,EAIR;QACG,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;QAE9D,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAE9D,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAClD,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,CAAC,YAAY,IAAI,cAAc,IAAI,UAAU,CAAC;QAEjE,IAAI,UAAU,IAAI,YAAY,EAAE,CAAC;YAC7B,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO;YACH,OAAO,EAAE,cAAc,IAAI,YAAY;YACvC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACnC,YAAY;YACZ,UAAU;YACV,UAAU;SACb,CAAC;IACN,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAwC;QAClF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;YACpD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC,CAAC;YACpE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAED,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAC;AACtD,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { vi, expect, it, describe } from 'vitest';
2
+
3
+ import createAction from '../actions/<%= actionName %>.js';
4
+
5
+ describe('<%= integration %> <%= actionName %> tests', () => {
6
+ const nangoMock = new global.vitest.NangoActionMock({
7
+ dirname: '<%= integration %>',
8
+ name: "<%= actionName %>",
9
+ Model: "<%= output %>"
10
+ });
11
+
12
+ it('should output the action output that is expected', async () => {
13
+ const input = await nangoMock.getInput();
14
+ const response = await createAction.exec(nangoMock, input);
15
+ const output = await nangoMock.getOutput();
16
+
17
+ expect(response).toEqual(output);
18
+ });
19
+ });
20
+
@@ -0,0 +1,45 @@
1
+ import { vi, expect, it, describe } from 'vitest';
2
+
3
+ import createSync from '../syncs/<%= syncName %>.js';
4
+
5
+ describe('<%= integration %> <%= syncName %> tests', () => {
6
+ const nangoMock = new global.vitest.NangoSyncMock({
7
+ dirname: '<%= integration %>',
8
+ name: "<%= syncName %>",
9
+ Model: "<%= modelName %>"
10
+ });
11
+
12
+ const models = '<%= modelName %>'.split(',');
13
+ const batchSaveSpy = vi.spyOn(nangoMock, 'batchSave');
14
+
15
+ it('should get, map correctly the data and batchSave the result', async () => {
16
+ await createSync.exec(nangoMock);
17
+
18
+ for (const model of models) {
19
+ const expectedBatchSaveData = await nangoMock.getBatchSaveData(model);
20
+
21
+ const spiedData = batchSaveSpy.mock.calls.flatMap(call => {
22
+ if (call[1] === model) {
23
+ return call[0];
24
+ }
25
+
26
+ return [];
27
+ });
28
+
29
+ const spied = JSON.parse(JSON.stringify(spiedData));
30
+
31
+ expect(spied).toStrictEqual(expectedBatchSaveData);
32
+ }
33
+ });
34
+
35
+ it('should get, map correctly the data and batchDelete the result', async () => {
36
+ await createSync.exec(nangoMock);
37
+
38
+ for (const model of models) {
39
+ const batchDeleteData = await nangoMock.getBatchDeleteData(model);
40
+ if (batchDeleteData && batchDeleteData.length > 0) {
41
+ expect(nangoMock.batchDelete).toHaveBeenCalledWith(batchDeleteData, model);
42
+ }
43
+ }
44
+ });
45
+ });
@@ -0,0 +1,12 @@
1
+ /// <reference types="vitest" />
2
+
3
+ // Configure Vitest (https://vitest.dev/config/)
4
+
5
+ import { defineConfig } from "vitest/config";
6
+
7
+ export default defineConfig({
8
+ test: {
9
+ include: ["**/*.{test,spec}.?(c|m)[jt]s?(x)"],
10
+ setupFiles: "vitest.setup.ts",
11
+ },
12
+ });
@@ -0,0 +1,6 @@
1
+ import { NangoActionMock, NangoSyncMock } from "nango/test";
2
+
3
+ globalThis.vitest = {
4
+ NangoActionMock,
5
+ NangoSyncMock,
6
+ };
@@ -0,0 +1,56 @@
1
+ import { vi } from 'vitest';
2
+ declare class NangoActionMock {
3
+ dirname: string;
4
+ name: string;
5
+ Model: string;
6
+ nango: {
7
+ secretKey: string;
8
+ };
9
+ providerConfigKey: string;
10
+ private paginationService;
11
+ log: import("vitest").Mock<(...args: any[]) => any>;
12
+ ActionError: import("vitest").Mock<(...args: any[]) => any>;
13
+ getConnection: ReturnType<typeof vi.fn>;
14
+ getMetadata: ReturnType<typeof vi.fn>;
15
+ updateMetadata: ReturnType<typeof vi.fn>;
16
+ paginate: ReturnType<typeof vi.fn>;
17
+ get: ReturnType<typeof vi.fn>;
18
+ post: ReturnType<typeof vi.fn>;
19
+ patch: ReturnType<typeof vi.fn>;
20
+ put: ReturnType<typeof vi.fn>;
21
+ delete: ReturnType<typeof vi.fn>;
22
+ proxy: ReturnType<typeof vi.fn>;
23
+ getWebhookURL: ReturnType<typeof vi.fn>;
24
+ constructor({ dirname, name, Model }: {
25
+ dirname: string;
26
+ name: string;
27
+ Model: string;
28
+ });
29
+ private getMockFile;
30
+ private hashDirExists;
31
+ private getCachedResponse;
32
+ getBatchSaveData(modelName: string): Promise<any>;
33
+ getBatchDeleteData(modelName: string): Promise<any>;
34
+ getInput(): Promise<any>;
35
+ getOutput(): Promise<any>;
36
+ private getConnectionData;
37
+ private getMetadataData;
38
+ private getProxyPaginateData;
39
+ private proxyGetData;
40
+ private proxyPostData;
41
+ private proxyPatchData;
42
+ private proxyPutData;
43
+ private proxyDeleteData;
44
+ private proxyData;
45
+ }
46
+ declare class NangoSyncMock extends NangoActionMock {
47
+ lastSyncDate: null;
48
+ batchSave: ReturnType<typeof vi.fn>;
49
+ batchDelete: ReturnType<typeof vi.fn>;
50
+ constructor({ dirname, name, Model }: {
51
+ dirname: string;
52
+ name: string;
53
+ Model: string;
54
+ });
55
+ }
56
+ export { NangoActionMock, NangoSyncMock };