import { readFileSync } from "node:fs"; const source = readFileSync(new URL("../src/features/files/FilesPage.tsx", import.meta.url), "utf8"); const normalized = source.replace(/\s+/g, " "); function assertIncludes(fragment, message) { if (!normalized.includes(fragment.replace(/\s+/g, " "))) throw new Error(message); } assertIncludes( "const target = options.target ?? currentActionTarget();", "uploads must prefer the explicit target supplied by the initiating interaction" ); assertIncludes( "const targetSpace = target ? findSpace(target.spaceId) : null;", "the upload owner must be resolved from the selected target" ); assertIncludes( "owner_type: targetSpace.owner_type, owner_id: targetSpace.owner_id, path: target.folderPath,", "the upload request must use the selected target owner and folder" ); assertIncludes( "async function uploadExternalFilesToTarget(fileList: FileList | File[], target: FileActionTarget) { await handleFilesUpload(fileList, { target }); }", "external drops must pass their concrete target without asynchronous dialog-state mutation" ); assertIncludes( "await uploadExternalFilesToTarget(event.dataTransfer.files, target);", "drop handling must forward the target on which the files were dropped" ); assertIncludes( "onFiles={(files) => handleFilesUpload(files, { target: activeDialogTarget || undefined })}", "the dialog picker/drop zone must snapshot its selected target for upload" ); console.log("Files upload target routing structure is intact.");