-
-
Notifications
You must be signed in to change notification settings - Fork 238
/
macro-vite.test.ts
64 lines (57 loc) 路 1.16 KB
/
macro-vite.test.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
import { EnvContext } from '@typed-macro/core'
import { createTransformer } from '@typed-macro/runtime'
import { valtioMacro } from 'valtio/macro/vite'
const env: EnvContext = {
host: 'test',
packageManager: 'test',
projectPath: [''],
dev: true,
ssr: false,
}
it('basic', async () => {
const transform = createTransformer({})
transform.appendMacros('valtio/macro', [valtioMacro])
expect(
transform.transform(
`
import { useProxy } from 'valtio/macro'
const Component = () => {
useProxy(state)
return (
<div>
{state.count}
<button onClick={() => ++state.count}>inc</button>
</div>
)
}
`,
'test.ts',
env
)
).toMatchSnapshot()
})
it('complex', async () => {
const transform = createTransformer({})
transform.appendMacros('valtio/macro', [valtioMacro])
expect(
transform.transform(
`
import { useProxy } from 'valtio/macro'
const Component = () => {
useProxy(state)
return (
<div>
<button onClick={() => {
;(() => ++state.count)()
++state.count
}}>inc</button>
{state.count}
</div>
)
}
`,
'test.ts',
env
)
).toMatchSnapshot()
})