Skip to content

Commit 74e0717

Browse files
Merge pull request #7102 from Shopify/fix-flaky-tests-main
Fix flaky tests and improve the main workflow
2 parents 2028775 + da23406 commit 74e0717

3 files changed

Lines changed: 16 additions & 7 deletions

File tree

.github/workflows/tests-main.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,9 @@ jobs:
5555
run: pnpm nx run-many --all --skip-nx-cache --target=bundle --output-style=stream
5656
if: ${{ matrix.os == 'ubuntu-latest' && matrix.node == '24.1.0' }}
5757
- name: Unit tests
58-
run: pnpm vitest run
58+
run: pnpm vitest run ${{ env.POOL_OPTIONS }}
5959
env:
60+
POOL_OPTIONS: ${{ matrix.os == 'macos-latest' && '--pool forks' || '' }}
6061
VITEST_MIN_THREADS: "1"
6162
VITEST_MAX_THREADS: "4"
6263
- name: Send Slack notification on failure

packages/app/src/cli/services/function/build.test.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,14 @@ import {build as esBuild} from 'esbuild'
2929
vi.mock('@shopify/cli-kit/node/fs')
3030
vi.mock('@shopify/cli-kit/node/system')
3131

32+
vi.mock('./binaries.js', async (importOriginal) => {
33+
const actual: any = await importOriginal()
34+
return {
35+
...actual,
36+
downloadBinary: vi.fn(),
37+
}
38+
})
39+
3240
vi.mock('esbuild', async () => {
3341
const esbuild: any = await vi.importActual('esbuild')
3442
return {

packages/app/src/cli/utilities/app/http-reverse-proxy.test.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,8 @@ function getTestReverseProxy(protocol: 'http' | 'https') {
9797
res.end('Response from target server 2')
9898
})
9999

100-
targetServer1.listen(ports.targetPort1)
101-
targetServer2.listen(ports.targetPort2)
100+
await new Promise<void>((resolve) => targetServer1.listen(ports.targetPort1, resolve))
101+
await new Promise<void>((resolve) => targetServer2.listen(ports.targetPort2, resolve))
102102

103103
const abortController = new AbortController()
104104
const {server: proxyServer} = await getProxyingWebServer(
@@ -111,12 +111,12 @@ function getTestReverseProxy(protocol: 'http' | 'https') {
111111
protocol === 'https' ? localhostCert : undefined,
112112
)
113113

114-
proxyServer.listen(ports.proxyPort)
114+
await new Promise<void>((resolve) => proxyServer.listen(ports.proxyPort, resolve))
115115
await use({targetServer1, targetServer2, proxyServer, abortController})
116116

117-
proxyServer.close()
118-
targetServer1.close()
119-
targetServer2.close()
117+
await new Promise<void>((resolve) => proxyServer.close(() => resolve()))
118+
await new Promise<void>((resolve) => targetServer1.close(() => resolve()))
119+
await new Promise<void>((resolve) => targetServer2.close(() => resolve()))
120120
},
121121
})
122122
}

0 commit comments

Comments
 (0)