mirror of
				https://github.com/TriliumNext/Notes.git
				synced 2025-10-26 17:41:34 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			108 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			108 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import crypto from "crypto";
 | |
| import etapi from "../support/etapi";
 | |
| 
 | |
| etapi.describeEtapi("notes", () => {
 | |
|   it("create", async () => {
 | |
|     const { note, branch } = await etapi.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 etapi.getEtapi(`notes/${note.noteId}`);
 | |
|     expect(rNote.title).toEqual("Hello World!");
 | |
| 
 | |
|     const rContent = await (
 | |
|       await etapi.getEtapiContent(`notes/${note.noteId}/content`)
 | |
|     ).text();
 | |
|     expect(rContent).toEqual("Content");
 | |
| 
 | |
|     const rBranch = await etapi.getEtapi(`branches/${branch.branchId}`);
 | |
|     expect(rBranch.parentNoteId).toEqual("root");
 | |
|     expect(rBranch.prefix).toEqual("Custom prefix");
 | |
|   });
 | |
| 
 | |
|   it("patch", async () => {
 | |
|     const { note } = await etapi.postEtapi("create-note", {
 | |
|       parentNoteId: "root",
 | |
|       type: "text",
 | |
|       title: "Hello World!",
 | |
|       content: "Content",
 | |
|     });
 | |
| 
 | |
|     await etapi.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 etapi.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 etapi.postEtapi("create-note", {
 | |
|       parentNoteId: "root",
 | |
|       type: "text",
 | |
|       title: "Hello World!",
 | |
|       content: "Content",
 | |
|     });
 | |
| 
 | |
|     await etapi.putEtapiContent(`notes/${note.noteId}/content`, "new content");
 | |
| 
 | |
|     const rContent = await (
 | |
|       await etapi.getEtapiContent(`notes/${note.noteId}/content`)
 | |
|     ).text();
 | |
|     expect(rContent).toEqual("new content");
 | |
|   });
 | |
| 
 | |
|   it("create / update binary content", async () => {
 | |
|     const { note } = await etapi.postEtapi("create-note", {
 | |
|       parentNoteId: "root",
 | |
|       type: "file",
 | |
|       title: "Hello World!",
 | |
|       content: "ZZZ",
 | |
|     });
 | |
| 
 | |
|     const updatedContent = crypto.randomBytes(16);
 | |
| 
 | |
|     await etapi.putEtapiContent(`notes/${note.noteId}/content`, updatedContent);
 | |
| 
 | |
|     const rContent = await (
 | |
|       await etapi.getEtapiContent(`notes/${note.noteId}/content`)
 | |
|     ).arrayBuffer();
 | |
|     expect(Buffer.from(new Uint8Array(rContent))).toEqual(updatedContent);
 | |
|   });
 | |
| 
 | |
|   it("delete note", async () => {
 | |
|     const { note } = await etapi.postEtapi("create-note", {
 | |
|       parentNoteId: "root",
 | |
|       type: "text",
 | |
|       title: "Hello World!",
 | |
|       content: "Content",
 | |
|     });
 | |
| 
 | |
|     await etapi.deleteEtapi(`notes/${note.noteId}`);
 | |
| 
 | |
|     const resp = await etapi.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.`);
 | |
|   });
 | |
| });
 | 
