mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 11:39:01 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			54 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { expect, Locator, Page } from "@playwright/test";
 | |
| 
 | |
| export default class App {
 | |
| 
 | |
|     readonly noteTree: Locator;
 | |
|     readonly currentNoteSplit: Locator;
 | |
|     readonly currentNoteSplitTitle: Locator;
 | |
|     readonly currentNoteSplitRibbon: Locator;
 | |
|     readonly currentNoteSplitContent: Locator;
 | |
|     page: Page;
 | |
| 
 | |
|     constructor(page: Page) {
 | |
|         this.page = page;
 | |
|         this.noteTree = page.locator(".tree-wrapper");
 | |
|         this.currentNoteSplit = page.locator(".note-split:not(.hidden-ext)");
 | |
|         this.currentNoteSplitTitle = this.currentNoteSplit.locator(".note-title");
 | |
|         this.currentNoteSplitRibbon = this.currentNoteSplit.locator(".ribbon-container");
 | |
|         this.currentNoteSplitContent = this.currentNoteSplit.locator(".note-detail-printable.visible");
 | |
|     }
 | |
| 
 | |
|     async selectNoteInNoteTree(noteTitle: string) {
 | |
|         const item = this.noteTree.locator(`span.fancytree-node`, { hasText: noteTitle });
 | |
|         await item.click();
 | |
|         await expect(this.currentNoteSplitTitle).toHaveValue(noteTitle);
 | |
|     }
 | |
| 
 | |
|     async goToRibbonTab(tabName: string) {
 | |
|         await this.currentNoteSplitRibbon.locator(`.ribbon-tab-title`, { hasText: tabName }).click();
 | |
|     }
 | |
| 
 | |
|     async setNoteShared(shared: boolean) {
 | |
|         await this.goToRibbonTab("Basic Properties");
 | |
| 
 | |
|         // Ensure the initial state.
 | |
|         const switchButton = this.currentNoteSplitRibbon.locator(`.shared-switch-container .switch-button`);
 | |
|         if (shared) {
 | |
|             await expect(switchButton.locator("input")).not.toBeChecked();
 | |
|         } else {
 | |
|             await expect(switchButton.locator("input")).toBeChecked();
 | |
|         }
 | |
| 
 | |
|         // Click the switch to change the state.
 | |
|         await switchButton.click();
 | |
| 
 | |
|         // Verify the state after clicking.
 | |
|         if (shared) {
 | |
|             await expect(switchButton.locator("input")).toBeChecked();
 | |
|         } else {
 | |
|             await expect(switchButton.locator("input")).not.toBeChecked();
 | |
|         }
 | |
|     }
 | |
| 
 | |
| }
 | 
