@@ -42,6 +42,7 @@ describe("animate", () => {
4242 }
4343
4444 const testCases : Array < TestCase > = [
45+ // duration
4546 {
4647 name : "should accept valid duration" ,
4748 edit : ( keyframe ) => ( keyframe . duration = 100 ) ,
@@ -70,6 +71,7 @@ describe("animate", () => {
7071 edit : ( keyframe ) => ( keyframe . duration = "123" as any ) ,
7172 error : / d u r a t i o n .* n u m b e r .* s t r i n g / g,
7273 } ,
74+ // delay
7375 {
7476 name : "should accept valid delay" ,
7577 edit : ( keyframe ) => ( keyframe . delay = 200 ) ,
@@ -97,6 +99,7 @@ describe("animate", () => {
9799 edit : ( keyframe ) => ( keyframe . delay = "123" as any ) ,
98100 error : / d e l a y .* n u m b e r .* s t r i n g / g,
99101 } ,
102+ // timingFunction
100103 {
101104 name : "should accept known timingFunction" ,
102105 edit : ( keyframe ) => ( keyframe . timingFunction = "ease" ) ,
@@ -115,6 +118,7 @@ describe("animate", () => {
115118 edit : ( keyframe ) => ( keyframe . timingFunction = "unknown" as any ) ,
116119 error : / t i m i n g F u n c t i o n .* n o t r e c o g n i z e d .* u n k n o w n / g,
117120 } ,
121+ // callback
118122 {
119123 name : "should accept valid callback" ,
120124 edit : ( keyframe ) => ( keyframe . callback = ( ) => console . log ( "test" ) ) ,
@@ -128,12 +132,97 @@ describe("animate", () => {
128132 edit : ( keyframe ) => ( keyframe . callback = { } as any ) ,
129133 error : / c a l l b a c k .* f u n c t i o n .* o b j e c t / g,
130134 } ,
131- // TODO complete blobOptions type tests, should be the same as non-animated.
135+ // blobOptions
132136 {
133137 name : "should reject undefined blobOptions" ,
134138 edit : ( keyframe ) => delete keyframe . blobOptions ,
135139 error : / b l o b O p t i o n s .* o b j e c t .* u n d e f i n e d / g,
136140 } ,
141+ {
142+ name : "should reject invalid blobOptions" ,
143+ edit : ( keyframe ) => ( keyframe . blobOptions = null as any ) ,
144+ error : / b l o b O p t i o n s .* o b j e c t .* n u l l / g,
145+ } ,
146+ // blobOptions.seed
147+ {
148+ name : "should accept number blobOptions seed" ,
149+ edit : ( keyframe ) => ( keyframe . blobOptions . seed = 123 ) ,
150+ } ,
151+ {
152+ name : "should accept string blobOptions seed" ,
153+ edit : ( keyframe ) => ( keyframe . blobOptions . seed = "test" ) ,
154+ } ,
155+ {
156+ name : "should reject undefined blobOptions seed" ,
157+ edit : ( keyframe ) => delete keyframe . blobOptions . seed ,
158+ error : / s e e d .* s t r i n g .* n u m b e r .* u n d e f i n e d / g,
159+ } ,
160+ {
161+ name : "should reject broken blobOptions seed" ,
162+ edit : ( keyframe ) => ( keyframe . blobOptions . seed = NaN ) ,
163+ error : / s e e d .* s t r i n g .* n u m b e r .* N a N / g,
164+ } ,
165+ // blobOptions.extraPoints
166+ {
167+ name : "should accept valid blobOptions extraPoints" ,
168+ edit : ( keyframe ) => ( keyframe . blobOptions . extraPoints = 4 ) ,
169+ } ,
170+ {
171+ name : "should reject undefined blobOptions extraPoints" ,
172+ edit : ( keyframe ) => delete keyframe . blobOptions . extraPoints ,
173+ error : / b l o b O p t i o n s .* e x t r a P o i n t s .* n u m b e r .* u n d e f i n e d / g,
174+ } ,
175+ {
176+ name : "should reject broken blobOptions extraPoints" ,
177+ edit : ( keyframe ) => ( keyframe . blobOptions . extraPoints = NaN ) ,
178+ error : / b l o b O p t i o n s .* e x t r a P o i n t s .* n u m b e r .* N a N / g,
179+ } ,
180+ {
181+ name : "should reject negative blobOptions extraPoints" ,
182+ edit : ( keyframe ) => ( keyframe . blobOptions . extraPoints = - 2 ) ,
183+ error : / b l o b O p t i o n s .* e x t r a P o i n t s .* i n v a l i d / g,
184+ } ,
185+ // blobOptions.randomness
186+ {
187+ name : "should accept valid blobOptions randomness" ,
188+ edit : ( keyframe ) => ( keyframe . blobOptions . randomness = 3 ) ,
189+ } ,
190+ {
191+ name : "should reject undefined blobOptions randomness" ,
192+ edit : ( keyframe ) => delete keyframe . blobOptions . randomness ,
193+ error : / b l o b O p t i o n s .* r a n d o m n e s s .* n u m b e r .* u n d e f i n e d / g,
194+ } ,
195+ {
196+ name : "should reject broken blobOptions randomness" ,
197+ edit : ( keyframe ) => ( keyframe . blobOptions . randomness = NaN ) ,
198+ error : / b l o b O p t i o n s .* r a n d o m n e s s .* n u m b e r .* N a N / g,
199+ } ,
200+ {
201+ name : "should reject negative blobOptions randomness" ,
202+ edit : ( keyframe ) => ( keyframe . blobOptions . randomness = - 10 ) ,
203+ error : / b l o b O p t i o n s .* r a n d o m n e s s .* i n v a l i d / g,
204+ } ,
205+ // blobOptions.size
206+ {
207+ name : "should accept valid blobOptions size" ,
208+ edit : ( keyframe ) => ( keyframe . blobOptions . size = 40 ) ,
209+ } ,
210+ {
211+ name : "should reject undefined blobOptions size" ,
212+ edit : ( keyframe ) => delete keyframe . blobOptions . size ,
213+ error : / b l o b O p t i o n s .* s i z e .* n u m b e r .* u n d e f i n e d / g,
214+ } ,
215+ {
216+ name : "should reject broken blobOptions size" ,
217+ edit : ( keyframe ) => ( keyframe . blobOptions . size = NaN ) ,
218+ error : / b l o b O p t i o n s .* s i z e .* n u m b e r .* N a N / g,
219+ } ,
220+ {
221+ name : "should reject negative blobOptions size" ,
222+ edit : ( keyframe ) => ( keyframe . blobOptions . size = - 1 ) ,
223+ error : / b l o b O p t i o n s .* s i z e .* i n v a l i d / g,
224+ } ,
225+ // canvasOptions
137226 {
138227 name : "should accept empty canvasOptions" ,
139228 edit : ( keyframe ) => ( keyframe . canvasOptions = { } ) ,
@@ -144,8 +233,13 @@ describe("animate", () => {
144233 } ,
145234 {
146235 name : "should reject invalid canvasOptions" ,
147- edit : ( keyframe ) => keyframe . canvasOptions = null as any ,
148- error : / c a n v a s O p t i o n s .* o b j e c t .* n u l l / g
236+ edit : ( keyframe ) => ( keyframe . canvasOptions = null as any ) ,
237+ error : / c a n v a s O p t i o n s .* o b j e c t .* n u l l / g,
238+ } ,
239+ // canvasOptions.offsetX
240+ {
241+ name : "should accept valid canvasOptions offsetX" ,
242+ edit : ( keyframe ) => ( keyframe . canvasOptions = { offsetX : 100 } ) ,
149243 } ,
150244 {
151245 name : "should accept undefined canvasOptions offsetX" ,
@@ -156,6 +250,11 @@ describe("animate", () => {
156250 edit : ( keyframe ) => ( keyframe . canvasOptions = { offsetX : NaN } ) ,
157251 error : / c a n v a s O p t i o n s .* o f f s e t X .* n u m b e r .* N a N / g,
158252 } ,
253+ // canvasOptions.offsetY
254+ {
255+ name : "should accept valid canvasOptions offsetY" ,
256+ edit : ( keyframe ) => ( keyframe . canvasOptions = { offsetY : 222 } ) ,
257+ } ,
159258 {
160259 name : "should accept undefined canvasOptions offsetY" ,
161260 edit : ( keyframe ) => delete keyframe . canvasOptions ?. offsetY ,
@@ -205,7 +304,7 @@ describe("animate", () => {
205304 // Run all cases when given more than one frame, asserting on a random one.
206305 const nthLength = 2 + Math . floor ( 16 * Math . random ( ) ) ;
207306 const nthIndex = Math . floor ( nthLength * Math . random ( ) ) ;
208- describe ( " nth" , ( ) => runSuite ( nthLength , nthIndex ) ) ;
307+ describe ( ` nth ( ${ nthIndex + 1 } / ${ nthLength } )` , ( ) => runSuite ( nthLength , nthIndex ) ) ;
209308 } ) ;
210309 } ) ;
211310 } ) ;
0 commit comments