chore(core): Added unit test for dependency resolver bug
This commit is contained in:
parent
eda88bce4d
commit
96a80afe50
1 changed files with 74 additions and 0 deletions
|
@ -278,6 +278,80 @@ it("Should check whether a part is wanted", () => {
|
||||||
expect(pattern.wants("side")).to.equal(true);
|
expect(pattern.wants("side")).to.equal(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("Should correctly resolve dependencies - string version", () => {
|
||||||
|
let config = {
|
||||||
|
name: "test",
|
||||||
|
dependencies: { front: "back", side: "back", hood: "front", stripe: "hood" },
|
||||||
|
};
|
||||||
|
const Test = function(settings = false) {
|
||||||
|
freesewing.Pattern.call(this, config);
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
Test.prototype = Object.create(freesewing.Pattern.prototype);
|
||||||
|
Test.prototype.constructor = Test;
|
||||||
|
Test.prototype.draftBack = function(part) {
|
||||||
|
return part;
|
||||||
|
};
|
||||||
|
Test.prototype.draftFront = function(part) {
|
||||||
|
return part;
|
||||||
|
};
|
||||||
|
|
||||||
|
let pattern = new Test();
|
||||||
|
expect(pattern.config.resolvedDependencies.front.length).to.equal(1);
|
||||||
|
expect(pattern.config.resolvedDependencies.front[0]).to.equal('back');
|
||||||
|
expect(pattern.config.resolvedDependencies.side.length).to.equal(1);
|
||||||
|
expect(pattern.config.resolvedDependencies.side[0]).to.equal('back');
|
||||||
|
expect(pattern.config.resolvedDependencies.hood.length).to.equal(2);
|
||||||
|
expect(pattern.config.resolvedDependencies.hood[0]).to.equal('front');
|
||||||
|
expect(pattern.config.resolvedDependencies.hood[1]).to.equal('back');
|
||||||
|
expect(pattern.config.resolvedDependencies.stripe.length).to.equal(3);
|
||||||
|
expect(pattern.config.resolvedDependencies.stripe[0]).to.equal('hood');
|
||||||
|
expect(pattern.config.resolvedDependencies.stripe[1]).to.equal('front');
|
||||||
|
expect(pattern.config.resolvedDependencies.stripe[2]).to.equal('back');
|
||||||
|
expect(pattern.config.resolvedDependencies.back.length).to.equal(0);
|
||||||
|
expect(pattern.config.draftOrder[0]).to.equal('back');
|
||||||
|
expect(pattern.config.draftOrder[1]).to.equal('front');
|
||||||
|
expect(pattern.config.draftOrder[2]).to.equal('side');
|
||||||
|
expect(pattern.config.draftOrder[3]).to.equal('hood');
|
||||||
|
});
|
||||||
|
|
||||||
|
it("Should correctly resolve dependencies - array version", () => {
|
||||||
|
let config = {
|
||||||
|
name: "test",
|
||||||
|
dependencies: { front: ["back"], side: ["back"], hood: ["front"], stripe: ["hood"]},
|
||||||
|
};
|
||||||
|
const Test = function(settings = false) {
|
||||||
|
freesewing.Pattern.call(this, config);
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
Test.prototype = Object.create(freesewing.Pattern.prototype);
|
||||||
|
Test.prototype.constructor = Test;
|
||||||
|
Test.prototype.draftBack = function(part) {
|
||||||
|
return part;
|
||||||
|
};
|
||||||
|
Test.prototype.draftFront = function(part) {
|
||||||
|
return part;
|
||||||
|
};
|
||||||
|
|
||||||
|
let pattern = new Test();
|
||||||
|
expect(pattern.config.resolvedDependencies.front.length).to.equal(1);
|
||||||
|
expect(pattern.config.resolvedDependencies.front[0]).to.equal('back');
|
||||||
|
expect(pattern.config.resolvedDependencies.side.length).to.equal(1);
|
||||||
|
expect(pattern.config.resolvedDependencies.side[0]).to.equal('back');
|
||||||
|
expect(pattern.config.resolvedDependencies.hood.length).to.equal(2);
|
||||||
|
expect(pattern.config.resolvedDependencies.hood[0]).to.equal('front');
|
||||||
|
expect(pattern.config.resolvedDependencies.hood[1]).to.equal('back');
|
||||||
|
expect(pattern.config.resolvedDependencies.stripe.length).to.equal(3);
|
||||||
|
expect(pattern.config.resolvedDependencies.stripe[0]).to.equal('hood');
|
||||||
|
expect(pattern.config.resolvedDependencies.stripe[1]).to.equal('front');
|
||||||
|
expect(pattern.config.resolvedDependencies.stripe[2]).to.equal('back');
|
||||||
|
expect(pattern.config.resolvedDependencies.back.length).to.equal(0);
|
||||||
|
expect(pattern.config.draftOrder[0]).to.equal('back');
|
||||||
|
expect(pattern.config.draftOrder[1]).to.equal('front');
|
||||||
|
expect(pattern.config.draftOrder[2]).to.equal('side');
|
||||||
|
expect(pattern.config.draftOrder[3]).to.equal('hood');
|
||||||
|
});
|
||||||
|
|
||||||
it("Should check whether created parts get the pattern context", () => {
|
it("Should check whether created parts get the pattern context", () => {
|
||||||
let pattern = new freesewing.Pattern();
|
let pattern = new freesewing.Pattern();
|
||||||
let part = new pattern.Part();
|
let part = new pattern.Part();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue