|
4 | 4 | * SPDX-License-Identifier: Apache-2.0 |
5 | 5 | */ |
6 | 6 | import assert from 'node:assert'; |
7 | | -import {before, describe, it} from 'node:test'; |
| 7 | +import {afterEach, before, beforeEach, describe, it} from 'node:test'; |
8 | 8 |
|
| 9 | +import {setIssuesEnabled} from '../../src/features.js'; |
9 | 10 | import {loadIssueDescriptions} from '../../src/issue-descriptions.js'; |
10 | 11 | import { |
11 | 12 | getConsoleMessage, |
@@ -41,79 +42,87 @@ describe('console', () => { |
41 | 42 | }); |
42 | 43 | }); |
43 | 44 |
|
44 | | - it('lists issues', async () => { |
| 45 | + it('work with primitive unhandled errors', async () => { |
45 | 46 | await withBrowser(async (response, context) => { |
46 | 47 | const page = await context.newPage(); |
47 | | - const issuePromise = new Promise<void>(resolve => { |
48 | | - page.once('issue', () => { |
49 | | - resolve(); |
50 | | - }); |
51 | | - }); |
52 | | - await page.setContent('<input type="text" name="username" />'); |
53 | | - await issuePromise; |
| 48 | + await page.setContent('<script>throw undefined;</script>'); |
54 | 49 | await listConsoleMessages.handler({params: {}}, response, context); |
55 | 50 | const formattedResponse = await response.handle('test', context); |
56 | 51 | const textContent = formattedResponse[0] as {text: string}; |
57 | 52 | assert.ok( |
58 | | - textContent.text.includes( |
59 | | - `msgid=1 [issue] An element doesn't have an autocomplete attribute (count: 1)`, |
60 | | - ), |
| 53 | + textContent.text.includes('msgid=1 [error] undefined (0 args)'), |
61 | 54 | ); |
62 | 55 | }); |
63 | 56 | }); |
64 | 57 |
|
65 | | - it('lists issues after a page reload', async () => { |
66 | | - await withBrowser(async (response, context) => { |
67 | | - const page = await context.newPage(); |
68 | | - const issuePromise = new Promise<void>(resolve => { |
69 | | - page.once('issue', () => { |
70 | | - resolve(); |
| 58 | + describe('issues', () => { |
| 59 | + beforeEach(() => { |
| 60 | + setIssuesEnabled(true); |
| 61 | + }); |
| 62 | + afterEach(() => { |
| 63 | + setIssuesEnabled(false); |
| 64 | + }); |
| 65 | + it('lists issues', async () => { |
| 66 | + await withBrowser(async (response, context) => { |
| 67 | + const page = await context.newPage(); |
| 68 | + const issuePromise = new Promise<void>(resolve => { |
| 69 | + page.once('issue', () => { |
| 70 | + resolve(); |
| 71 | + }); |
71 | 72 | }); |
72 | | - }); |
73 | | - |
74 | | - await page.setContent('<input type="text" name="username" />'); |
75 | | - await issuePromise; |
76 | | - await listConsoleMessages.handler({params: {}}, response, context); |
77 | | - { |
| 73 | + await page.setContent('<input type="text" name="username" />'); |
| 74 | + await issuePromise; |
| 75 | + await listConsoleMessages.handler({params: {}}, response, context); |
78 | 76 | const formattedResponse = await response.handle('test', context); |
79 | 77 | const textContent = formattedResponse[0] as {text: string}; |
80 | 78 | assert.ok( |
81 | 79 | textContent.text.includes( |
82 | 80 | `msgid=1 [issue] An element doesn't have an autocomplete attribute (count: 1)`, |
83 | 81 | ), |
84 | 82 | ); |
85 | | - } |
86 | | - |
87 | | - const anotherIssuePromise = new Promise<void>(resolve => { |
88 | | - page.once('issue', () => { |
89 | | - resolve(); |
90 | | - }); |
91 | 83 | }); |
92 | | - await page.reload(); |
93 | | - await page.setContent('<input type="text" name="username" />'); |
94 | | - await anotherIssuePromise; |
95 | | - { |
96 | | - const formattedResponse = await response.handle('test', context); |
97 | | - const textContent = formattedResponse[0] as {text: string}; |
98 | | - assert.ok( |
99 | | - textContent.text.includes( |
100 | | - `msgid=2 [issue] An element doesn't have an autocomplete attribute (count: 1)`, |
101 | | - ), |
102 | | - ); |
103 | | - } |
104 | 84 | }); |
105 | | - }); |
106 | 85 |
|
107 | | - it('work with primitive unhandled errors', async () => { |
108 | | - await withBrowser(async (response, context) => { |
109 | | - const page = await context.newPage(); |
110 | | - await page.setContent('<script>throw undefined;</script>'); |
111 | | - await listConsoleMessages.handler({params: {}}, response, context); |
112 | | - const formattedResponse = await response.handle('test', context); |
113 | | - const textContent = formattedResponse[0] as {text: string}; |
114 | | - assert.ok( |
115 | | - textContent.text.includes('msgid=1 [error] undefined (0 args)'), |
116 | | - ); |
| 86 | + it('lists issues after a page reload', async () => { |
| 87 | + await withBrowser(async (response, context) => { |
| 88 | + const page = await context.newPage(); |
| 89 | + const issuePromise = new Promise<void>(resolve => { |
| 90 | + page.once('issue', () => { |
| 91 | + resolve(); |
| 92 | + }); |
| 93 | + }); |
| 94 | + |
| 95 | + await page.setContent('<input type="text" name="username" />'); |
| 96 | + await issuePromise; |
| 97 | + await listConsoleMessages.handler({params: {}}, response, context); |
| 98 | + { |
| 99 | + const formattedResponse = await response.handle('test', context); |
| 100 | + const textContent = formattedResponse[0] as {text: string}; |
| 101 | + assert.ok( |
| 102 | + textContent.text.includes( |
| 103 | + `msgid=1 [issue] An element doesn't have an autocomplete attribute (count: 1)`, |
| 104 | + ), |
| 105 | + ); |
| 106 | + } |
| 107 | + |
| 108 | + const anotherIssuePromise = new Promise<void>(resolve => { |
| 109 | + page.once('issue', () => { |
| 110 | + resolve(); |
| 111 | + }); |
| 112 | + }); |
| 113 | + await page.reload(); |
| 114 | + await page.setContent('<input type="text" name="username" />'); |
| 115 | + await anotherIssuePromise; |
| 116 | + { |
| 117 | + const formattedResponse = await response.handle('test', context); |
| 118 | + const textContent = formattedResponse[0] as {text: string}; |
| 119 | + assert.ok( |
| 120 | + textContent.text.includes( |
| 121 | + `msgid=2 [issue] An element doesn't have an autocomplete attribute (count: 1)`, |
| 122 | + ), |
| 123 | + ); |
| 124 | + } |
| 125 | + }); |
117 | 126 | }); |
118 | 127 | }); |
119 | 128 | }); |
|
0 commit comments