Files
puter/tests/api-tester/tests/batch.js
T
Xiaochen Cui c93a53ead2 ci: init e2e test for browser env, tidy other tests (#1796)
* ci: init e2e test for browser env

stash changes

* test: update fsentry definition, add tests

stash changes

* test: pass puter-js mkdir test

* test: add test for puter-js move

* tidy code

* tidy code

* doc: add docs for playwright test

* recover memoryfs

* test: puter-js readdir/stat

* test: puter-js write

* test: puter-js read

* test: puter-js move_cart

* test: fix failed tests on move

* tests: rename files

* test: puter-js copy_cart

* tests: puter-js batch/delete, read config from file

* ci: add vitest

* ci: update names and timeout

* ci: simplify playwright-test

* ci: simplify api-test

* move "api-tester" from tools to tests

* test: update example config

* test: remove folder tests/api-tester/ci

* test: unify config location

* test: remove unused files

* ci: fix wrong config

* ci: fix wrong path

* test: add docs

* ci: update timeout, print artifact url
2025-10-28 16:35:37 -07:00

100 lines
3.0 KiB
JavaScript

const { expect } = require("chai");
const { verify_fsentry } = require("./fsentry");
module.exports = {
name: 'batch',
do: async t => {
let results;
await t.case('path reference resolution', async () => {
results = null;
results = await t.batch('batch', [
{
op: 'mkdir',
as: 'dest_1',
path: t.resolve('q/w'),
create_missing_parents: true,
},
{
op: 'write',
path: t.resolve('$dest_1/file_1.txt'),
},
], [
'file 1 contents',
]);
expect(results.length).equal(2);
expect(results[0].name).equal('w');
expect(results[1].path).equal(t.resolve('q/w/file_1.txt'));
});
await t.case('batch mkdir and write', async () => {
results = null;
results = await t.batch('batch', [
{
op: 'mkdir',
path: t.resolve('test_x_1_dir'),
overwrite: true,
},
{
op: 'write',
path: t.resolve('test_x_1.txt'),
},
{
op: 'mkdir',
path: t.resolve('test_x_2_dir'),
},
{
op: 'write',
path: t.resolve('test_x_2.txt'),
}
], [
'first file',
'second file',
]);
console.log('res?', results)
expect(results.length).equal(4);
for ( const result of results ) {
// await verify_fsentry(t, result)
}
});
// Test for path reference resolution
await t.case('path reference resolution', async () => {
results = null;
results = await t.batch('batch', [
{
op: 'mkdir',
as: 'dest_1',
path: t.resolve('q/w'),
create_missing_parents: true,
},
{
op: 'write',
overwrite: true,
path: t.resolve('$dest_1/file_1.txt'),
},
], [
'file 1 contents',
]);
console.log('res?', results)
expect(results.length).equal(2);
expect(results[0].name).equal('w');
expect(results[1].path).equal(t.resolve('q/w/file_1.txt'));
});
// Test for a single write
await t.case('single write', async () => {
results = null;
results = await t.batch('batch', [
{
op: 'write',
path: t.resolve('just_one_file.txt'),
},
], [
'file 1 contents',
]);
console.log('res?', results)
});
}
};