Skip to content

Commit 0223bb7

Browse files
authored
fix(ui): remove "filters" flickering (#6463)
1 parent 97773e2 commit 0223bb7

File tree

4 files changed

+23
-12
lines changed

4 files changed

+23
-12
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ jobs:
8282
os: [ubuntu-latest]
8383
node_version: [18, 20, 22]
8484
include:
85-
- os: macos-14
85+
- os: macos-latest
8686
node_version: 20
8787
- os: windows-latest
8888
node_version: 20
@@ -124,7 +124,7 @@ jobs:
124124
strategy:
125125
matrix:
126126
os:
127-
- macos-14
127+
- macos-latest
128128
- windows-latest
129129
browser:
130130
- [chromium, chrome]

packages/ui/client/components/explorer/Explorer.vue

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import { useSearch } from '~/composables/explorer/search'
1111
import 'vue-virtual-scroller/dist/vue-virtual-scroller.css'
1212
import { config } from '~/composables/client'
1313
14+
import { panels } from '~/composables/navigation'
15+
1416
defineOptions({ inheritAttrs: false })
1517
1618
const { onItemClick } = defineProps<{
@@ -46,8 +48,9 @@ const filterClass = ref<string>('grid-cols-2')
4648
const filterHeaderClass = ref<string>('grid-col-span-2')
4749
const testExplorerRef = ref<HTMLInputElement | undefined>()
4850
49-
useResizeObserver(testExplorerRef, (entries) => {
50-
const { width } = entries[0].contentRect
51+
const { width: windowWidth } = useWindowSize()
52+
53+
watch(() => windowWidth.value * (panels.navigation / 100), (width) => {
5154
if (width < 420) {
5255
filterClass.value = 'grid-cols-2'
5356
filterHeaderClass.value = 'grid-col-span-2'

test/ui/test/html-report.spec.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,19 @@ test.describe('html report', () => {
3535
)
3636

3737
// run vite preview server
38-
previewServer = await preview({ build: { outDir: 'html' }, preview: { port, strictPort: true } })
38+
previewServer = await preview({
39+
build: { outDir: 'html' },
40+
preview: { port, strictPort: true },
41+
})
3942
})
4043

4144
test.afterAll(async () => {
4245
await new Promise<void>((resolve, reject) => {
46+
// if there is no preview server, `startVitest` failed already
47+
if (!previewServer) {
48+
resolve()
49+
return
50+
}
4351
previewServer.httpServer.close((err) => {
4452
if (err) {
4553
reject(err)
@@ -72,7 +80,7 @@ test.describe('html report', () => {
7280
// report
7381
const sample = page.getByTestId('details-panel').getByLabel('sample.test.ts')
7482
await sample.hover()
75-
await sample.getByTestId('btn-open-details').click()
83+
await sample.getByTestId('btn-open-details').click({ force: true })
7684
await page.getByText('All tests passed in this file').click()
7785

7886
// graph tab
@@ -96,7 +104,7 @@ test.describe('html report', () => {
96104
await page.goto(pageUrl)
97105
const sample = page.getByTestId('details-panel').getByLabel('fixtures/error.test.ts')
98106
await sample.hover()
99-
await sample.getByTestId('btn-open-details').click()
107+
await sample.getByTestId('btn-open-details').click({ force: true })
100108
await expect(page.getByTestId('diff')).toContainText('- Expected + Received + <style>* {border: 2px solid green};</style>')
101109
})
102110
})

test/vite-node/test/server.test.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -143,12 +143,12 @@ describe('server correctly caches data', () => {
143143

144144
await viteNode.fetchModule('/src/foo.js', 'ssr')
145145

146-
expect(ssrFiles).toHaveLength(3)
146+
await expect.poll(() => ssrFiles).toHaveLength(3)
147147

148148
// another fetch after invalidation returns cached result
149149
await viteNode.fetchModule('/src/foo.js', 'ssr')
150150

151-
expect(ssrFiles).toHaveLength(3)
151+
await expect.poll(() => ssrFiles).toHaveLength(3)
152152
expect(webFiles).toHaveLength(0)
153153
})
154154

@@ -200,13 +200,13 @@ describe('server correctly caches data', () => {
200200

201201
await viteNode.fetchModule('/src/foo.js', 'web')
202202

203-
expect(webFiles).toHaveLength(3)
203+
await expect.poll(() => webFiles).toHaveLength(3)
204204

205205
// another fetch after invalidation returns cached result
206206
await viteNode.fetchModule('/src/foo.js', 'web')
207207

208-
expect(webFiles).toHaveLength(3)
209-
expect(ssrFiles).toHaveLength(0)
208+
await expect.poll(() => webFiles).toHaveLength(3)
209+
await expect.poll(() => ssrFiles).toHaveLength(0)
210210
})
211211

212212
it('correctly processes the same file with both transform modes', async ({ viteNode, ssrFiles, webFiles, root }) => {

0 commit comments

Comments
 (0)