Skip to content

Commit 7d85c94

Browse files
committed
test: add e2e test cases for external transitive deps
1 parent e1d032a commit 7d85c94

File tree

15 files changed

+118
-0
lines changed

15 files changed

+118
-0
lines changed

tests/e2e/turborepo.test.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,15 @@ test.describe('[PNPM] Package manager', () => {
107107
const date3 = await page.getByTestId('date-now').textContent()
108108
expect(date3).not.toBe(date2)
109109
})
110+
111+
test('transitive external dependencies are supported', async ({ page, turborepo }) => {
112+
const pageResponse = await page.goto(new URL('/transitive-external-deps', turborepo.url).href)
113+
114+
expect(pageResponse?.status()).toBe(200)
115+
116+
await expect(page.getByTestId('dep-a-version')).toHaveText('3.10.1')
117+
await expect(page.getByTestId('dep-b-version')).toHaveText('4.17.21')
118+
})
110119
})
111120

112121
test.describe('[NPM] Package manager', () => {
@@ -228,4 +237,15 @@ test.describe('[NPM] Package manager', () => {
228237
'.env.production.local': 'defined in .env.production.local',
229238
})
230239
})
240+
241+
test('transitive external dependencies are supported', async ({ page, turborepoNPM }) => {
242+
const pageResponse = await page.goto(
243+
new URL('/transitive-external-deps', turborepoNPM.url).href,
244+
)
245+
246+
expect(pageResponse?.status()).toBe(200)
247+
248+
await expect(page.getByTestId('dep-a-version')).toHaveText('3.10.1')
249+
await expect(page.getByTestId('dep-b-version')).toHaveText('4.17.21')
250+
})
231251
})

tests/fixtures/turborepo-npm/apps/page-router/next.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ const nextConfig = {
88
},
99
transpilePackages: ['@repo/ui'],
1010
outputFileTracingRoot: join(__dirname, '..', '..'),
11+
serverExternalPackages: ['lodash'],
1112
}
1213

1314
module.exports = nextConfig

tests/fixtures/turborepo-npm/apps/page-router/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
},
99
"dependencies": {
1010
"@netlify/functions": "^2.7.0",
11+
"@repo/dep-a": "*",
12+
"@repo/dep-b": "*",
1113
"@repo/ui": "*",
1214
"next": "latest",
1315
"react": "^18.2.0",
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import depA from '@repo/dep-a'
2+
import depB from '@repo/dep-b'
3+
4+
export default function TransitiveDeps() {
5+
return (
6+
<body>
7+
<ul>
8+
<li>
9+
dep-a uses lodash version 3.10.1 and we should see this version here:{' '}
10+
<span data-testId="dep-a-version">{depA}</span>
11+
</li>
12+
<li>
13+
dep-b uses lodash version 4.17.21 and we should see this version here:{' '}
14+
<span data-testId="dep-b-version">{depB}</span>
15+
</li>
16+
</ul>
17+
</body>
18+
)
19+
}
20+
21+
// just to ensure this is rendered in runtime and not prerendered
22+
export async function getServerSideProps() {
23+
return {
24+
props: {},
25+
}
26+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import lodash from 'lodash'
2+
3+
export default lodash.VERSION
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"name": "@repo/dep-a",
3+
"version": "1.0.0",
4+
"dependencies": {
5+
"lodash": "3.10.1"
6+
}
7+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import lodash from 'lodash'
2+
3+
export default lodash.VERSION
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"name": "@repo/dep-b",
3+
"version": "1.0.0",
4+
"dependencies": {
5+
"lodash": "4.17.21"
6+
}
7+
}

tests/fixtures/turborepo/apps/page-router/next.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ const nextConfig = {
88
},
99
transpilePackages: ['@repo/ui'],
1010
outputFileTracingRoot: join(__dirname, '..', '..'),
11+
serverExternalPackages: ['lodash'],
1112
}
1213

1314
module.exports = nextConfig

tests/fixtures/turborepo/apps/page-router/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
},
99
"dependencies": {
1010
"@netlify/functions": "^2.7.0",
11+
"@repo/dep-a": "workspace:*",
12+
"@repo/dep-b": "workspace:*",
1113
"@repo/ui": "workspace:*",
1214
"next": "latest",
1315
"react": "^18.2.0",

0 commit comments

Comments
 (0)