diff --git a/packages/core/package.json b/packages/core/package.json index 6fdfc0b77f2..49e581e4719 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -25,8 +25,6 @@ "module": "dist/index.mjs", "scripts": { "clean": "rimraf dist", - "nodebuild": "BABEL_ENV=production rollup -c -o dist/index.js -f cjs", - "modulebuild": "BABEL_ENV=production rollup -c -o dist/index.mjs -f es", "build": "npm run clean && rollup -c && rollup -c rollup.tests.js", "testonly": "BABEL_ENV=production mocha tests/*.test.js", "test": "BABEL_ENV=production nyc -x node_modules -x tests/fixtures -x bin-pack mocha tests/*.test.js", @@ -35,7 +33,7 @@ "symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -", "report": "BABEL_ENV=production nyc report --reporter=html", "coverage": "BABEL_ENV=production nyc npm test && nyc report --reporter=text-lcov > coverage.lcov && ./node_modules/.bin/codecov", - "watch": "BABEL_ENV=production rollup -c -w -o dist/index.mjs -f es" + "watch": "BABEL_ENV=production rollup -c -w" }, "peerDependencies": {}, "dependencies": { diff --git a/packages/core/rollup.config.js b/packages/core/rollup.config.js index 995c6190f00..588edf000b6 100644 --- a/packages/core/rollup.config.js +++ b/packages/core/rollup.config.js @@ -17,6 +17,11 @@ export default { file: "dist/index.mjs", format: "es", sourcemap: true + }, + { + file: "tests/dist/index.js", + format: "cjs", + sourcemap: true } ], plugins: [ diff --git a/packages/core/tests/attributes.test.js b/packages/core/tests/attributes.test.js index 49de8f264e6..7d449f41c8c 100644 --- a/packages/core/tests/attributes.test.js +++ b/packages/core/tests/attributes.test.js @@ -1,5 +1,5 @@ let expect = require("chai").expect; -let Point = require("./dist/index.js").Point; +let Point = require("./dist").Point; function newAttr() { return new Point(0, 0).attributes; diff --git a/packages/core/tests/design.test.js b/packages/core/tests/design.test.js index 5b68c14cc22..eabd2a827ec 100644 --- a/packages/core/tests/design.test.js +++ b/packages/core/tests/design.test.js @@ -1,5 +1,5 @@ let expect = require("chai").expect; -let freesewing = require("./dist/index.js"); +let freesewing = require("./dist"); it("Design constructor should return pattern constructor", () => { let design = new freesewing.Design({ @@ -61,3 +61,40 @@ it("Design constructor should load array of plugins", () => { let pattern = new design(); expect(pattern.hooks.preRender.length).to.equal(2); }); + +it("Design constructor should construct basic part order", () => { + let design = new freesewing.Design({ + dependencies: { step4: "step3" }, + inject: { step4: "step3" }, + parts: ["step1", "step2"] + }); + let pattern = new design(); + 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"); +}); + +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(); + 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"); +}); + +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(); + 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"); +}); diff --git a/packages/core/tests/hooks.test.js b/packages/core/tests/hooks.test.js index e65ea326031..3d95c91fdb6 100644 --- a/packages/core/tests/hooks.test.js +++ b/packages/core/tests/hooks.test.js @@ -1,5 +1,5 @@ let expect = require("chai").expect; -let freesewing = require("./dist/index.js"); +let freesewing = require("./dist"); it("Should contain all hooks", () => { let pattern = new freesewing.Pattern(); diff --git a/packages/core/tests/part.test.js b/packages/core/tests/part.test.js index 24588457b6c..db06b3c6144 100644 --- a/packages/core/tests/part.test.js +++ b/packages/core/tests/part.test.js @@ -1,5 +1,5 @@ let expect = require("chai").expect; -let freesewing = require("./dist/index.js"); +let freesewing = require("./dist"); it("Svg constructor should initialize object", () => { let pattern = new freesewing.Pattern(); diff --git a/packages/core/tests/path.test.js b/packages/core/tests/path.test.js index d1def091e02..7dcc95d7d37 100644 --- a/packages/core/tests/path.test.js +++ b/packages/core/tests/path.test.js @@ -1,5 +1,5 @@ let expect = require("chai").expect; -let freesewing = require("./dist/index.js"); +let freesewing = require("./dist"); let round = freesewing.utils.round; it("Should offset a line", () => { diff --git a/packages/core/tests/pattern.test.js b/packages/core/tests/pattern.test.js index 3946525ab14..4049391ad13 100644 --- a/packages/core/tests/pattern.test.js +++ b/packages/core/tests/pattern.test.js @@ -1,5 +1,5 @@ let expect = require("chai").expect; -let freesewing = require("./dist/index.js"); +let freesewing = require("./dist"); it("Pattern constructor should initialize object", () => { let pattern = new freesewing.Pattern({ diff --git a/packages/core/tests/point.test.js b/packages/core/tests/point.test.js index c5baf7e9297..d5b15daea8f 100644 --- a/packages/core/tests/point.test.js +++ b/packages/core/tests/point.test.js @@ -1,5 +1,5 @@ let expect = require("chai").expect; -let Point = require("./dist/index.js").Point; +let Point = require("./dist").Point; it("Should return point object", () => { let result = new Point(2, 4); diff --git a/packages/core/tests/snippet.test.js b/packages/core/tests/snippet.test.js index 64de9b15db6..eb81f3a847d 100644 --- a/packages/core/tests/snippet.test.js +++ b/packages/core/tests/snippet.test.js @@ -1,5 +1,5 @@ let expect = require("chai").expect; -let freesewing = require("./dist/index.js"); +let freesewing = require("./dist"); it("Should create a snippet", () => { let snip1 = new freesewing.Snippet("test", new freesewing.Point(12, 34)); diff --git a/packages/core/tests/store.test.js b/packages/core/tests/store.test.js index 2182c023ced..fd6db00c5cf 100644 --- a/packages/core/tests/store.test.js +++ b/packages/core/tests/store.test.js @@ -1,5 +1,5 @@ let expect = require("chai").expect; -let freesewing = require("./dist/index.js"); +let freesewing = require("./dist"); let pattern = new freesewing.Pattern(); let store = pattern.store; diff --git a/packages/core/tests/svg.test.js b/packages/core/tests/svg.test.js index 591d8d8f908..e9f413ec6c7 100644 --- a/packages/core/tests/svg.test.js +++ b/packages/core/tests/svg.test.js @@ -3,7 +3,7 @@ let render = require("./fixtures/render.js"); let expect = require("chai").expect; let chai = require("chai"); chai.use(require("chai-string")); -let freesewing = require("./dist/index.js"); +let freesewing = require("./dist"); var round = freesewing.utils.round; it("Svg constructor should initialize object", () => { diff --git a/packages/core/tests/utils.test.js b/packages/core/tests/utils.test.js index 1011d73da2c..d20e3c2c0c7 100644 --- a/packages/core/tests/utils.test.js +++ b/packages/core/tests/utils.test.js @@ -1,5 +1,5 @@ let expect = require("chai").expect; -let freesewing = require("./dist/index.js"); +let freesewing = require("./dist"); let utils = freesewing.utils; it("Should return the correct macro name", () => {