feat(dragdrop): drag & drop complet de fichiers/dossiers & intégration IA (#89)
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
/**
|
||||
* Frontend tests for Upload & Drag-and-Drop modules (#89).
|
||||
*/
|
||||
|
||||
import { strict as assert } from "node:assert";
|
||||
import { JSDOM } from "jsdom";
|
||||
|
||||
// JSDOM bootstrap
|
||||
const dom = new JSDOM(`<!DOCTYPE html><html><body><div id="vault-tree"></div></body></html>`, {
|
||||
url: "http://localhost:2020/",
|
||||
});
|
||||
const w = dom.window;
|
||||
globalThis.window = w;
|
||||
globalThis.document = w.document;
|
||||
globalThis.File = w.File;
|
||||
globalThis.FileReader = w.FileReader;
|
||||
Object.defineProperty(globalThis, "navigator", {
|
||||
value: w.navigator,
|
||||
configurable: true,
|
||||
writable: true,
|
||||
});
|
||||
|
||||
const { readDataTransferEntries } = await import("../../frontend/js/upload.js");
|
||||
|
||||
async function runTests() {
|
||||
console.log("Testing readDataTransferEntries empty input...");
|
||||
const resNull = await readDataTransferEntries(null);
|
||||
assert.deepEqual(resNull, []);
|
||||
|
||||
const resEmpty = await readDataTransferEntries([]);
|
||||
assert.deepEqual(resEmpty, []);
|
||||
|
||||
console.log("Testing readDataTransferEntries plain files...");
|
||||
const fakeFile1 = { name: "note1.md", webkitRelativePath: "folder/note1.md" };
|
||||
const fakeFile2 = { name: "logo.png", webkitRelativePath: "" };
|
||||
|
||||
const fakeItems = [
|
||||
{ getAsFile: () => fakeFile1 },
|
||||
{ getAsFile: () => fakeFile2 },
|
||||
];
|
||||
|
||||
const results = await readDataTransferEntries(fakeItems);
|
||||
assert.equal(results.length, 2);
|
||||
assert.equal(results[0].path, "folder/note1.md");
|
||||
assert.equal(results[0].isDir, false);
|
||||
assert.equal(results[1].path, "logo.png");
|
||||
assert.equal(results[1].isDir, false);
|
||||
|
||||
console.log("✅ All upload tests passed successfully!");
|
||||
}
|
||||
|
||||
runTests().catch((err) => {
|
||||
console.error("❌ Test failed:", err);
|
||||
process.exit(1);
|
||||
});
|
||||
Reference in New Issue
Block a user