Files
dj/integration-work/test_task_progress.cjs

12 lines
992 B
JavaScript

const fs=require('node:fs'),assert=require('node:assert/strict'),ts=require('../huobao-source/backend/node_modules/typescript');
(async()=>{
const source=fs.readFileSync('huobao-source/backend/src/services/task-progress.ts','utf8');
const code=ts.transpileModule(source,{compilerOptions:{module:ts.ModuleKind.ESNext,target:ts.ScriptTarget.ES2022}}).outputText;
const {parseTaskProgress}=await import('data:text/javascript;base64,'+Buffer.from(code).toString('base64'));
assert.equal(parseTaskProgress({phase:'invented',observedAt:123}),null);
assert.equal(parseTaskProgress({phase:'sampling',observedAt:Infinity}),null);
assert.deepEqual(parseTaskProgress({phase:'sampling',observedAt:123,step:3,totalSteps:20,api_key:'secret',historySamples:NaN,samplingMaxSeconds:-1}),
{phase:'sampling',observedAt:123,step:3,totalSteps:20});
console.log('PASS: unknown phases, non-finite/negative values and unapproved payload fields rejected');
})().catch(e=>{console.error(e);process.exit(1)});