f.cb.getContext=id=>id===other.sessionId?other:f.c;letretrieved=0;constvault=f.cb.getVault();vault.credential=()=>{retrieved++;throwError('Should not retrieve');};
test('prepare submission has a separate default-off scope and regular fill never arms',async()=>{constf=fixture();letarms=0;f.cb.prepareSubmission=async()=>{arms++;return{prepared:true};};consta=f.make(),[row]=awaita.list();awaitassert.rejects(a.prepare({credentialRef:row.credentialRef}));assert.equal(f.scripts,0);assert.deepEqual(awaita.fill({credentialRef:row.credentialRef}),{completed:true});assert.equal(arms,0);});
test('controlled prepare arms only once after native fill and returns sanitized status',async()=>{constf=fixture();f.c.policy.agents.scopes.push('vault:prepare-submit');f.c.policy.passwordManager.controlledSubmission={enabled:true,forms:[{id:'login',actionUrl:'https://work.example/session',usernameField:'user',passwordField:'pass'}]};letarmed=0,credential,after=0;f.c.webContents.executeJavaScriptInIsolatedWorld=async()=>({completed:true,formId:'login'});f.cb.prepareSubmission=asyncvalue=>{armed++;credential=value.credential;assert.equal(value.formId,'login');assert.equal(value.credential.password,'private-password');return{prepared:true,password:'must-not-export',formId:'private'};};f.cb.afterFill=()=>after++;consta=f.make(),[row]=awaita.list();assert.deepEqual(awaita.prepare({credentialRef:row.credentialRef}),{completed:true,prepared:true});assert.equal(armed,1);assert.equal(after,1);assert.equal(credential.password,'');assert.equal(credential.username,'');awaitassert.rejects(a.prepare({credentialRef:row.credentialRef}));assert.equal(armed,1);assert.doesNotMatch(JSON.stringify(f.events),/private-password|credentialRef/);});
test('revocation or failed trusted handoff stops native credential write and consumes reference',async()=>{for(constmodeof['revoked','error','aborted']){constf=fixture(),controller=newAbortController();f.cb.beforeFill=async()=>{if(mode==='revoked')f.invalidate();if(mode==='error')throwError('private handoff error');if(mode==='aborted')controller.abort();};consta=f.make(),[row]=awaita.list();awaitassert.rejects(a.fill({credentialRef:row.credentialRef},{signal:controller.signal}),{message:'Managed vault operation refused'});assert.equal(f.scripts,0);awaitassert.rejects(a.fill({credentialRef:row.credentialRef}));}});
test('controlled policy disabled and native renderer form mismatch never arm broker',async()=>{for(constmodeof['disabled','native-fail']){constf=fixture();f.c.policy.agents.scopes.push('vault:prepare-submit');f.c.policy.passwordManager.controlledSubmission={enabled:mode!=='disabled',forms:[{id:'login',actionUrl:'https://work.example/session',usernameField:'user',passwordField:'pass'}]};letarmed=0;f.cb.prepareSubmission=async()=>{armed++;return{prepared:true};};f.c.webContents.executeJavaScriptInIsolatedWorld=async()=>{throwError('Form changed');};consta=f.make(),[row]=awaita.list();awaitassert.rejects(a.prepare({credentialRef:row.credentialRef}));assert.equal(armed,0);}});
test('post-arm revocation and handoff completion failure cancel only the returned private lease',async()=>{for(constmodeof['revoked','after-fill-error']){constf=fixture();f.c.policy.agents.scopes.push('vault:prepare-submit');f.c.policy.passwordManager.controlledSubmission={enabled:true,forms:[{id:'login',actionUrl:'https://work.example/session',usernameField:'user',passwordField:'pass'}]};letcancelled=0,armed=0;f.c.webContents.executeJavaScriptInIsolatedWorld=async()=>({completed:true,formId:'login'});f.cb.prepareSubmission=async()=>{armed++;if(mode==='revoked')f.invalidate();return{prepared:true,cancel:()=>cancelled++};};if(mode==='after-fill-error')f.cb.afterFill=()=>{throwError('Private UI error');};consta=f.make(),[row]=awaita.list();awaitassert.rejects(a.prepare({credentialRef:row.credentialRef}),{message:'Managed vault operation refused'});assert.equal(armed,1);assert.equal(cancelled,1);awaitassert.rejects(a.prepare({credentialRef:row.credentialRef}));assert.equal(armed,1);}});