github.com/treeverse/lakefs@v1.24.1-0.20240520134607-95648127bfb0/webui/test/e2e/poms/repositoriesPage.ts (about) 1 import { Locator, Page, expect } from "@playwright/test"; 2 3 const SAMPLE_REPO_README_TITLE = "Welcome to the Lake!"; 4 const REGULAR_REPO_README_TITLE = "To get started with this repository:"; 5 6 export class RepositoriesPage { 7 private page: Page; 8 9 public noRepositoriesTitleLocator: Locator; 10 public readOnlyIndicatorLocator: Locator; 11 public uploadButtonLocator: Locator; 12 public createRepositoryButtonLocator: Locator; 13 public searchInputLocator: Locator; 14 15 constructor(page: Page) { 16 this.page = page; 17 this.noRepositoriesTitleLocator = this.page.getByText("Welcome to LakeFS!"); 18 this.readOnlyIndicatorLocator = this.page.locator("text=Read-only"); 19 this.uploadButtonLocator = this.page.locator("text=Upload Object"); 20 this.createRepositoryButtonLocator = this.page.getByRole("button", { name: "Create Repository" }); 21 this.searchInputLocator = this.page.getByPlaceholder("Find a repository..."); 22 } 23 24 async goto(): Promise<void> { 25 await this.page.goto("/repositories"); 26 } 27 28 async goToRepository(repoName: string): Promise<void> { 29 await this.page.getByRole("link", { name: repoName, exact: true }).click(); 30 } 31 32 async createSampleRepository(): Promise<void> { 33 await this.page.getByRole("button", { name: "Create Sample Repository" }).click(); 34 expect(this.page.getByRole("heading", { name: SAMPLE_REPO_README_TITLE })).toBeVisible(); 35 } 36 37 async createRepository(repoName: string, includeSampleData: boolean): Promise<void> { 38 await this.createRepositoryButtonLocator.click(); 39 await this.page.getByLabel("Repository ID").fill(repoName); 40 if (includeSampleData) { 41 await this.page.getByLabel("Add sample data, hooks, and configuration").check(); 42 } 43 await this.page.getByRole("dialog").getByRole("button", { name: "Create Repository", exact: true }).click(); 44 if (includeSampleData) { 45 await expect(this.page.getByRole("heading", { name: SAMPLE_REPO_README_TITLE })).toBeVisible(); 46 return; 47 } 48 expect(this.page.getByRole("heading", { name: REGULAR_REPO_README_TITLE })).toBeVisible(); 49 } 50 }