2022-08-25 11:47:54 +02:00
|
|
|
import chai from "chai"
|
2022-08-28 02:14:39 +02:00
|
|
|
import { Design } from "./dist/index.mjs"
|
2022-08-25 11:47:54 +02:00
|
|
|
|
|
|
|
const expect = chai.expect
|
2019-02-16 09:27:38 +01:00
|
|
|
|
2022-08-27 09:27:07 +02:00
|
|
|
describe('Design', () => {
|
|
|
|
it("Design constructor should return pattern constructor", () => {
|
2022-08-28 02:14:39 +02:00
|
|
|
const design = new Design({
|
2022-08-27 09:27:07 +02:00
|
|
|
foo: "bar",
|
|
|
|
options: {
|
|
|
|
constant: 2,
|
|
|
|
percentage: { pct: 30, min: 0, max: 100 }
|
2019-02-16 09:27:38 +01:00
|
|
|
}
|
2022-08-27 09:27:07 +02:00
|
|
|
});
|
|
|
|
|
|
|
|
const pattern = new design();
|
|
|
|
expect(pattern.width).to.equal(0);
|
|
|
|
expect(pattern.height).to.equal(0);
|
|
|
|
expect(pattern.settings.complete).to.equal(true);
|
|
|
|
expect(pattern.parts).to.eql({});
|
|
|
|
expect(pattern.settings.units).to.equal("metric");
|
|
|
|
expect(pattern.config.foo).to.equal("bar");
|
|
|
|
expect(pattern.settings.options.constant).to.equal(2);
|
|
|
|
expect(pattern.settings.options.percentage).to.equal(0.3);
|
|
|
|
});
|
2019-05-31 14:51:59 +02:00
|
|
|
|
2022-08-27 09:27:07 +02:00
|
|
|
/*
|
|
|
|
it("Design constructor should not require depencies for injected parts", () => {
|
|
|
|
let design = new freesewing.Design({
|
|
|
|
inject: { step4: "step3" },
|
|
|
|
parts: ["step1", "step2"]
|
|
|
|
});
|
|
|
|
let pattern = new design().init();
|
|
|
|
expect(pattern.config.draftOrder[0]).to.equal("step3");
|
|
|
|
expect(pattern.config.draftOrder[1]).to.equal("step4");
|
|
|
|
expect(pattern.config.draftOrder[2]).to.equal("step1");
|
|
|
|
expect(pattern.config.draftOrder[3]).to.equal("step2");
|
2019-05-31 14:51:59 +02:00
|
|
|
});
|
|
|
|
|
2022-08-27 09:27:07 +02:00
|
|
|
it("Design constructor should handle parts and dependencies overlap", () => {
|
|
|
|
let design = new freesewing.Design({
|
|
|
|
inject: { step4: "step3" },
|
|
|
|
parts: ["step1", "step2", "step3"]
|
|
|
|
});
|
|
|
|
let pattern = new design().init();
|
|
|
|
expect(pattern.config.draftOrder[0]).to.equal("step3");
|
|
|
|
expect(pattern.config.draftOrder[1]).to.equal("step4");
|
|
|
|
expect(pattern.config.draftOrder[2]).to.equal("step1");
|
|
|
|
expect(pattern.config.draftOrder[3]).to.equal("step2");
|
2019-05-31 14:51:59 +02:00
|
|
|
});
|
2019-05-31 16:09:41 +02:00
|
|
|
|
2022-08-27 09:27:07 +02:00
|
|
|
it("Design constructor discover all parts", () => {
|
|
|
|
let design = new freesewing.Design({
|
|
|
|
inject: {
|
|
|
|
step4: "step3",
|
|
|
|
step5: "step4",
|
|
|
|
step6: "step5",
|
|
|
|
step7: "step6",
|
|
|
|
step8: "step7",
|
|
|
|
step9: "step8",
|
|
|
|
step10: "step9",
|
|
|
|
step11: "step10"
|
|
|
|
},
|
|
|
|
hide: [],
|
|
|
|
parts: ["step1", "step2"]
|
|
|
|
});
|
|
|
|
let pattern = new design().init();
|
|
|
|
expect(pattern.config.draftOrder[0]).to.equal("step3");
|
|
|
|
expect(pattern.config.draftOrder[1]).to.equal("step4");
|
|
|
|
expect(pattern.config.draftOrder[2]).to.equal("step5");
|
|
|
|
expect(pattern.config.draftOrder[3]).to.equal("step6");
|
|
|
|
expect(pattern.config.draftOrder[4]).to.equal("step7");
|
|
|
|
expect(pattern.config.draftOrder[5]).to.equal("step8");
|
|
|
|
expect(pattern.config.draftOrder[6]).to.equal("step9");
|
|
|
|
expect(pattern.config.draftOrder[7]).to.equal("step10");
|
|
|
|
expect(pattern.config.draftOrder[8]).to.equal("step11");
|
|
|
|
expect(pattern.config.draftOrder[9]).to.equal("step1");
|
|
|
|
expect(pattern.config.draftOrder[10]).to.equal("step2");
|
2019-05-31 16:09:41 +02:00
|
|
|
});
|
2019-05-31 19:18:38 +02:00
|
|
|
|
2022-08-27 09:27:07 +02:00
|
|
|
it("Design constructor should handle Simon", () => {
|
|
|
|
let design = new freesewing.Design({
|
|
|
|
dependencies: {
|
|
|
|
sleeve: ["front", "back"]
|
|
|
|
},
|
|
|
|
inject: {
|
|
|
|
frontBase: "base",
|
|
|
|
backBase: "base",
|
|
|
|
back: "backBase",
|
|
|
|
front: "frontBase",
|
|
|
|
frontRight: "front",
|
|
|
|
frontLeft: "front",
|
|
|
|
buttonPlacket: "front",
|
|
|
|
buttonholePlacket: "front",
|
|
|
|
yoke: "backBase",
|
|
|
|
sleeve: "sleeveBase"
|
|
|
|
},
|
|
|
|
parts: [
|
|
|
|
"collarStand",
|
|
|
|
"collar",
|
|
|
|
"sleevePlacketUnderlap",
|
|
|
|
"sleevePlacketOverlap",
|
|
|
|
"cuff"
|
|
|
|
],
|
|
|
|
hide: ["base", "frontBase", "front", "backBase", "sleeveBase"]
|
|
|
|
});
|
|
|
|
let pattern = new design().init();
|
2019-05-31 19:18:38 +02:00
|
|
|
});
|
2022-02-05 07:11:09 +01:00
|
|
|
|
2022-08-27 09:27:07 +02:00
|
|
|
*/
|
|
|
|
|
2022-08-07 17:29:33 +02:00
|
|
|
})
|
|
|
|
|