| 
									
										
										
										
											2025-06-03 19:32:17 +03:00
										 |  |  | import { beforeAll, describe, expect, it } from "vitest"; | 
					
						
							|  |  |  | import config from "../../src/services/config.js"; | 
					
						
							|  |  |  | import { login } from "./utils.js"; | 
					
						
							|  |  |  | import { Application } from "express"; | 
					
						
							|  |  |  | import supertest from "supertest"; | 
					
						
							| 
									
										
										
										
											2025-06-03 20:16:39 +03:00
										 |  |  | import date_notes from "../../src/services/date_notes.js"; | 
					
						
							|  |  |  | import cls from "../../src/services/cls.js"; | 
					
						
							| 
									
										
										
										
											2025-06-03 19:32:17 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | let app: Application; | 
					
						
							|  |  |  | let token: string; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const USER = "etapi"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | describe("etapi/get-date-notes", () => { | 
					
						
							|  |  |  |     beforeAll(async () => { | 
					
						
							|  |  |  |         config.General.noAuthentication = false; | 
					
						
							|  |  |  |         const buildApp = (await (import("../../src/app.js"))).default; | 
					
						
							|  |  |  |         app = await buildApp(); | 
					
						
							|  |  |  |         token = await login(app); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     it("obtains inbox", async () => { | 
					
						
							|  |  |  |         await supertest(app) | 
					
						
							|  |  |  |             .get("/etapi/inbox/2022-01-01") | 
					
						
							|  |  |  |             .auth(USER, token, { "type": "basic"}) | 
					
						
							|  |  |  |             .expect(200); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     describe("days", () => { | 
					
						
							|  |  |  |         it("obtains day from calendar", async () => { | 
					
						
							|  |  |  |             await supertest(app) | 
					
						
							|  |  |  |                 .get("/etapi/calendar/days/2022-01-01") | 
					
						
							|  |  |  |                 .auth(USER, token, { "type": "basic"}) | 
					
						
							|  |  |  |                 .expect(200); | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         it("detects invalid date", async () => { | 
					
						
							|  |  |  |             const response = await supertest(app) | 
					
						
							|  |  |  |                 .get("/etapi/calendar/days/2022-1") | 
					
						
							|  |  |  |                 .auth(USER, token, { "type": "basic"}) | 
					
						
							|  |  |  |                 .expect(400); | 
					
						
							|  |  |  |             expect(response.body.code).toStrictEqual("DATE_INVALID"); | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     describe("weeks", () => { | 
					
						
							| 
									
										
										
										
											2025-06-03 20:16:39 +03:00
										 |  |  |         beforeAll(() => { | 
					
						
							|  |  |  |             cls.init(() => { | 
					
						
							|  |  |  |                 const rootCalendarNote = date_notes.getRootCalendarNote(); | 
					
						
							|  |  |  |                 rootCalendarNote.setLabel("enableWeekNote"); | 
					
						
							|  |  |  |             }); | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-03 19:32:17 +03:00
										 |  |  |         it("obtains week calendar", async () => { | 
					
						
							|  |  |  |             await supertest(app) | 
					
						
							| 
									
										
										
										
											2025-06-03 20:16:39 +03:00
										 |  |  |                 .get("/etapi/calendar/weeks/2022-W01") | 
					
						
							| 
									
										
										
										
											2025-06-03 19:32:17 +03:00
										 |  |  |                 .auth(USER, token, { "type": "basic"}) | 
					
						
							|  |  |  |                 .expect(200); | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         it("detects invalid date", async () => { | 
					
						
							|  |  |  |             const response = await supertest(app) | 
					
						
							|  |  |  |                 .get("/etapi/calendar/weeks/2022-1") | 
					
						
							|  |  |  |                 .auth(USER, token, { "type": "basic"}) | 
					
						
							|  |  |  |                 .expect(400); | 
					
						
							| 
									
										
										
										
											2025-06-03 20:16:39 +03:00
										 |  |  |             expect(response.body.code).toStrictEqual("WEEK_INVALID"); | 
					
						
							| 
									
										
										
										
											2025-06-03 19:32:17 +03:00
										 |  |  |         }); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     describe("months", () => { | 
					
						
							|  |  |  |         it("obtains month calendar", async () => { | 
					
						
							|  |  |  |             await supertest(app) | 
					
						
							| 
									
										
										
										
											2025-06-03 20:16:39 +03:00
										 |  |  |                 .get("/etapi/calendar/months/2022-01") | 
					
						
							| 
									
										
										
										
											2025-06-03 19:32:17 +03:00
										 |  |  |                 .auth(USER, token, { "type": "basic"}) | 
					
						
							|  |  |  |                 .expect(200); | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         it("detects invalid month", async () => { | 
					
						
							|  |  |  |             const response = await supertest(app) | 
					
						
							|  |  |  |                 .get("/etapi/calendar/months/2022-1") | 
					
						
							|  |  |  |                 .auth(USER, token, { "type": "basic"}) | 
					
						
							|  |  |  |                 .expect(400); | 
					
						
							|  |  |  |             expect(response.body.code).toStrictEqual("MONTH_INVALID"); | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     describe("years", () => { | 
					
						
							|  |  |  |         it("obtains year calendar", async () => { | 
					
						
							|  |  |  |             await supertest(app) | 
					
						
							|  |  |  |                 .get("/etapi/calendar/years/2022") | 
					
						
							|  |  |  |                 .auth(USER, token, { "type": "basic"}) | 
					
						
							|  |  |  |                 .expect(200); | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         it("detects invalid year", async () => { | 
					
						
							|  |  |  |             const response = await supertest(app) | 
					
						
							|  |  |  |                 .get("/etapi/calendar/years/202") | 
					
						
							|  |  |  |                 .auth(USER, token, { "type": "basic"}) | 
					
						
							|  |  |  |                 .expect(400); | 
					
						
							|  |  |  |             expect(response.body.code).toStrictEqual("YEAR_INVALID"); | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | }); |