Files
2025-01-30 18:50:08 +02:00

54 строки
1.6 KiB
TypeScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import {expect, Locator} from '@playwright/test';
export default class GlobalHeader {
readonly container: Locator;
readonly productSwitchMenu;
readonly recentMentionsButton;
readonly settingsButton;
readonly searchBox;
constructor(container: Locator) {
this.container = container;
this.productSwitchMenu = container.getByRole('button', {name: 'Product switch menu'});
this.recentMentionsButton = container.getByRole('button', {name: 'Recent mentions'});
this.settingsButton = container.getByRole('button', {name: 'Settings'});
this.searchBox = container.locator('#searchFormContainer');
}
async toBeVisible(name: string) {
await expect(this.container.getByRole('heading', {name})).toBeVisible();
}
async switchProduct(name: string) {
await this.productSwitchMenu.click();
await this.container.getByRole('link', {name}).click();
}
async openSettings() {
await expect(this.settingsButton).toBeVisible();
await this.settingsButton.click();
}
async openRecentMentions() {
await expect(this.recentMentionsButton).toBeVisible();
await this.recentMentionsButton.click();
}
async openSearch() {
await expect(this.searchBox).toBeVisible();
await this.searchBox.click();
}
async closeSearch() {
await expect(this.searchBox).toBeVisible();
await this.searchBox.getByTestId('searchBoxClose').click();
}
}
export {GlobalHeader};