mirror of
https://github.com/zadam/trilium.git
synced 2025-03-01 14:22:32 +01:00
110 lines
3.6 KiB
JavaScript
110 lines
3.6 KiB
JavaScript
const crypto = require('crypto');
|
|
const {
|
|
deleteEtapi,
|
|
getEtapiResponse,
|
|
describeEtapi, postEtapi,
|
|
getEtapi,
|
|
getEtapiContent,
|
|
patchEtapi, putEtapi,
|
|
putEtapiContent
|
|
} = require("../support/etapi");
|
|
|
|
describeEtapi("notes", () => {
|
|
it("create", async () => {
|
|
const {note, branch} = await postEtapi('create-note', {
|
|
parentNoteId: 'root',
|
|
type: 'text',
|
|
title: 'Hello World!',
|
|
content: 'Content',
|
|
prefix: 'Custom prefix'
|
|
});
|
|
|
|
expect(note.title).toEqual("Hello World!");
|
|
expect(branch.parentNoteId).toEqual("root");
|
|
expect(branch.prefix).toEqual("Custom prefix");
|
|
|
|
const rNote = await getEtapi(`notes/${note.noteId}`);
|
|
expect(rNote.title).toEqual("Hello World!");
|
|
|
|
const rContent = await (await getEtapiContent(`notes/${note.noteId}/content`)).text();
|
|
expect(rContent).toEqual("Content");
|
|
|
|
const rBranch = await getEtapi(`branches/${branch.branchId}`);
|
|
expect(rBranch.parentNoteId).toEqual("root");
|
|
expect(rBranch.prefix).toEqual("Custom prefix");
|
|
});
|
|
|
|
it("patch", async () => {
|
|
const {note} = await postEtapi('create-note', {
|
|
parentNoteId: 'root',
|
|
type: 'text',
|
|
title: 'Hello World!',
|
|
content: 'Content'
|
|
});
|
|
|
|
await patchEtapi(`notes/${note.noteId}`, {
|
|
title: 'new title',
|
|
type: 'code',
|
|
mime: 'text/apl',
|
|
dateCreated: '2000-01-01 12:34:56.999+0200',
|
|
utcDateCreated: '2000-01-01 10:34:56.999Z',
|
|
});
|
|
|
|
const rNote = await getEtapi(`notes/${note.noteId}`);
|
|
expect(rNote.title).toEqual("new title");
|
|
expect(rNote.type).toEqual("code");
|
|
expect(rNote.mime).toEqual("text/apl");
|
|
expect(rNote.dateCreated).toEqual("2000-01-01 12:34:56.999+0200");
|
|
expect(rNote.utcDateCreated).toEqual("2000-01-01 10:34:56.999Z");
|
|
});
|
|
|
|
it("update content", async () => {
|
|
const {note} = await postEtapi('create-note', {
|
|
parentNoteId: 'root',
|
|
type: 'text',
|
|
title: 'Hello World!',
|
|
content: 'Content'
|
|
});
|
|
|
|
await putEtapiContent(`notes/${note.noteId}/content`, "new content");
|
|
|
|
const rContent = await (await getEtapiContent(`notes/${note.noteId}/content`)).text();
|
|
expect(rContent).toEqual("new content");
|
|
});
|
|
|
|
it("create / update binary content", async () => {
|
|
const {note} = await postEtapi('create-note', {
|
|
parentNoteId: 'root',
|
|
type: 'file',
|
|
title: 'Hello World!',
|
|
content: 'ZZZ'
|
|
});
|
|
|
|
const updatedContent = crypto.randomBytes(16);
|
|
|
|
await putEtapiContent(`notes/${note.noteId}/content`, updatedContent);
|
|
|
|
const rContent = await (await getEtapiContent(`notes/${note.noteId}/content`)).arrayBuffer();
|
|
expect(Buffer.from(new Uint8Array(rContent))).toEqual(updatedContent);
|
|
});
|
|
|
|
it("delete note", async () => {
|
|
const {note} = await postEtapi('create-note', {
|
|
parentNoteId: 'root',
|
|
type: 'text',
|
|
title: 'Hello World!',
|
|
content: 'Content'
|
|
});
|
|
|
|
await deleteEtapi(`notes/${note.noteId}`);
|
|
|
|
const resp = await getEtapiResponse(`notes/${note.noteId}`);
|
|
expect(resp.status).toEqual(404);
|
|
|
|
const error = await resp.json();
|
|
expect(error.status).toEqual(404);
|
|
expect(error.code).toEqual("NOTE_NOT_FOUND");
|
|
expect(error.message).toEqual(`Note '${note.noteId}' not found.`);
|
|
});
|
|
});
|