Skip to content

Commit d0bf89d

Browse files
authoredSep 26, 2024··
fix(ui): list tests on ui when --standalone (#6577)
1 parent 445367b commit d0bf89d

File tree

2 files changed

+51
-9
lines changed

2 files changed

+51
-9
lines changed
 

‎packages/ui/client/composables/client/index.ts

+8-9
Original file line numberDiff line numberDiff line change
@@ -130,23 +130,22 @@ watch(
130130
ws.addEventListener('open', async () => {
131131
status.value = 'OPEN'
132132
client.state.filesMap.clear()
133-
const [remoteFiles, _config, errors] = await Promise.all([
133+
let [files, _config, errors] = await Promise.all([
134134
client.rpc.getFiles(),
135135
client.rpc.getConfig(),
136136
client.rpc.getUnhandledErrors(),
137137
])
138138
if (_config.standalone) {
139139
const filenames = await client.rpc.getTestFiles()
140-
const files = filenames.map<File>(([{ name, root }, filepath]) => {
141-
return /* #__PURE__ */ createFileTask(filepath, root, name)
140+
files = filenames.map(([{ name, root }, filepath]) => {
141+
const file = createFileTask(filepath, root, name)
142+
file.mode = 'skip'
143+
return file
142144
})
143-
client.state.collectFiles(files)
144-
}
145-
else {
146-
explorerTree.loadFiles(remoteFiles)
147-
client.state.collectFiles(remoteFiles)
148-
explorerTree.startRun()
149145
}
146+
explorerTree.loadFiles(files)
147+
client.state.collectFiles(files)
148+
explorerTree.startRun()
150149
unhandledErrors.value = (errors || []).map(parseError)
151150
config.value = _config
152151
})

‎test/ui/test/ui.spec.ts

+43
Original file line numberDiff line numberDiff line change
@@ -138,3 +138,46 @@ test.describe('ui', () => {
138138
await expect(page.getByTestId('details-panel').getByText('fixtures/task-name.test.ts', { exact: true })).toBeVisible()
139139
})
140140
})
141+
142+
test.describe('standalone', () => {
143+
let vitest: Vitest | undefined
144+
145+
test.beforeAll(async () => {
146+
// silence Vitest logs
147+
const stdout = new Writable({ write: (_, __, callback) => callback() })
148+
const stderr = new Writable({ write: (_, __, callback) => callback() })
149+
vitest = await startVitest('test', [], {
150+
watch: true,
151+
ui: true,
152+
standalone: true,
153+
open: false,
154+
api: { port },
155+
reporters: [],
156+
}, {}, {
157+
stdout,
158+
stderr,
159+
})
160+
expect(vitest).toBeDefined()
161+
})
162+
163+
test.afterAll(async () => {
164+
await vitest?.close()
165+
})
166+
167+
test('basic', async ({ page }) => {
168+
await page.goto(pageUrl)
169+
170+
// initially no stats
171+
await expect(page.locator('[aria-labelledby=tests]')).toContainText('0 Pass 0 Fail 0 Total')
172+
173+
// run single file
174+
await page.getByText('fixtures/sample.test.ts').hover()
175+
await page.getByRole('button', { name: 'Run current test' }).click()
176+
177+
// check results
178+
await page.getByText('PASS (1)').click()
179+
expect(vitest?.state.getFiles().map(f => [f.name, f.result?.state])).toEqual([
180+
['fixtures/sample.test.ts', 'pass'],
181+
])
182+
})
183+
})

0 commit comments

Comments
 (0)
Please sign in to comment.