/
prefix.test.ts
92 lines (78 loc) · 1.92 KB
/
prefix.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
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
90
91
92
import { createGenerator } from '@unocss/core'
import { describe, expect, test } from 'vitest'
import presetUno from '@unocss/preset-uno'
describe('prefix', () => {
test('preset prefix', async () => {
const uno = createGenerator({
presets: [
presetUno({ prefix: 'h-' }),
],
rules: [
['bar', { color: 'bar' }, { prefix: 'bar-' }],
],
shortcuts: [
['shortcut', 'bar-bar', { prefix: 'bar-' }],
],
})
const unexpected = [
'text-red',
'hover:p4',
'bar',
'shortcut',
]
const expected = [
'h-text-red',
'hover:h-p4',
'bar-bar',
'bar-shortcut',
'h-container',
'2xl:h-container',
]
const { css, matched } = await uno.generate(new Set([
...unexpected,
...expected,
]), { preflights: false })
expect([...matched].sort()).toEqual(expected.sort())
expect(css).toMatchSnapshot()
})
test('multiple preset prefix', async () => {
const uno = createGenerator({
presets: [
presetUno({ prefix: ['h-', 'x-'] }),
],
rules: [
['bar', { color: 'bar' }, { prefix: ['bar-', 'foo-', ''] }],
[/^regex$/, () => ({ color: 'regex' }), { prefix: ['bar-', 'foo-', ''] }],
],
shortcuts: [
['shortcut', 'bar-bar', { prefix: ['bar-', 'x-'] }],
],
})
const unexpected = [
'text-red',
'hover:p4',
'bar',
'shortcut',
]
const expected = [
'h-text-red',
'hover:h-p4',
'bar-bar',
'foo-bar',
'bar',
'bar-regex',
'foo-regex',
'regex',
'bar-shortcut',
'x-shortcut',
'h-container',
'2xl:h-container',
]
const { css, matched } = await uno.generate(new Set([
...unexpected,
...expected,
]), { preflights: false })
expect([...matched].sort()).toEqual(expected.sort())
expect(css).toMatchSnapshot()
})
})