@@ -148,12 +148,78 @@ describe("blobs", () => {
148148 describe ( "blobOptions" , ( ) => {
149149 testBlobOptions ( ( blobOptions ) => canvasPath ( blobOptions , genCanvasOptions ( ) ) ) ;
150150 } ) ;
151+
152+ describe ( "canvasOptions" , ( ) => {
153+ it ( "should accept generated canvasOptions" , ( ) => {
154+ expect ( ( ) => canvasPath ( genBlobOptions ( ) , genCanvasOptions ( ) ) ) . not . toThrow ( ) ;
155+ } ) ;
156+
157+ it ( "should accept undefined canvasOptions" , ( ) => {
158+ expect ( ( ) => canvasPath ( genBlobOptions ( ) , undefined as any ) ) . not . toThrow ( ) ;
159+ } ) ;
160+
161+ it ( "should reject invalid canvasOptions" , ( ) => {
162+ expect ( ( ) => canvasPath ( genBlobOptions ( ) , null as any ) ) . toThrow (
163+ / c a n v a s O p t i o n s .* o b j e c t .* n u l l / g,
164+ ) ;
165+ } ) ;
166+
167+ runSuite < CanvasOptions > ( {
168+ functionBeingTested : ( canvasOptions ) => canvasPath ( genBlobOptions ( ) , canvasOptions ) ,
169+ optionsGenerator : genCanvasOptions ,
170+ } ) ( [
171+ // offsetX
172+ {
173+ name : "should accept valid canvasOptions offsetX" ,
174+ edit : ( canvasOptions ) => ( canvasOptions . offsetX = 100 ) ,
175+ } ,
176+ {
177+ name : "should accept undefined canvasOptions offsetX" ,
178+ edit : ( canvasOptions ) => delete canvasOptions ?. offsetX ,
179+ } ,
180+ {
181+ name : "should reject broken canvasOptions offsetX" ,
182+ edit : ( canvasOptions ) => ( canvasOptions . offsetX = NaN ) ,
183+ 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,
184+ } ,
185+ // offsetY
186+ {
187+ name : "should accept valid canvasOptions offsetY" ,
188+ edit : ( canvasOptions ) => ( canvasOptions . offsetY = 222 ) ,
189+ } ,
190+ {
191+ name : "should accept undefined canvasOptions offsetY" ,
192+ edit : ( canvasOptions ) => delete canvasOptions ?. offsetY ,
193+ } ,
194+ {
195+ name : "should reject broken canvasOptions offsetY" ,
196+ edit : ( canvasOptions ) => ( canvasOptions . offsetY = NaN ) ,
197+ error : / c a n v a s O p t i o n s .* o f f s e t Y .* n u m b e r .* N a N / g,
198+ } ,
199+ ] ) ;
200+ } ) ;
151201 } ) ;
152202
153203 describe ( "svg" , ( ) => {
154204 describe ( "blobOptions" , ( ) => {
155205 testBlobOptions ( ( blobOptions ) => svg ( blobOptions , genSvgOptions ( ) ) ) ;
156206 } ) ;
207+
208+ describe ( "svgOptions" , ( ) => {
209+ it ( "should accept generated svgOptions" , ( ) => {
210+ expect ( ( ) => svg ( genBlobOptions ( ) , genSvgOptions ( ) ) ) . not . toThrow ( ) ;
211+ } ) ;
212+
213+ it ( "should accept undefined svgOptions" , ( ) => {
214+ expect ( ( ) => svg ( genBlobOptions ( ) , undefined as any ) ) . not . toThrow ( ) ;
215+ } ) ;
216+
217+ it ( "should reject invalid svgOptions" , ( ) => {
218+ expect ( ( ) => svg ( genBlobOptions ( ) , null as any ) ) . toThrow (
219+ / s v g O p t i o n s .* o b j e c t .* n u l l / g,
220+ ) ;
221+ } ) ;
222+ } ) ;
157223 } ) ;
158224
159225 describe ( "svgPath" , ( ) => {
0 commit comments