| 
									
										
										
										
											2025-01-12 17:28:41 +02:00
										 |  |  | import { test, expect, Page } from "@playwright/test"; | 
					
						
							|  |  |  | import App from "./support/app"; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-13 17:42:21 +02:00
										 |  |  | test.afterEach(async ({ page, context }) => { | 
					
						
							|  |  |  |     const app = new App(page, context); | 
					
						
							|  |  |  |     // Ensure English is set after each locale change to avoid any leaks to other tests.
 | 
					
						
							|  |  |  |     await app.setOption("locale", "en"); | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-12 18:05:24 +02:00
										 |  |  | test("Displays translation on desktop", async ({ page, context }) => { | 
					
						
							|  |  |  |     const app = new App(page, context); | 
					
						
							| 
									
										
										
										
											2025-01-12 17:43:16 +02:00
										 |  |  |     await app.goto(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-03-02 20:47:57 +01:00
										 |  |  |     await expect(page.locator("#left-pane .quick-search input")).toHaveAttribute("placeholder", "Quick search"); | 
					
						
							| 
									
										
										
										
											2025-01-12 17:43:16 +02:00
										 |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-12 18:05:24 +02:00
										 |  |  | test("Displays translation on mobile", async ({ page, context }) => { | 
					
						
							|  |  |  |     const app = new App(page, context); | 
					
						
							|  |  |  |     await app.goto({ isMobile: true }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-03-02 20:47:57 +01:00
										 |  |  |     await expect(page.locator("#mobile-sidebar-wrapper .quick-search input")).toHaveAttribute("placeholder", "Quick search"); | 
					
						
							| 
									
										
										
										
											2025-01-12 18:05:24 +02:00
										 |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | test("Displays translations in Settings", async ({ page, context }) => { | 
					
						
							|  |  |  |     const app = new App(page, context); | 
					
						
							| 
									
										
										
										
											2025-01-12 17:28:41 +02:00
										 |  |  |     await app.goto(); | 
					
						
							|  |  |  |     await app.closeAllTabs(); | 
					
						
							|  |  |  |     await app.goToSettings(); | 
					
						
							| 
									
										
										
										
											2025-03-13 06:10:09 +02:00
										 |  |  |     await app.noteTree.getByText("Language & Region").click(); | 
					
						
							| 
									
										
										
										
											2025-01-12 17:28:41 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-12 17:43:16 +02:00
										 |  |  |     await expect(app.currentNoteSplit).toContainText("Localization"); | 
					
						
							|  |  |  |     await expect(app.currentNoteSplit).toContainText("Language"); | 
					
						
							| 
									
										
										
										
											2025-01-12 17:28:41 +02:00
										 |  |  | }); | 
					
						
							| 
									
										
										
										
											2025-01-12 17:36:10 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-12 18:05:24 +02:00
										 |  |  | test("User can change language from settings", async ({ page, context }) => { | 
					
						
							|  |  |  |     const app = new App(page, context); | 
					
						
							| 
									
										
										
										
											2025-01-12 17:36:10 +02:00
										 |  |  |     await app.goto(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     await app.closeAllTabs(); | 
					
						
							|  |  |  |     await app.goToSettings(); | 
					
						
							| 
									
										
										
										
											2025-03-13 06:10:09 +02:00
										 |  |  |     await app.noteTree.getByText("Language & Region").click(); | 
					
						
							| 
									
										
										
										
											2025-01-12 17:36:10 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     // Check that the default value (English) is set.
 | 
					
						
							| 
									
										
										
										
											2025-03-13 06:10:09 +02:00
										 |  |  |     await expect(app.currentNoteSplit).toContainText("First day of the week"); | 
					
						
							| 
									
										
										
										
											2025-03-07 20:34:08 +02:00
										 |  |  |     const languageCombobox = app.currentNoteSplit.getByRole("combobox").first(); | 
					
						
							| 
									
										
										
										
											2025-01-12 17:36:10 +02:00
										 |  |  |     await expect(languageCombobox).toHaveValue("en"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // Select Chinese and ensure the translation is set.
 | 
					
						
							| 
									
										
										
										
											2025-01-12 23:41:27 +02:00
										 |  |  |     await languageCombobox.selectOption("cn"); | 
					
						
							| 
									
										
										
										
											2025-03-26 19:11:07 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     // Press the refresh button.
 | 
					
						
							|  |  |  |     await app.currentNoteSplit.getByRole("button", { name: "Restart the application" }).click(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-03-13 06:10:09 +02:00
										 |  |  |     await expect(app.currentNoteSplit).toContainText("一周的第一天", { timeout: 15000 }); | 
					
						
							| 
									
										
										
										
											2025-03-07 20:34:08 +02:00
										 |  |  |     await expect(languageCombobox).toHaveValue("cn"); | 
					
						
							| 
									
										
										
										
											2025-01-12 17:36:10 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     // Select English again.
 | 
					
						
							| 
									
										
										
										
											2025-01-12 23:41:27 +02:00
										 |  |  |     await languageCombobox.selectOption("en"); | 
					
						
							| 
									
										
										
										
											2025-01-13 17:46:57 +02:00
										 |  |  |     await expect(app.currentNoteSplit).toContainText("Language", { timeout: 15000 }); | 
					
						
							| 
									
										
										
										
											2025-03-07 20:34:08 +02:00
										 |  |  |     await expect(languageCombobox).toHaveValue("en"); | 
					
						
							| 
									
										
										
										
											2025-01-12 17:36:10 +02:00
										 |  |  | }); |