diff --git a/test-e2e/assertions.ts b/test-e2e/assertions.ts index d3a069f..cd5c31d 100644 --- a/test-e2e/assertions.ts +++ b/test-e2e/assertions.ts @@ -1,4 +1,3 @@ -import type { Page } from '@playwright/test' import { expect } from '@playwright/test' import type { TesterTestItem } from './tester' @@ -21,21 +20,6 @@ function getTitleFromState(state: TestState) { } expect.extend({ - async toHaveResults(page: Page, number: string) { - const title = await page.locator(`[title*="tests passed ("]`).getAttribute('title') - const expected = `${number} tests passed` - const pass = !!(title && title.includes(expected)) - - return { - message: () => `${this.utils.matcherHint('toHaveResults', title, expected, { isNot: this.isNot })}\n\n` - + `Expected: ${this.isNot ? 'not ' : ''}to have results: ${this.utils.printExpected(number)}\n` - + `Received: ${this.utils.printReceived(title)}\n`, - pass, - name: 'toHaveResults', - expected, - actual: title, - } - }, async toHaveState(item: TesterTestItem, state: TestState) { const title = await item.locator.getAttribute('aria-label') const pass = !!(title && title.includes(getTitleFromState(state))) @@ -86,7 +70,6 @@ declare global { // eslint-disable-next-line unused-imports/no-unused-vars export interface Matchers { toHaveState: (state: TestState) => Promise - toHaveResults: (state: string) => Promise /** * @example * expect(tester.tree.getFileItem('no-import.test.ts')).toHaveTests({ diff --git a/test-e2e/basic.test.ts b/test-e2e/basic.test.ts index c23f713..266701b 100644 --- a/test-e2e/basic.test.ts +++ b/test-e2e/basic.test.ts @@ -20,14 +20,14 @@ test('basic', async ({ launch }) => { await tester.runAllTests() - await expect(page).toHaveResults('3/7') + await expect(tester.tree.getResults()).toHaveText('3/7') await expect(tester.tree.getFileItem('pass.test.ts')).toHaveState('passed') await expect(tester.tree.getFileItem('fail.test.ts')).toHaveState('failed') await expect(tester.tree.getFileItem('mix.test.ts')).toHaveState('failed') }) test('custom imba language', async ({ launch }) => { - const { page, tester } = await launch({ + const { tester } = await launch({ workspacePath: './samples/imba', }) @@ -36,7 +36,7 @@ test('custom imba language', async ({ launch }) => { await tester.runAllTests() - await expect(page).toHaveResults('5/7') + await expect(tester.tree.getResults()).toHaveText('5/7') await expect(tester.tree.getFileItem('basic.test.imba')).toHaveState('passed') await expect(tester.tree.getFileItem('utils.imba')).toHaveState('passed') await expect(tester.tree.getFileItem('counter.imba')).toHaveState('failed') diff --git a/test-e2e/tester.ts b/test-e2e/tester.ts index 4584c46..290330c 100644 --- a/test-e2e/tester.ts +++ b/test-e2e/tester.ts @@ -31,6 +31,10 @@ class TesterTree { private page: Page, ) {} + getResults() { + return this.page.locator(`.result-summary > [custom-hover]`) + } + getFileItem(file: string) { const name = basename(file) return new TesterTestItem(name, this.page.locator(`[aria-label*="${name} "]`), this.page)