-
-
Notifications
You must be signed in to change notification settings - Fork 2
/
test.spec.ts
74 lines (66 loc) · 1.84 KB
/
test.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
import _, {
asIsReducer,
getGlobals,
globals,
normalizePkg,
upperCamelCase,
upperCamelCaseReducer,
} from '..'
const UPPER_CAMEL_CASE = 'upper-camel-case'
describe('umd globals', () => {
it('default export and `globals` named export should be same exactly', () =>
expect(_).toBe(globals))
it('should be a string map', () =>
expect(
Object.values(globals).every(_ => typeof _ === 'string'),
).toBeTruthy())
it('should be able to parse empty params', () => {
expect(getGlobals({})).toStrictEqual(globals)
expect(
getGlobals({
asIsPkgs: [],
upperCamelCasePkgs: [],
}),
).toStrictEqual(globals)
})
it('should be able to override globals', () =>
expect(
getGlobals({
globals: {
'react-dom': upperCamelCase('react-dom'),
},
}),
).toMatchObject({
'react-dom': 'ReactDom',
}))
})
describe('normalize pkg name', () => {
it('should normalize scoped pkg correctly', () =>
expect(normalizePkg('@rxts/vue-qrcode')).toBe('vue-qrcode'))
})
describe('upperCamelCase util', () => {
it('should resolve pkg case correctly', () => {
expect(upperCamelCase('react')).toBe('React')
expect(upperCamelCase('react-router')).toBe('ReactRouter')
})
})
describe('reducer', () => {
it('should work with single string param', () => {
expect(asIsReducer('as-is')).toStrictEqual({
'as-is': 'as-is',
})
expect(upperCamelCaseReducer(UPPER_CAMEL_CASE)).toStrictEqual({
[UPPER_CAMEL_CASE]: 'UpperCamelCase',
})
})
it('should work with single object param', () => {
expect(asIsReducer({ 'as-is': 'as-is' })).toStrictEqual({
'as-is': 'as-is',
})
expect(
upperCamelCaseReducer({ [UPPER_CAMEL_CASE]: 'UpperCamelCase' }),
).toStrictEqual({
[UPPER_CAMEL_CASE]: 'UpperCamelCase',
})
})
})