import { Page, Locator, expect } from "@playwright/test" export class AddIdentityPage { readonly page: Page readonly primaryTitle: Locator readonly secondaryTitle: Locator readonly label: Locator readonly dropdownType: Locator readonly saveButton: Locator readonly cancelButton: Locator public constructor(page: Page) { this.page = page; this.primaryTitle = this.page.getByRole('heading', { name: 'My wallet' }) this.secondaryTitle = this.page.getByRole('heading', { name: ' Add a new Identity (DID)' }) this.label = this.page.getByPlaceholder('Label') this.dropdownType = this.page.getByLabel('Type') this.saveButton = this.page.getByRole('button', { name: 'Save' }) this.cancelButton = this.page.getByRole('link', { name: 'Cancel' }) } async getPrimaryTitle() { try { return await this.primaryTitle.innerText(); } catch (error) { console.error("Failed to get primary title:", error); throw error; } } async getSecondaryTitle() { try { return await this.secondaryTitle.innerText(); } catch (error) { console.error("Failed to get secondary title:", error); throw error; } } async getDropdownType() { try { return this.dropdownType; } catch (error) { console.error("Failed to get dropdown DID Type value:", error); throw error; } } async getLabel() { try { return this.label; } catch (error) { console.error("Failed to get Label value:", error); throw error; } } async getSaveButton() { try { return this.saveButton; } catch (error) { console.error("Failed to get the 'Save' button:", error); throw error; } } async getCancelButton() { try { return this.cancelButton; } catch (error) { console.error("Failed to get the 'Cancel' button:", error); throw error; } } async addDid(label: string, didType: string) { try { (await this.getLabel()).fill(label); (await this.getDropdownType()).selectOption({ label: didType }); (await this.getSaveButton()).click(); } catch (error) { console.error("Failed adding new did: ", error); throw error; } } }