/
optimize-deps.spec.ts
89 lines (70 loc) · 2.89 KB
/
optimize-deps.spec.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import { getColor, isBuild } from '../../testUtils'
test('default + named imports from cjs dep (react)', async () => {
expect(await page.textContent('.cjs button')).toBe('count is 0')
await page.click('.cjs button')
expect(await page.textContent('.cjs button')).toBe('count is 1')
})
test('named imports from webpacked cjs (phoenix)', async () => {
expect(await page.textContent('.cjs-phoenix')).toBe('ok')
})
test('default import from webpacked cjs (clipboard)', async () => {
expect(await page.textContent('.cjs-clipboard')).toBe('ok')
})
test('dynamic imports from cjs dep (react)', async () => {
expect(await page.textContent('.cjs-dynamic button')).toBe('count is 0')
await page.click('.cjs-dynamic button')
expect(await page.textContent('.cjs-dynamic button')).toBe('count is 1')
})
test('dynamic named imports from webpacked cjs (phoenix)', async () => {
expect(await page.textContent('.cjs-dynamic-phoenix')).toBe('ok')
})
test('dynamic default import from webpacked cjs (clipboard)', async () => {
expect(await page.textContent('.cjs-dynamic-clipboard')).toBe('ok')
})
test('dynamic default import from cjs (cjs-dynamic-dep-cjs-compiled-from-esm)', async () => {
expect(await page.textContent('.cjs-dynamic-dep-cjs-compiled-from-esm')).toBe(
'ok'
)
})
test('dynamic default import from cjs (cjs-dynamic-dep-cjs-compiled-from-cjs)', async () => {
expect(await page.textContent('.cjs-dynamic-dep-cjs-compiled-from-cjs')).toBe(
'ok'
)
})
test('dedupe', async () => {
expect(await page.textContent('.dedupe button')).toBe('count is 0')
await page.click('.dedupe button')
expect(await page.textContent('.dedupe button')).toBe('count is 1')
})
test('cjs borwser field (axios)', async () => {
expect(await page.textContent('.cjs-browser-field')).toBe('pong')
})
test('dep from linked dep (lodash-es)', async () => {
expect(await page.textContent('.deps-linked')).toBe('fooBarBaz')
})
test('forced include', async () => {
expect(await page.textContent('.force-include')).toMatch(`[success]`)
})
test('import * from optimized dep', async () => {
expect(await page.textContent('.import-star')).toMatch(`[success]`)
})
test('dep with css import', async () => {
expect(await getColor('h1')).toBe('red')
})
test('dep w/ non-js files handled via plugin', async () => {
expect(await page.textContent('.plugin')).toMatch(`[success]`)
})
test('vue + vuex', async () => {
expect(await page.textContent('.vue')).toMatch(`[success]`)
})
test('esbuild-plugin', async () => {
expect(await page.textContent('.esbuild-plugin')).toMatch(
isBuild ? `Hello from a package` : `Hello from an esbuild plugin`
)
})
test('import from hidden dir', async () => {
expect(await page.textContent('.hidden-dir')).toBe('hello!')
})
test('import optimize-excluded package that imports optimized-included package', async () => {
expect(await page.textContent('.nested-include')).toBe('nested-include')
})