mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 11:16:05 +08:00 
			
		
		
		
	test(etapi): port note content
This commit is contained in:
		
							parent
							
								
									5b051db3eb
								
							
						
					
					
						commit
						d75e86789d
					
				
					 4 changed files with 74 additions and 80 deletions
				
			
		|  | @ -1,25 +0,0 @@ | |||
| POST {{triliumHost}}/etapi/create-note | ||||
| Authorization: {{authToken}} | ||||
| Content-Type: application/json | ||||
| 
 | ||||
| { | ||||
|   "parentNoteId": "root", | ||||
|   "title": "Hello", | ||||
|   "type": "text", | ||||
|   "content": "Hi there!" | ||||
| } | ||||
| 
 | ||||
| > {% | ||||
|     client.global.set("createdNoteId", response.body.note.noteId); | ||||
|     client.global.set("createdBranchId", response.body.branch.branchId); | ||||
| %} | ||||
| 
 | ||||
| ### | ||||
| 
 | ||||
| GET {{triliumHost}}/etapi/notes/{{createdNoteId}}/content | ||||
| Authorization: {{authToken}} | ||||
| 
 | ||||
| > {% | ||||
|     client.assert(response.status === 200); | ||||
|     client.assert(response.body === "Hi there!"); | ||||
| %} | ||||
|  | @ -1,25 +0,0 @@ | |||
| POST {{triliumHost}}/etapi/create-note | ||||
| Authorization: {{authToken}} | ||||
| Content-Type: application/json | ||||
| 
 | ||||
| { | ||||
|   "parentNoteId": "root", | ||||
|   "title": "Hello", | ||||
|   "type": "image", | ||||
|   "mime": "image/png", | ||||
|   "content": "" | ||||
| } | ||||
| 
 | ||||
| > {% client.global.set("createdNoteId", response.body.note.noteId); %} | ||||
| 
 | ||||
| ### | ||||
| 
 | ||||
| PUT {{triliumHost}}/etapi/notes/{{createdNoteId}}/content | ||||
| Authorization: {{authToken}} | ||||
| Content-Type: application/octet-stream | ||||
| Content-Transfer-Encoding: binary | ||||
| 
 | ||||
| < ../images/icon-color.png | ||||
| 
 | ||||
| > {% client.assert(response.status === 204); %} | ||||
| 
 | ||||
|  | @ -1,30 +0,0 @@ | |||
| POST {{triliumHost}}/etapi/create-note | ||||
| Authorization: {{authToken}} | ||||
| Content-Type: application/json | ||||
| 
 | ||||
| { | ||||
|   "parentNoteId": "root", | ||||
|   "title": "Hello", | ||||
|   "type": "code", | ||||
|   "mime": "text/plain", | ||||
|   "content": "Hi there!" | ||||
| } | ||||
| 
 | ||||
| > {% client.global.set("createdNoteId", response.body.note.noteId); %} | ||||
| 
 | ||||
| ### | ||||
| 
 | ||||
| PUT {{triliumHost}}/etapi/notes/{{createdNoteId}}/content | ||||
| Authorization: {{authToken}} | ||||
| Content-Type: text/plain | ||||
| 
 | ||||
| Changed content | ||||
| 
 | ||||
| > {% client.assert(response.status === 204); %} | ||||
| 
 | ||||
| ### | ||||
| 
 | ||||
| GET {{triliumHost}}/etapi/notes/{{createdNoteId}}/content | ||||
| Authorization: {{authToken}} | ||||
| 
 | ||||
| > {% client.assert(response.body === "Changed content"); %} | ||||
							
								
								
									
										74
									
								
								apps/server/spec/etapi/note-content.spec.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								apps/server/spec/etapi/note-content.spec.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,74 @@ | |||
| import { Application } from "express"; | ||||
| import { beforeAll, describe, expect, it } from "vitest"; | ||||
| import supertest from "supertest"; | ||||
| import { createNote, login } from "./utils.js"; | ||||
| import config from "../../src/services/config.js"; | ||||
| import { randomUUID } from "crypto"; | ||||
| 
 | ||||
| let app: Application; | ||||
| let token: string; | ||||
| 
 | ||||
| const USER = "etapi"; | ||||
| let createdNoteId: string; | ||||
| let createdBranchId: string; | ||||
| 
 | ||||
| describe("etapi/note-content", () => { | ||||
|     beforeAll(async () => { | ||||
|         config.General.noAuthentication = false; | ||||
|         const buildApp = (await (import("../../src/app.js"))).default; | ||||
|         app = await buildApp(); | ||||
|         token = await login(app); | ||||
| 
 | ||||
|         ({ createdNoteId, createdBranchId } = await createNote(app, token)); | ||||
|     }); | ||||
| 
 | ||||
|     it("get content", async () => { | ||||
|         const response = await getContentResponse(); | ||||
|         expect(response.text).toStrictEqual("Hi there!"); | ||||
|     }); | ||||
| 
 | ||||
|     it("put note content", async () => { | ||||
|         const text = "Changed content"; | ||||
|         await supertest(app) | ||||
|             .put(`/etapi/notes/${createdNoteId}/content`) | ||||
|             .auth(USER, token, { "type": "basic"}) | ||||
|             .set("Content-Type", "text/plain") | ||||
|             .send(text) | ||||
|             .expect(204); | ||||
| 
 | ||||
|         const response = await getContentResponse(); | ||||
|         expect(response.text).toStrictEqual(text); | ||||
|     }); | ||||
| 
 | ||||
|     it("put note content binary", async () => { | ||||
|         // First, create a binary note
 | ||||
|         const response = await supertest(app) | ||||
|             .post("/etapi/create-note") | ||||
|             .auth("etapi", token, { "type": "basic"}) | ||||
|             .send({ | ||||
|                 "parentNoteId": "root", | ||||
|                 "title": "Hello", | ||||
|                 "mime": "image/png", | ||||
|                 "type": "image", | ||||
|                 "content": "" | ||||
|             }) | ||||
|             .expect(201); | ||||
|         const createdNoteId = response.body.note.noteId; | ||||
| 
 | ||||
|         // Put binary content
 | ||||
|         await supertest(app) | ||||
|             .put(`/etapi/notes/${createdNoteId}/content`) | ||||
|             .auth(USER, token, { "type": "basic"}) | ||||
|             .set("Content-Type", "application/octet-stream") | ||||
|             .set("Content-Transfer-Encoding", "binary") | ||||
|             .send(Buffer.from("Hello world")) | ||||
|             .expect(204); | ||||
|     }); | ||||
| 
 | ||||
|     function getContentResponse() { | ||||
|         return supertest(app) | ||||
|             .get(`/etapi/notes/${createdNoteId}/content`) | ||||
|             .auth(USER, token, { "type": "basic"}) | ||||
|             .expect(200); | ||||
|     } | ||||
| }); | ||||
		Loading…
	
	Add table
		
		Reference in a new issue