import test from 'node:test' import assert from 'node:assert/strict' import {applyUploadedStill} from '../shared/studio2/upload.mjs' test('uploaded source is selected without changing hero or output',()=>{ const form={imageAId:'old',identityStillId:'hero',selected:'result',startClipId:'clip',mode:'extend',settings:{aspect:'16:9'}} const next=applyUploadedStill(form,{still:{id:'uploaded'}},'source') assert.equal(next.imageAId,'uploaded');assert.equal(next.identityStillId,'hero');assert.equal(next.selected,'result');assert.equal(next.startClipId,'');assert.equal(next.settings.aspect,'auto') }) test('uploaded hero changes identity only and missing saves are reported',()=>{ const form={identityStillId:'old',imageAId:'source',settings:{aspect:'1:1'}} const next=applyUploadedStill(form,{still:{id:'hero'}},'hero') assert.equal(next.identityStillId,'hero');assert.equal(next.imageAId,'source');assert.equal(next.settings.aspect,'1:1') assert.throws(()=>applyUploadedStill(form,{},'hero'),/did not return a saved still/) })