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'); }); });