71 lines
2.0 KiB
TypeScript
71 lines
2.0 KiB
TypeScript
import { resolve } from "path";
|
|
import { describe, it, beforeEach } from "mocha";
|
|
import { expect } from "chai";
|
|
// import { fs, vol } from "memfs"
|
|
|
|
import type { Vault } from "../src/index";
|
|
import { OnePassword } from "../src/index";
|
|
// import adapter from "../src/adapters/node";
|
|
|
|
describe("OnePassword", () => {
|
|
const freddy = resolve(__dirname, "../freddy-2013-12-04.opvault");
|
|
|
|
describe("getProfileNames", () => {
|
|
it("freddy", async () => {
|
|
const instance = new OnePassword({ path: freddy });
|
|
expect(await instance.getProfileNames()).to.deep.equal(["default"]);
|
|
});
|
|
|
|
it.skip("ignores faulty folders", async () => {});
|
|
});
|
|
|
|
describe("unlock", () => {
|
|
let vault: Vault;
|
|
|
|
beforeEach(async () => {
|
|
vault = await new OnePassword({ path: freddy }).getProfile("default");
|
|
});
|
|
|
|
it("accepts correct password", async () => {
|
|
await expect(vault.unlock("freddy")).to.be.fulfilled;
|
|
expect(vault.isLocked).to.be.false;
|
|
});
|
|
|
|
it("rejects wrong password", () => {
|
|
["Freddy", "_freddy", ""].forEach(async (password) => {
|
|
await expect(vault.unlock(password)).to.be.rejectedWith(
|
|
"Invalid password"
|
|
);
|
|
expect(vault.isLocked).to.be.true;
|
|
});
|
|
});
|
|
});
|
|
|
|
describe("content", () => {
|
|
let vault: Vault;
|
|
|
|
beforeEach(async () => {
|
|
vault = await new OnePassword({ path: freddy }).getProfile("default");
|
|
await vault.unlock("freddy");
|
|
});
|
|
|
|
it("reads overviews", () => {
|
|
const overviews = vault.overviews.values();
|
|
expect(overviews).to.have.lengthOf(29);
|
|
});
|
|
});
|
|
|
|
describe("lock", () => {
|
|
it("locks", async () => {
|
|
const instance = new OnePassword({ path: freddy });
|
|
const vault = await instance.getProfile("default");
|
|
await vault.unlock("freddy");
|
|
expect(vault.isLocked).to.be.false;
|
|
|
|
vault.lock();
|
|
expect(vault.isLocked).to.be.true;
|
|
expect(() => vault.overviews.values()).to.throw();
|
|
});
|
|
});
|
|
});
|