mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-04 05:28:59 +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();
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
}
 |