Skip to content

Commit debdb82

Browse files
committed
add tests for main api canvasOptions
1 parent 3de8438 commit debdb82

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed

public/blobs.test.ts

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
/canvasOptions.*object.*null/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: /canvasOptions.*offsetX.*number.*NaN/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: /canvasOptions.*offsetY.*number.*NaN/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+
/svgOptions.*object.*null/g,
220+
);
221+
});
222+
});
157223
});
158224

159225
describe("svgPath", () => {

0 commit comments

Comments
 (0)