test-import-clears-project-targets.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #!/usr/bin/env node
  2. import assert from 'assert';
  3. import fs from 'fs';
  4. import os from 'os';
  5. import path from 'path';
  6. import { clearImportedProjectTargets } from './src/server/routes/files.js';
  7. function makeTempProject() {
  8. const dir = fs.mkdtempSync(path.join(os.tmpdir(), 'vlcode-import-clear-'));
  9. for (const subdir of ['Apps', 'Theme', 'Config', '.vl-code']) {
  10. fs.mkdirSync(path.join(dir, subdir), { recursive: true });
  11. }
  12. fs.writeFileSync(path.join(dir, 'Apps', 'Old.vx'), '// old');
  13. fs.writeFileSync(path.join(dir, 'Theme', 'Theme.vth'), '// theme');
  14. fs.writeFileSync(path.join(dir, 'Config', 'ProjectConfig'), '1234');
  15. fs.writeFileSync(path.join(dir, 'VL.md'), '# old');
  16. fs.writeFileSync(path.join(dir, '.vl-code', 'project.json'), '{}');
  17. return dir;
  18. }
  19. async function main() {
  20. const dir = makeTempProject();
  21. await clearImportedProjectTargets(dir);
  22. assert.equal(fs.existsSync(path.join(dir, 'Apps')), false);
  23. assert.equal(fs.existsSync(path.join(dir, 'Theme')), false);
  24. assert.equal(fs.existsSync(path.join(dir, 'Config')), false);
  25. assert.equal(fs.existsSync(path.join(dir, 'VL.md')), false);
  26. assert.equal(fs.existsSync(path.join(dir, '.vl-code', 'project.json')), true);
  27. fs.rmSync(dir, { recursive: true, force: true });
  28. console.log('\n── Import Clears Project Targets ──');
  29. console.log('PASS test-import-clears-project-targets.js');
  30. }
  31. main().catch((err) => {
  32. console.error(err);
  33. process.exit(1);
  34. });