-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathdocument.test.ts
58 lines (52 loc) · 1.58 KB
/
document.test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import { existsSync, rmSync } from "fs";
import Joi from "joi";
import { document } from "../src";
describe("document", () => {
it("CRUDs documents", () => {
const create = document.create("Created Value", {
vault: process.env.OP_VAULT,
title: "Created Document",
fileName: "created-doc.txt",
});
expect(create).toMatchSchema(
Joi.object({
uuid: Joi.string().required(),
createdAt: Joi.string().required(),
updatedAt: Joi.string().required(),
vaultUuid: Joi.string().required(),
}).required(),
);
const list = document.list({ vault: process.env.OP_VAULT });
expect(list).toMatchSchema(
Joi.array()
.items({
id: Joi.string().required(),
title: Joi.string().required(),
version: Joi.number().required(),
vault: {
id: Joi.string().required().allow(""),
name: Joi.string().allow(""),
},
last_edited_by: Joi.string().optional(),
created_at: Joi.string().required(),
updated_at: Joi.string().required(),
"overview.ainfo": Joi.string(),
})
.required(),
);
const edit = document.edit(create.uuid, "Updated Value", {
title: "Updated Value",
fileName: "updated-doc.txt",
});
expect(edit).toBeUndefined();
const get = document.get(create.uuid);
expect(get).toMatchSchema(Joi.string().required());
const fileName = `${__dirname}/test.txt`;
const toFile = document.toFile(create.uuid, `${__dirname}/test.txt`);
expect(toFile).toBeUndefined();
expect(existsSync(fileName)).toBe(true);
rmSync(fileName);
const del = document.delete(create.uuid);
expect(del).toBeUndefined();
});
});