@@ -0,0 +1,62 @@
|
||||
import { MemoryKvPrimitives } from "../../plugos/lib/memory_kv_primitives.ts";
|
||||
import { assert, assertEquals } from "../../test_deps.ts";
|
||||
import { ChunkedKvStoreSpacePrimitives } from "./chunked_datastore_space_primitives.ts";
|
||||
import { EncryptedSpacePrimitives } from "./encrypted_space_primitives.ts";
|
||||
import { testSpacePrimitives } from "./space_primitives.test.ts";
|
||||
|
||||
Deno.test("Encrypted Space Primitives", async () => {
|
||||
// Using an in-memory store for testing
|
||||
const memoryKv = new MemoryKvPrimitives();
|
||||
const spacePrimitives = new EncryptedSpacePrimitives(
|
||||
new ChunkedKvStoreSpacePrimitives(
|
||||
memoryKv,
|
||||
1024 * 1024,
|
||||
),
|
||||
);
|
||||
assertEquals(false, await spacePrimitives.init());
|
||||
await spacePrimitives.setup("password");
|
||||
assertEquals(await spacePrimitives.fetchFileList(), []);
|
||||
await testSpacePrimitives(spacePrimitives);
|
||||
|
||||
// Let's try an incorrect password
|
||||
try {
|
||||
await spacePrimitives.login("wronk");
|
||||
assert(false);
|
||||
} catch (e: any) {
|
||||
assertEquals(e.message, "Incorrect password");
|
||||
}
|
||||
|
||||
// Now let's update the password
|
||||
await spacePrimitives.updatePassword("password", "password2");
|
||||
|
||||
try {
|
||||
await spacePrimitives.updatePassword("password", "password2");
|
||||
assert(false);
|
||||
} catch (e: any) {
|
||||
assertEquals(e.message, "Incorrect password");
|
||||
}
|
||||
|
||||
await spacePrimitives.writeFile(
|
||||
"test.txt",
|
||||
new TextEncoder().encode("Hello World"),
|
||||
);
|
||||
|
||||
// Let's do this again with the new password
|
||||
|
||||
const spacePrimitives2 = new EncryptedSpacePrimitives(
|
||||
new ChunkedKvStoreSpacePrimitives(
|
||||
memoryKv,
|
||||
1024 * 1024,
|
||||
),
|
||||
);
|
||||
assertEquals(true, await spacePrimitives2.init());
|
||||
await spacePrimitives2.login("password2");
|
||||
assertEquals(
|
||||
new TextDecoder().decode(
|
||||
(await spacePrimitives2.readFile("test.txt")).data,
|
||||
),
|
||||
"Hello World",
|
||||
);
|
||||
await spacePrimitives2.deleteFile("test.txt");
|
||||
await testSpacePrimitives(spacePrimitives2);
|
||||
});
|
||||
Reference in New Issue
Block a user