Cancel vault rereading without persisting a false document error
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
import {test} from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
import {retryDocumentExtraction,inspectStoredDocument} from '../src/services/storedDocument.js';
|
||||
test('cancelling stored document reading never writes a read error or publishes items',async()=>{
|
||||
const storage=Object.getOwnPropertyDescriptor(globalThis,'localStorage'),original=globalThis.fetch;
|
||||
Object.defineProperty(globalThis,'localStorage',{configurable:true,value:{getItem:()=>'qa-token'}});
|
||||
const c=new AbortController();const calls=[];
|
||||
try {
|
||||
globalThis.fetch=async(url,{signal})=>{calls.push(url);return new Promise((resolve,reject)=>{
|
||||
signal.addEventListener('abort',()=>reject(new DOMException('Aborted','AbortError')),{once:true});c.abort();
|
||||
});};
|
||||
await assert.rejects(retryDocumentExtraction({id:'doc',ad:'source.docx',tur:'ihale',ikn:'2026/123'},{signal:c.signal}),{name:'AbortError'});
|
||||
assert.deepEqual(calls,['/api/me/documents/text?id=doc']);
|
||||
} finally {globalThis.fetch=original;if(storage)Object.defineProperty(globalThis,'localStorage',storage);else delete globalThis.localStorage;}
|
||||
});
|
||||
test('late private office text is discarded when account changes',async()=>{
|
||||
const storage=Object.getOwnPropertyDescriptor(globalThis,'localStorage'),original=globalThis.fetch;let token='first';
|
||||
Object.defineProperty(globalThis,'localStorage',{configurable:true,value:{getItem:()=>token}});
|
||||
try {
|
||||
globalThis.fetch=async()=>{token='second';return Response.json({success:true,metin:'Private source'});};
|
||||
await assert.rejects(inspectStoredDocument({id:'doc',ad:'source.docx'}),/Oturum değişti/);
|
||||
} finally {globalThis.fetch=original;if(storage)Object.defineProperty(globalThis,'localStorage',storage);else delete globalThis.localStorage;}
|
||||
});
|
||||
Reference in New Issue
Block a user