Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 
 
 

24 righe
1.5 KiB

  1. import fs from 'node:fs';
  2. import assert from 'node:assert/strict';
  3. import { login, call } from './role-permissions-live.mjs';
  4. const fixture = JSON.parse(fs.readFileSync('reports/bridge-005-authoring-20260916/pilot.json', 'utf8'));
  5. const session = await login('root');
  6. const projectResult = await call(`tran/v1/content/projects/${fixture.trainingId}`, session.accessToken);
  7. assert.equal(projectResult.status, 200);
  8. const { project, currentVersion } = projectResult.data;
  9. assert.equal(project.id, '458');
  10. assert.equal(project.name, '005 液压泵应急切换(编排验证)');
  11. const task = await call(`tran/v1/teaching/assignments/${fixture.taskId}`, session.accessToken);
  12. assert.equal(task.data.status, 'DRAFT');
  13. assert.equal(task.data.contentProjectId, project.id);
  14. const content = structuredClone(currentVersion.content);
  15. for (const [index, step] of content.steps.entries()) {
  16. const video = `PILOT-005-${index + 1}-VIDEO`, audio = `PILOT-005-${index + 1}-AUDIO`;
  17. for (const code of [video, audio]) assert.ok(currentVersion.assets.some(a => a.code === code && a.status === 'READY'));
  18. Object.assign(step.audio, { narrationVideoAssetCode: video, narrationAssetCode: audio, offlineMediaType: 'video' });
  19. }
  20. const saved = await call(`tran/v1/content/projects/${project.id}`, session.accessToken,
  21. { ...project, content, assets: currentVersion.assets, dependencies: currentVersion.dependencies, version: project.version }, 'PUT');
  22. assert.equal(saved.status, 200, saved.message);
  23. console.log('Pilot media bindings restored; save/reopen/publish through editor next');