master-zapier-plan-draft/vendor/zapier-platform/example-apps/files/test/creates.test.js
George Lambert b4150c8250 Milestone 0: import zappier billing, Verae middleware, and Zapier research
Compose-ready workspace: packages/zappier (rate card, portal, Stripe),
packages/verae-zapier-middleware (timestamp + NATS), packages/verae-zapier
(CLI app), vendor/zapier-platform, and research/zapier vendor corpus.

Gate 0 structure checks pass. Product code and research are not yet wired.
2026-09-09 02:37:36 -04:00

60 lines
1.6 KiB
JavaScript

/* globals describe, expect, test */
const zapier = require('zapier-platform-core');
const App = require('../index');
const appTester = zapier.createAppTester(App);
zapier.tools.env.inject();
const CORE_VERSION = zapier.version.split('.').map((s) => parseInt(s));
const FILE_URL =
'https://cdn.zapier.com/storage/files/f6679cf77afeaf6b8426de8d7b9642fc.pdf';
// This is what you get when doing `curl <FILE_URL> | sha1sum`
const EXPECTED_SHA1 = '3cf58b42a0fb1b7cc58de8110096841ece967530';
describe('uploadFile', () => {
test('upload file v10', async () => {
if (CORE_VERSION[0] < 10) {
console.warn(
`skipped because this only works on core v10+ and you're on ${zapier.version}`,
);
return;
}
const bundle = {
inputData: {
filename: 'sample.pdf',
// in production, this will be an hydration URL to the selected file's data
file: FILE_URL,
},
};
const result = await appTester(
App.creates.uploadFile_v10.operation.perform,
bundle,
);
expect(result.filename).toBe('sample.pdf');
expect(result.file.sha1).toBe(EXPECTED_SHA1);
});
test('upload file v9', async () => {
const bundle = {
inputData: {
filename: 'sample.pdf',
// in production, this will be an hydration URL to the selected file's data
file: FILE_URL,
},
};
const result = await appTester(
App.creates.uploadFile_v9.operation.perform,
bundle,
);
expect(result.filename).toBe('sample.pdf');
expect(result.file.sha1).toBe(EXPECTED_SHA1);
});
});