55 lines
1.7 KiB
JavaScript
55 lines
1.7 KiB
JavaScript
const { test, expect } = require('@playwright/test');
|
|
const { Website } = require('../helpers/website');
|
|
|
|
test.describe('Search Features', () => {
|
|
let website;
|
|
|
|
test.beforeEach(({ page }) => {
|
|
website = new Website(page);
|
|
});
|
|
|
|
test('DesktopOpenCloseSearchDialog', async () => {
|
|
await website.goto();
|
|
await website.navigationBar.clickSearchButton();
|
|
await website.websiteSearchDialog.closeDialog();
|
|
await website.navigationBar.clickHomeLink();
|
|
});
|
|
|
|
test('DesktopSearchForThrone', async () => {
|
|
await website.goto();
|
|
await website.navigationBar.clickSearchButton();
|
|
await website.websiteSearchDialog.search('Throne');
|
|
const page = await website.websiteSearchDialog.selectSearchEntity('Throne');
|
|
|
|
const name = await page.getEntityName();
|
|
const health = await page.getEntityHealth();
|
|
|
|
expect(name).toBe('Throne');
|
|
expect(health.trim()).not.toBe('');
|
|
});
|
|
|
|
test('DesktopFilterForThrone', async () => {
|
|
const page = website.databasePage;
|
|
await page.goto();
|
|
await page.filterName('Throne');
|
|
const name = await page.getEntityNameByIndex(0);
|
|
expect(name).toBe('Throne');
|
|
});
|
|
|
|
test('SeeThroneByDefault', async () => {
|
|
const page = website.databasePage;
|
|
await page.goto();
|
|
const name = await page.getEntityName('army', 'throne');
|
|
expect(name).toBe('Throne');
|
|
});
|
|
|
|
test('DirectLinkNotThroneFailure', async () => {
|
|
const page = website.databaseSinglePage;
|
|
await page.goto('not throne');
|
|
const invalidSearch = await page.getInvalidSearch();
|
|
const validSearch = await page.getValidSearch();
|
|
expect(invalidSearch).toBe('not throne');
|
|
expect(validSearch).toBe('Throne');
|
|
});
|
|
});
|