| 12345678910111213141516171819202122232425262728293031323334353637 |
- #!/usr/bin/env node
- import assert from 'assert';
- import fs from 'fs';
- import os from 'os';
- import path from 'path';
- import { ensureProjectProfile } from './src/server/helpers.js';
- function mkProjectDir(name) {
- const dir = fs.mkdtempSync(path.join(os.tmpdir(), `${name}-`));
- fs.mkdirSync(path.join(dir, '.vl-code'), { recursive: true });
- fs.mkdirSync(path.join(dir, 'Theme'), { recursive: true });
- return dir;
- }
- function cleanup(dir) {
- fs.rmSync(dir, { recursive: true, force: true });
- }
- function main() {
- const seedWorkflowDir = path.join(process.cwd(), 'public', 'seed-workflows');
- const customThemeDir = mkProjectDir('vlcode-theme-custom');
- fs.writeFileSync(path.join(customThemeDir, 'Theme', 'Custom.vth'), '// VL_VERSION:3.6\n');
- ensureProjectProfile(customThemeDir, seedWorkflowDir);
- assert.equal(fs.existsSync(path.join(customThemeDir, 'Theme', 'Theme.vth')), false, 'should not seed Theme.vth when project already has a theme');
- cleanup(customThemeDir);
- const emptyThemeDir = mkProjectDir('vlcode-theme-empty');
- ensureProjectProfile(emptyThemeDir, seedWorkflowDir);
- assert.equal(fs.existsSync(path.join(emptyThemeDir, 'Theme', 'Theme.vth')), true, 'should seed Theme.vth for empty projects');
- cleanup(emptyThemeDir);
- console.log('\n── Project Profile Theme Seeding ──');
- console.log('PASS test-project-profile-theme-seeding.js');
- }
- main();
|