-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.test.js
86 lines (85 loc) · 1.98 KB
/
index.test.js
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
const c2c = require('./index')
const color = require('color-string')
describe('color-to-color', () => {
const c1 = 'red'
const c2 = 'blue'
it('transforms red color', () => {
expect(
c2c('rgb(255, 0, 0)')
.toColor('rgb(0,0,0)')
.withPercent(100)
.get('keyword')
).toEqual('black')
expect(
c2c('rgb(0, 0, 0)')
.toColor('rgb(255,0,0)')
.withPercent(100)
.get('keyword')
).toEqual('red')
})
it('transforms green color', () => {
expect(
c2c('rgb(0, 255, 0)')
.toColor('rgb(0,0,0)')
.withPercent(100)
.get('keyword')
).toEqual('black')
expect(
c2c('rgb(0, 0, 0)')
.toColor('rgb(0,255,0)')
.withPercent(100)
.get('keyword')
).toEqual('lime')
})
it('transforms blue color', () => {
expect(
c2c('rgb(0, 0, 255)')
.toColor('rgb(0,0,0)')
.withPercent(100)
.get('keyword')
).toEqual('black')
expect(
c2c('rgb(0, 0, 0)')
.toColor('rgb(0,0,255)')
.withPercent(100)
.get('keyword')
).toEqual('blue')
})
it('transforms colors and outputs rgb object', () => {
expect(
c2c(c1)
.toColor(c2)
.withPercent(50)
.get()
).toEqual({ r: Math.floor(255 / 2), g: 0, b: Math.floor(255 / 2) })
})
Object.keys(color.to).forEach(e => {
if (e !== 'keyword') {
it(`can output ${e} string`, () => {
expect(
typeof c2c(c1)
.toColor(c2)
.withPercent(50)
.get(e)
).toEqual('string')
})
} else {
it(`can output ${e} string`, () => {
expect(
typeof c2c(c1)
.toColor(c2)
.withPercent(0)
.get(e)
).toEqual('string')
})
}
})
it('throws error if color model is not recognized', () => {
expect(() =>
c2c('red')
.toColor('green')
.withPercent(0)
.get('something')
).toThrow()
})
})