test-compile-request-shape.js 1.1 KB

12345678910111213141516171819202122232425262728
  1. import fs from 'fs';
  2. import os from 'os';
  3. import path from 'path';
  4. import { buildCompileRequest } from './src/server/routes/compile.js';
  5. function assert(condition, message) {
  6. if (!condition) throw new Error(message);
  7. }
  8. console.log('\n── Compile Request Shape ──');
  9. const workDir = fs.mkdtempSync(path.join(os.tmpdir(), 'vlcode-compile-route-'));
  10. fs.mkdirSync(path.join(workDir, 'Apps'), { recursive: true });
  11. fs.writeFileSync(path.join(workDir, 'Apps', 'Demo.vx'), '// VL_VERSION:3.5\n<App-Demo>\n</App-Demo>\n', 'utf-8');
  12. const { parseUrl, body } = buildCompileRequest(workDir, {
  13. targetGid: 1653,
  14. action: 'parsePjt',
  15. download: true,
  16. });
  17. assert(parseUrl.endsWith('/edtfn/parsevl'), 'compile should target ZIP upload endpoint');
  18. assert(body.targetGid === 1653, 'compile request should preserve target gid');
  19. assert(typeof body.file === 'string' && body.file.startsWith('data:application/zip;base64,'), 'compile request should package local files as ZIP data URL');
  20. assert(body.action === 'parsePjt', 'compile request should keep the action');
  21. console.log('PASS test-compile-request-shape.js');