@@ -3,64 +3,89 @@ import { ClassObjectSink, ToggleClassSink } from './class-sink';
3
3
4
4
describe ( 'Class Sink' , ( ) => {
5
5
6
- describe ( 'Given a class object' , ( ) => {
7
-
8
- it ( 'sets classes for truthy attributes on sink' , ( ) => {
9
- const el = MockElement ( ) ;
10
- const sink = ClassObjectSink ( < HTMLElement > el ) ;
11
-
12
- sink ( {
13
- class1 : true ,
14
- class2 : 1 ,
15
- class3 : 'yes!' ,
16
- } ) ;
17
- expect ( el . className ) . toContain ( 'class1' ) ;
18
- expect ( el . className ) . toContain ( 'class2' ) ;
19
- expect ( el . className ) . toContain ( 'class3' ) ;
20
- } ) ;
21
-
22
- it ( 'clears classes for falsy attributes on sink' , ( ) => {
23
- const el = MockElement ( { className : 'class1 class2 class3' } ) ;
24
- const sink = ClassObjectSink ( < HTMLElement > el ) ;
25
- expect ( el . className ) . toContain ( 'class1' ) ;
26
- expect ( el . className ) . toContain ( 'class2' ) ;
27
- expect ( el . className ) . toContain ( 'class3' ) ;
28
-
29
- sink ( {
30
- class1 : false ,
31
- class2 : 0 ,
32
- class3 : '' ,
33
- } ) ;
34
- expect ( el . className ) . not . toContain ( 'class1' ) ;
35
- expect ( el . className ) . not . toContain ( 'class2' ) ;
36
- expect ( el . className ) . not . toContain ( 'class3' ) ;
37
- } ) ;
38
-
39
- } ) ;
6
+ describe ( 'Given a class string' , ( ) => {
7
+
8
+ it ( 'sets className on sink' , ( ) => {
9
+ const el = MockElement ( { className : 'class1 class2 class3' } ) ;
10
+ const sink = ClassObjectSink ( < HTMLElement > el ) ;
11
+
12
+ sink ( 'class1' ) ;
13
+ expect ( el . className ) . toEqual ( 'class1' ) ;
14
+ } ) ;
15
+
16
+ it ( 'clears classes for empty strings on sink' , ( ) => {
17
+ const el = MockElement ( { className : 'class1 class2 class3' } ) ;
18
+ const sink = ClassObjectSink ( < HTMLElement > el ) ;
19
+
20
+ sink ( {
21
+ class1 : false ,
22
+ class2 : 0 ,
23
+ class3 : '' ,
24
+ } ) ;
25
+ expect ( el . className ) . toEqual ( '' ) ;
26
+ } ) ;
27
+
28
+ } ) ;
29
+
30
+
31
+ describe ( 'Given a class object' , ( ) => {
32
+
33
+ it ( 'sets classes for truthy attributes on sink' , ( ) => {
34
+ const el = MockElement ( ) ;
35
+ const sink = ClassObjectSink ( < HTMLElement > el ) ;
36
+
37
+ sink ( {
38
+ class1 : true ,
39
+ class2 : 1 ,
40
+ class3 : 'yes!' ,
41
+ } ) ;
42
+ expect ( el . className ) . toContain ( 'class1' ) ;
43
+ expect ( el . className ) . toContain ( 'class2' ) ;
44
+ expect ( el . className ) . toContain ( 'class3' ) ;
45
+ } ) ;
46
+
47
+ it ( 'clears classes for falsy attributes on sink' , ( ) => {
48
+ const el = MockElement ( { className : 'class1 class2 class3' } ) ;
49
+ const sink = ClassObjectSink ( < HTMLElement > el ) ;
50
+ expect ( el . className ) . toContain ( 'class1' ) ;
51
+ expect ( el . className ) . toContain ( 'class2' ) ;
52
+ expect ( el . className ) . toContain ( 'class3' ) ;
53
+
54
+ sink ( {
55
+ class1 : false ,
56
+ class2 : 0 ,
57
+ class3 : '' ,
58
+ } ) ;
59
+ expect ( el . className ) . not . toContain ( 'class1' ) ;
60
+ expect ( el . className ) . not . toContain ( 'class2' ) ;
61
+ expect ( el . className ) . not . toContain ( 'class3' ) ;
62
+ } ) ;
63
+
64
+ } ) ;
40
65
41
66
} ) ;
42
67
43
68
describe ( 'Class Toggle Sink' , ( ) => {
44
69
45
- describe ( 'Given a class object' , ( ) => {
70
+ describe ( 'Given a class object' , ( ) => {
46
71
47
- it ( 'sets classes for truthy value on sink' , ( ) => {
48
- const el = MockElement ( ) ;
49
- const sink = ToggleClassSink ( 'class1' ) ( < HTMLElement > el ) ;
72
+ it ( 'sets classes for truthy value on sink' , ( ) => {
73
+ const el = MockElement ( ) ;
74
+ const sink = ToggleClassSink ( 'class1' ) ( < HTMLElement > el ) ;
50
75
51
- sink ( true ) ;
52
- expect ( el . className ) . toContain ( 'class1' ) ;
53
- } ) ;
76
+ sink ( true ) ;
77
+ expect ( el . className ) . toContain ( 'class1' ) ;
78
+ } ) ;
54
79
55
- it ( 'clears classes for falsy values on sink' , ( ) => {
56
- const el = MockElement ( { className : 'class1' } ) ;
57
- const sink = ToggleClassSink ( 'class1' ) ( < HTMLElement > el ) ;
80
+ it ( 'clears classes for falsy values on sink' , ( ) => {
81
+ const el = MockElement ( { className : 'class1' } ) ;
82
+ const sink = ToggleClassSink ( 'class1' ) ( < HTMLElement > el ) ;
58
83
59
- sink ( false ) ;
60
- expect ( el . className ) . not . toContain ( 'class1' ) ;
61
- } ) ;
84
+ sink ( false ) ;
85
+ expect ( el . className ) . not . toContain ( 'class1' ) ;
86
+ } ) ;
62
87
63
- } ) ;
88
+ } ) ;
64
89
65
90
} ) ;
66
91
0 commit comments