123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226 |
- const { expect } = require("chai");
- const { verify_fsentry } = require("./fsentry");
- module.exports = {
- name: 'batch',
- do: async t => {
- let results;
- /*
- await t.case('batch write', async () => {
- results = null;
- results = await t.batch('/batch/write', [
- {
- path: t.resolve('test_1.txt'),
- overwrite: true,
- },
- {
- path: t.resolve('test_3.txt'),
- }
- ], [
- 'first file',
- 'second file',
- ])
- console.log('results?', results)
- expect(results.length).equal(2);
- for ( const result of results ) {
- await verify_fsentry(t, result)
- }
- });
- t.case('batch mkdir', async () => {
- results = null;
- results = await t.batch_json('batch/mkdir', [
- {
- path: t.resolve('test_1_dir'),
- overwrite: true,
- },
- {
- path: t.resolve('test_3_dir'),
- }
- ])
- expect(results.length).equal(2);
- for ( const result of results ) {
- await verify_fsentry(t, result)
- }
- });
- */
- await t.case('3-3 nested directores', async () => {
- results = null;
- results = await t.batch('batch', [
- {
- op: 'mktree',
- parent: t.cwd,
- tree: [
- 'a/b/c',
- [
- 'a/b/c',
- ['a/b/c'],
- ['d/e/f'],
- ['g/h/i'],
- ['j/k/l'],
- ],
- [
- 'd/e/f',
- ['a/b/c'],
- ['d/e/f'],
- ['g/h/i'],
- ['j/k/l'],
- ],
- [
- 'g/h/i',
- ['a/b/c'],
- ['d/e/f'],
- ['g/h/i'],
- ['j/k/l'],
- ],
- [
- 'j/k/l',
- ['a/b/c'],
- ['d/e/f'],
- ['g/h/i'],
- ['j/k/l'],
- ],
- ]
- }
- ], []);
- });
- 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: 'mkdir',
- as: 'dest_2',
- path: t.resolve('q/w'), // "q/w (1)"
- dedupe_name: true,
- create_missing_parents: true,
- },
- {
- op: 'write',
- path: t.resolve('$dest_1/file_1.txt'),
- },
- {
- op: 'write',
- path: t.resolve('$dest_2/file_2.txt'),
- },
- ], [
- 'file 1 contents',
- 'file 2 contents',
- ]);
- console.log('res?', results)
- expect(results.length).equal(4);
- expect(results[0].name).equal('w');
- expect(results[1].name).equal('w (1)');
- expect(results[2].path).equal(t.resolve('q/w/file_1.txt'));
- expect(results[3].path).equal(t.resolve('q/w (1)/file_2.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)
- }
- });
- await t.case('path reference resolution (without dedupe)', 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',
- ]);
- 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 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: 'mkdir',
- as: 'dest_2',
- path: t.resolve('q/w'), // "q/w (1)"
- dedupe_name: true,
- create_missing_parents: true,
- },
- {
- op: 'write',
- path: t.resolve('$dest_1/file_1.txt'),
- },
- {
- op: 'write',
- path: t.resolve('$dest_2/file_2.txt'),
- },
- ], [
- 'file 1 contents',
- 'file 2 contents',
- ]);
- console.log('res?', results)
- expect(results.length).equal(4);
- expect(results[0].name).equal('w');
- expect(results[1].name).equal('w (1)');
- expect(results[2].path).equal(t.resolve('q/w/file_1.txt'));
- expect(results[3].path).equal(t.resolve('q/w (1)/file_2.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)
- });
- }
- };
|