diff --git a/src/pattern.js b/src/pattern.js index 2da9adccf45..84dc46ad0f9 100644 --- a/src/pattern.js +++ b/src/pattern.js @@ -278,19 +278,21 @@ Pattern.prototype.pack = function() { * If partName is an array of names, any name needed * will cause this to return true */ -Pattern.prototype.needs = function(partName) { +Pattern.prototype.needs = function(partName, strict = false) { if (typeof partName !== "string") { for (let part of partName) { - if (this.needs(part)) return true; + if (this.needs(part, strict)) return true; } return false; } - if (typeof this.settings.only === "undefined") return true; - else if (this.settings.only === partName) return true; + if (typeof this.settings.only === "undefined") { + if (strict) return false; + else return true; + } else if (this.settings.only === partName) return true; else if ( typeof this.settings.only === "object" && this.settings.only.indexOf(partName) !== -1 - ) + ) { return true; - else return false; + } else return false; }; diff --git a/src/svg.js b/src/svg.js index b7095c88875..fddb14ab066 100644 --- a/src/svg.js +++ b/src/svg.js @@ -214,9 +214,6 @@ Svg.prototype.renderSnippet = function(snippet) { let svg = this.nl(); svg += ``; - if (snippet.description) { - svg += `${snippet.description}`; - } svg += ""; return svg; diff --git a/tests/fixtures/render.js b/tests/fixtures/render.js index 2a206a90bce..72c0419433c 100644 --- a/tests/fixtures/render.js +++ b/tests/fixtures/render.js @@ -372,7 +372,7 @@ var render = { -This is a snippet + diff --git a/tests/pattern.test.js b/tests/pattern.test.js index bb845543e02..ab1a8786899 100644 --- a/tests/pattern.test.js +++ b/tests/pattern.test.js @@ -157,8 +157,14 @@ it("Should check whether a parts is needed with array", () => { let pattern = new freesewing.Pattern(); pattern.settings.only = ["test", "foo", "bar"]; expect(pattern.needs("foo")).to.equal(true); - //expect(pattern.needs(["bar"])).to.equal(true); - //expect(pattern.needs(["mest", "foo"])).to.equal(true); expect(pattern.needs(["mist", "hugs"])).to.equal(false); - //expect(pattern.needs("fo")).to.equal(false); +}); + +it("Should check whether a parts is strictly needed", () => { + let pattern = new freesewing.Pattern(); + expect(pattern.needs("foo")).to.equal(true); + expect(pattern.needs("foo", true)).to.equal(false); + pattern.settings.only = ["test", "foo", "bar"]; + expect(pattern.needs("foo")).to.equal(true); + expect(pattern.needs("foo", true)).to.equal(true); }); diff --git a/tests/snippet.test.js b/tests/snippet.test.js index 76b1833e522..64de9b15db6 100644 --- a/tests/snippet.test.js +++ b/tests/snippet.test.js @@ -2,30 +2,27 @@ let expect = require("chai").expect; let freesewing = require("./dist/index.js"); it("Should create a snippet", () => { - let snip1 = new freesewing.Snippet( - "test", - new freesewing.Point(12, 34), - "this is an example" - ); + let snip1 = new freesewing.Snippet("test", new freesewing.Point(12, 34)); expect(snip1.def).to.equal("test"); expect(snip1.anchor.x).to.equal(12); expect(snip1.anchor.y).to.equal(34); - expect(snip1.description).to.equal("this is an example"); -}); - -it("Should default to empty description", () => { - let snip2 = new freesewing.Snippet("test", new freesewing.Point(12, 34)); - expect(snip2.description).to.equal(""); }); it("Should clone a snippet", () => { - let snip3 = new freesewing.Snippet( - "boo", - new freesewing.Point(56, 78), - "clone me" - ); + let snip3 = new freesewing.Snippet("boo", new freesewing.Point(56, 78)); expect(snip3.clone().def).to.equal("boo"); expect(snip3.clone().anchor.x).to.equal(56); expect(snip3.clone().anchor.y).to.equal(78); - expect(snip3.clone().description).to.equal("clone me"); +}); + +it("Should set an attribute", () => { + let s = new freesewing.Snippet("test", new freesewing.Point(12, -34)).attr( + "class", + "test" + ); + expect(s.attributes.get("class")).to.equal("test"); + s.attr("class", "more"); + expect(s.attributes.get("class")).to.equal("test more"); + s.attr("class", "less", true); + expect(s.attributes.get("class")).to.equal("less"); });