Skip to content

Commit c73c96f

Browse files
committed
E2E: improve error context in assertions
1 parent 3c8cf0e commit c73c96f

File tree

5 files changed

+28
-11
lines changed

5 files changed

+28
-11
lines changed

packages/e2e/tests/app-dev-server.spec.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ test.describe('App dev server', () => {
2323
packageManager: 'npm',
2424
orgId: env.orgId,
2525
})
26-
expect(initResult.exitCode).toBe(0)
26+
expect(initResult.exitCode, `createApp failed:\nstdout: ${initResult.stdout}\nstderr: ${initResult.stderr}`).toBe(
27+
0,
28+
)
2729
const appDir = initResult.appDir
2830

2931
// Step 2: Start dev server via PTY
@@ -42,7 +44,7 @@ test.describe('App dev server', () => {
4244

4345
// Step 6: Wait for clean exit
4446
const exitCode = await dev.waitForExit(CLI_TIMEOUT.short)
45-
expect(exitCode).toBe(0)
47+
expect(exitCode, `dev exited with non-zero code. Output:\n${dev.getOutput()}`).toBe(0)
4648
} finally {
4749
fs.rmSync(parentDir, {recursive: true, force: true})
4850
await teardownApp({browserPage, appName, email: process.env.E2E_ACCOUNT_EMAIL, orgId: env.orgId})

packages/e2e/tests/app-scaffold.spec.ts

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@ test.describe('App scaffold', () => {
2525
packageManager: 'npm',
2626
orgId: env.orgId,
2727
})
28-
expect(initResult.exitCode).toBe(0)
28+
expect(initResult.exitCode, `createApp failed:\nstdout: ${initResult.stdout}\nstderr: ${initResult.stderr}`).toBe(
29+
0,
30+
)
2931
const initOutput = initResult.stdout + initResult.stderr
3032
expect(initOutput).toContain('is ready for you to build!')
3133
const appDir = initResult.appDir
@@ -37,7 +39,10 @@ test.describe('App scaffold', () => {
3739

3840
// Step 3: Build the app
3941
const buildResult = await buildApp({cli, appDir})
40-
expect(buildResult.exitCode, `build failed:\nstderr: ${buildResult.stderr}`).toBe(0)
42+
expect(
43+
buildResult.exitCode,
44+
`buildApp failed:\nstdout: ${buildResult.stdout}\nstderr: ${buildResult.stderr}`,
45+
).toBe(0)
4146
} finally {
4247
fs.rmSync(parentDir, {recursive: true, force: true})
4348
await teardownApp({browserPage, appName, email: process.env.E2E_ACCOUNT_EMAIL, orgId: env.orgId})
@@ -60,7 +65,9 @@ test.describe('App scaffold', () => {
6065
packageManager: 'npm',
6166
orgId: env.orgId,
6267
})
63-
expect(initResult.exitCode).toBe(0)
68+
expect(initResult.exitCode, `createApp failed:\nstdout: ${initResult.stdout}\nstderr: ${initResult.stderr}`).toBe(
69+
0,
70+
)
6471
expect(fs.existsSync(initResult.appDir)).toBe(true)
6572
expect(fs.existsSync(path.join(initResult.appDir, 'shopify.app.toml'))).toBe(true)
6673
} finally {
@@ -89,7 +96,9 @@ test.describe('App scaffold', () => {
8996
packageManager: 'npm',
9097
orgId: env.orgId,
9198
})
92-
expect(initResult.exitCode).toBe(0)
99+
expect(initResult.exitCode, `createApp failed:\nstdout: ${initResult.stdout}\nstderr: ${initResult.stderr}`).toBe(
100+
0,
101+
)
93102
const appDir = initResult.appDir
94103

95104
const extensionConfigs = [
@@ -100,11 +109,17 @@ test.describe('App scaffold', () => {
100109
for (const ext of extensionConfigs) {
101110
// eslint-disable-next-line no-await-in-loop
102111
const result = await generateExtension({cli, appDir, ...ext})
103-
expect(result.exitCode, `generate "${ext.name}" failed:\nstderr: ${result.stderr}`).toBe(0)
112+
expect(
113+
result.exitCode,
114+
`generateExtension "${ext.name}" failed:\nstdout: ${result.stdout}\nstderr: ${result.stderr}`,
115+
).toBe(0)
104116
}
105117

106118
const buildResult = await buildApp({cli, appDir})
107-
expect(buildResult.exitCode, `build failed:\nstderr: ${buildResult.stderr}`).toBe(0)
119+
expect(
120+
buildResult.exitCode,
121+
`buildApp failed:\nstdout: ${buildResult.stdout}\nstderr: ${buildResult.stderr}`,
122+
).toBe(0)
108123
} finally {
109124
fs.rmSync(parentDir, {recursive: true, force: true})
110125
await teardownApp({browserPage, appName, email: process.env.E2E_ACCOUNT_EMAIL, orgId: env.orgId})

packages/e2e/tests/commands.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ const normalize = (value: string) => value.replace(/\r\n/g, '\n').trimEnd()
3030
test.describe('Command snapshot', () => {
3131
test('shopify commands --tree matches snapshot', async ({cli}) => {
3232
const result = await cli.exec(['commands', '--tree'])
33-
expect(result.exitCode).toBe(0)
33+
expect(result.exitCode, `commands --tree failed:\nstdout: ${result.stdout}\nstderr: ${result.stderr}`).toBe(0)
3434

3535
const snapshot = await fs.readFile(snapshotPath, {encoding: 'utf8'})
3636
expect(normalize(result.stdout), errorMessage).toBe(normalize(snapshot))

packages/e2e/tests/smoke-pty.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ test.describe('PTY smoke test', () => {
66
const proc = await cli.spawn(['version'])
77
await proc.waitForOutput('3.')
88
const code = await proc.waitForExit()
9-
expect(code).toBe(0)
9+
expect(code, `shopify version (PTY) failed. Output:\n${proc.getOutput()}`).toBe(0)
1010
expect(proc.getOutput()).toMatch(/\d+\.\d+\.\d+/)
1111
})
1212
})

packages/e2e/tests/smoke.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {expect} from '@playwright/test'
44
test.describe('Smoke test', () => {
55
test('shopify version runs successfully', async ({cli}) => {
66
const result = await cli.exec(['version'])
7-
expect(result.exitCode).toBe(0)
7+
expect(result.exitCode, `shopify version failed:\nstdout: ${result.stdout}\nstderr: ${result.stderr}`).toBe(0)
88
expect(result.stdout).toMatch(/\d+\.\d+\.\d+/)
99
})
1010
})

0 commit comments

Comments
 (0)