batch.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. const { expect } = require("chai");
  2. const { verify_fsentry } = require("./fsentry");
  3. module.exports = {
  4. name: 'batch',
  5. do: async t => {
  6. let results;
  7. await t.case('path reference resolution', async () => {
  8. results = null;
  9. results = await t.batch('batch', [
  10. {
  11. op: 'mkdir',
  12. as: 'dest_1',
  13. path: t.resolve('q/w'),
  14. create_missing_parents: true,
  15. },
  16. {
  17. op: 'write',
  18. path: t.resolve('$dest_1/file_1.txt'),
  19. },
  20. ], [
  21. 'file 1 contents',
  22. ]);
  23. expect(results.length).equal(2);
  24. expect(results[0].name).equal('w');
  25. expect(results[1].path).equal(t.resolve('q/w/file_1.txt'));
  26. });
  27. await t.case('batch mkdir and write', async () => {
  28. results = null;
  29. results = await t.batch('batch', [
  30. {
  31. op: 'mkdir',
  32. path: t.resolve('test_x_1_dir'),
  33. overwrite: true,
  34. },
  35. {
  36. op: 'write',
  37. path: t.resolve('test_x_1.txt'),
  38. },
  39. {
  40. op: 'mkdir',
  41. path: t.resolve('test_x_2_dir'),
  42. },
  43. {
  44. op: 'write',
  45. path: t.resolve('test_x_2.txt'),
  46. }
  47. ], [
  48. 'first file',
  49. 'second file',
  50. ]);
  51. console.log('res?', results)
  52. expect(results.length).equal(4);
  53. for ( const result of results ) {
  54. // await verify_fsentry(t, result)
  55. }
  56. });
  57. // Test for path reference resolution
  58. await t.case('path reference resolution', async () => {
  59. results = null;
  60. results = await t.batch('batch', [
  61. {
  62. op: 'mkdir',
  63. as: 'dest_1',
  64. path: t.resolve('q/w'),
  65. create_missing_parents: true,
  66. },
  67. {
  68. op: 'write',
  69. overwrite: true,
  70. path: t.resolve('$dest_1/file_1.txt'),
  71. },
  72. ], [
  73. 'file 1 contents',
  74. ]);
  75. console.log('res?', results)
  76. expect(results.length).equal(2);
  77. expect(results[0].name).equal('w');
  78. expect(results[1].path).equal(t.resolve('q/w/file_1.txt'));
  79. });
  80. // Test for a single write
  81. await t.case('single write', async () => {
  82. results = null;
  83. results = await t.batch('batch', [
  84. {
  85. op: 'write',
  86. path: t.resolve('just_one_file.txt'),
  87. },
  88. ], [
  89. 'file 1 contents',
  90. ]);
  91. console.log('res?', results)
  92. });
  93. }
  94. };