@@ -24,8 +24,19 @@ import { functionWrapper } from './utils';
2424describe ( 'font' , ( ) => {
2525 const fn = functionWrapper ( font ) ;
2626
27+ const args = {
28+ align : 'left' ,
29+ color : null ,
30+ family : openSans . value ,
31+ italic : false ,
32+ lHeight : null ,
33+ size : 14 ,
34+ underline : false ,
35+ weight : 'normal' ,
36+ } ;
37+
2738 describe ( 'default output' , ( ) => {
28- const result = fn ( null ) ;
39+ const result = fn ( null , args ) ;
2940
3041 it ( 'returns a style' , ( ) => {
3142 expect ( result ) . toMatchObject ( {
@@ -39,163 +50,117 @@ describe('font', () => {
3950 describe ( 'args' , ( ) => {
4051 describe ( 'size' , ( ) => {
4152 it ( 'sets font size' , ( ) => {
42- const result = fn ( null , { size : 20 } ) ;
53+ const result = fn ( null , { ... args , size : 20 } ) ;
4354 expect ( result ) . toMatchObject ( {
4455 spec : {
4556 fontSize : '20px' ,
4657 } ,
4758 } ) ;
4859 expect ( result . css ) . toContain ( 'font-size:20px' ) ;
4960 } ) ;
50-
51- it ( 'defaults to 14px' , ( ) => {
52- const result = fn ( null ) ;
53- expect ( result ) . toMatchObject ( {
54- spec : {
55- fontSize : '14px' ,
56- } ,
57- } ) ;
58- expect ( result . css ) . toContain ( 'font-size:14px' ) ;
59- } ) ;
6061 } ) ;
6162
6263 describe ( 'lHeight' , ( ) => {
6364 it ( 'sets line height' , ( ) => {
64- const result = fn ( null , { lHeight : 30 } ) ;
65+ const result = fn ( null , { ... args , lHeight : 30 } ) ;
6566 expect ( result ) . toMatchObject ( {
6667 spec : {
6768 lineHeight : '30px' ,
6869 } ,
6970 } ) ;
7071 expect ( result . css ) . toContain ( 'line-height:30px' ) ;
7172 } ) ;
72-
73- it ( 'defaults to 1' , ( ) => {
74- const result = fn ( null ) ;
75- expect ( result . spec . lineHeight ) . toBe ( '1' ) ;
76- expect ( result . css ) . toContain ( 'line-height:1' ) ;
77- } ) ;
7873 } ) ;
7974
8075 describe ( 'family' , ( ) => {
8176 it ( 'sets font family' , ( ) => {
82- const result = fn ( null , { family : 'Optima, serif' } ) ;
77+ const result = fn ( null , { ... args , family : 'Optima, serif' } ) ;
8378 expect ( result . spec . fontFamily ) . toBe ( 'Optima, serif' ) ;
8479 expect ( result . css ) . toContain ( 'font-family:Optima, serif' ) ;
8580 } ) ;
86-
87- it ( `defaults to "${ openSans . value } "` , ( ) => {
88- const result = fn ( null ) ;
89- expect ( result . spec . fontFamily ) . toBe ( `"${ openSans . value } "` ) ;
90- expect ( result . css ) . toContain ( `font-family:"${ openSans . value } "` ) ;
91- } ) ;
9281 } ) ;
9382
9483 describe ( 'color' , ( ) => {
9584 it ( 'sets font color' , ( ) => {
96- const result = fn ( null , { color : 'blue' } ) ;
85+ const result = fn ( null , { ... args , color : 'blue' } ) ;
9786 expect ( result . spec . color ) . toBe ( 'blue' ) ;
9887 expect ( result . css ) . toContain ( 'color:blue' ) ;
9988 } ) ;
10089 } ) ;
10190
10291 describe ( 'weight' , ( ) => {
10392 it ( 'sets font weight' , ( ) => {
104- let result = fn ( null , { weight : 'normal' } ) ;
93+ let result = fn ( null , { ... args , weight : 'normal' } ) ;
10594 expect ( result . spec . fontWeight ) . toBe ( 'normal' ) ;
10695 expect ( result . css ) . toContain ( 'font-weight:normal' ) ;
10796
108- result = fn ( null , { weight : 'bold' } ) ;
97+ result = fn ( null , { ... args , weight : 'bold' } ) ;
10998 expect ( result . spec . fontWeight ) . toBe ( 'bold' ) ;
11099 expect ( result . css ) . toContain ( 'font-weight:bold' ) ;
111100
112- result = fn ( null , { weight : 'bolder' } ) ;
101+ result = fn ( null , { ... args , weight : 'bolder' } ) ;
113102 expect ( result . spec . fontWeight ) . toBe ( 'bolder' ) ;
114103 expect ( result . css ) . toContain ( 'font-weight:bolder' ) ;
115104
116- result = fn ( null , { weight : 'lighter' } ) ;
105+ result = fn ( null , { ... args , weight : 'lighter' } ) ;
117106 expect ( result . spec . fontWeight ) . toBe ( 'lighter' ) ;
118107 expect ( result . css ) . toContain ( 'font-weight:lighter' ) ;
119108
120- result = fn ( null , { weight : '400' } ) ;
109+ result = fn ( null , { ... args , weight : '400' } ) ;
121110 expect ( result . spec . fontWeight ) . toBe ( '400' ) ;
122111 expect ( result . css ) . toContain ( 'font-weight:400' ) ;
123112 } ) ;
124113
125- it ( "defaults to 'normal'" , ( ) => {
126- const result = fn ( null ) ;
127- expect ( result . spec . fontWeight ) . toBe ( 'normal' ) ;
128- expect ( result . css ) . toContain ( 'font-weight:normal' ) ;
129- } ) ;
130-
131114 it ( 'throws when provided an invalid weight' , ( ) => {
132- expect ( ( ) => fn ( null , { weight : 'foo' } ) ) . toThrow ( ) ;
115+ expect ( ( ) => fn ( null , { ... args , weight : 'foo' } ) ) . toThrow ( ) ;
133116 } ) ;
134117 } ) ;
135118
136119 describe ( 'underline' , ( ) => {
137120 it ( 'sets text underline' , ( ) => {
138- let result = fn ( null , { underline : true } ) ;
121+ let result = fn ( null , { ... args , underline : true } ) ;
139122 expect ( result . spec . textDecoration ) . toBe ( 'underline' ) ;
140123 expect ( result . css ) . toContain ( 'text-decoration:underline' ) ;
141124
142- result = fn ( null , { underline : false } ) ;
143- expect ( result . spec . textDecoration ) . toBe ( 'none' ) ;
144- expect ( result . css ) . toContain ( 'text-decoration:none' ) ;
145- } ) ;
146-
147- it ( 'defaults to false' , ( ) => {
148- const result = fn ( null ) ;
125+ result = fn ( null , { ...args , underline : false } ) ;
149126 expect ( result . spec . textDecoration ) . toBe ( 'none' ) ;
150127 expect ( result . css ) . toContain ( 'text-decoration:none' ) ;
151128 } ) ;
152129 } ) ;
153130
154131 describe ( 'italic' , ( ) => {
155132 it ( 'sets italic' , ( ) => {
156- let result = fn ( null , { italic : true } ) ;
133+ let result = fn ( null , { ... args , italic : true } ) ;
157134 expect ( result . spec . fontStyle ) . toBe ( 'italic' ) ;
158135 expect ( result . css ) . toContain ( 'font-style:italic' ) ;
159136
160- result = fn ( null , { italic : false } ) ;
161- expect ( result . spec . fontStyle ) . toBe ( 'normal' ) ;
162- expect ( result . css ) . toContain ( 'font-style:normal' ) ;
163- } ) ;
164-
165- it ( 'defaults to false' , ( ) => {
166- const result = fn ( null ) ;
137+ result = fn ( null , { ...args , italic : false } ) ;
167138 expect ( result . spec . fontStyle ) . toBe ( 'normal' ) ;
168139 expect ( result . css ) . toContain ( 'font-style:normal' ) ;
169140 } ) ;
170141 } ) ;
171142
172143 describe ( 'align' , ( ) => {
173144 it ( 'sets text alignment' , ( ) => {
174- let result = fn ( null , { align : 'left' } ) ;
145+ let result = fn ( null , { ... args , align : 'left' } ) ;
175146 expect ( result . spec . textAlign ) . toBe ( 'left' ) ;
176147 expect ( result . css ) . toContain ( 'text-align:left' ) ;
177148
178- result = fn ( null , { align : 'center' } ) ;
149+ result = fn ( null , { ... args , align : 'center' } ) ;
179150 expect ( result . spec . textAlign ) . toBe ( 'center' ) ;
180151 expect ( result . css ) . toContain ( 'text-align:center' ) ;
181152
182- result = fn ( null , { align : 'right' } ) ;
153+ result = fn ( null , { ... args , align : 'right' } ) ;
183154 expect ( result . spec . textAlign ) . toBe ( 'right' ) ;
184155 expect ( result . css ) . toContain ( 'text-align:right' ) ;
185156
186- result = fn ( null , { align : 'justify' } ) ;
157+ result = fn ( null , { ... args , align : 'justify' } ) ;
187158 expect ( result . spec . textAlign ) . toBe ( 'justify' ) ;
188159 expect ( result . css ) . toContain ( 'text-align:justify' ) ;
189160 } ) ;
190161
191- it ( `defaults to 'left'` , ( ) => {
192- const result = fn ( null ) ;
193- expect ( result . spec . textAlign ) . toBe ( 'left' ) ;
194- expect ( result . css ) . toContain ( 'text-align:left' ) ;
195- } ) ;
196-
197162 it ( 'throws when provided an invalid alignment' , ( ) => {
198- expect ( ( ) => fn ( null , { align : 'foo' } ) ) . toThrow ( ) ;
163+ expect ( ( ) => fn ( null , { ... args , align : 'foo' } ) ) . toThrow ( ) ;
199164 } ) ;
200165 } ) ;
201166 } ) ;
0 commit comments