feat(core): Move plugins to part-level config
This commit is contained in:
parent
fa14ad0fa3
commit
8a74a36697
5 changed files with 124 additions and 196 deletions
|
@ -24,99 +24,6 @@ describe('Design', () => {
|
|||
expect(pattern.settings.options.percentage).to.equal(0.3);
|
||||
});
|
||||
|
||||
it("Design constructor should load single plugin", () => {
|
||||
let plugin = {
|
||||
name: "example",
|
||||
version: 1,
|
||||
hooks: {
|
||||
preRender: function(svg, attributes) {
|
||||
svg.attributes.add("freesewing:plugin-example", version);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
let design = new Design({plugins: plugin});
|
||||
let pattern = new design();
|
||||
expect(pattern.hooks.preRender.length).to.equal(1);
|
||||
});
|
||||
|
||||
it("Design constructor should load array of plugins", () => {
|
||||
let plugin1 = {
|
||||
name: "example1",
|
||||
version: 1,
|
||||
hooks: {
|
||||
preRender: function(svg, attributes) {
|
||||
svg.attributes.add("freesewing:plugin-example1", version);
|
||||
}
|
||||
}
|
||||
};
|
||||
let plugin2 = {
|
||||
name: "example2",
|
||||
version: 2,
|
||||
hooks: {
|
||||
preRender: function(svg, attributes) {
|
||||
svg.attributes.add("freesewing:plugin-example2", version);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
let design = new Design( { plugins: [plugin1, plugin2] });
|
||||
let pattern = new design();
|
||||
expect(pattern.hooks.preRender.length).to.equal(2);
|
||||
});
|
||||
|
||||
it("Design constructor should load conditional plugin", () => {
|
||||
const plugin = {
|
||||
name: "example",
|
||||
version: 1,
|
||||
hooks: {
|
||||
preRender: function(svg, attributes) {
|
||||
svg.attributes.add("freesewing:plugin-example", version);
|
||||
}
|
||||
}
|
||||
};
|
||||
const condition = () => true
|
||||
const design = new Design({ plugins: { plugin, condition } });
|
||||
const pattern = new design();
|
||||
expect(pattern.hooks.preRender.length).to.equal(1);
|
||||
});
|
||||
|
||||
it("Design constructor should not load conditional plugin", () => {
|
||||
const plugin = {
|
||||
name: "example",
|
||||
version: 1,
|
||||
hooks: {
|
||||
preRender: function(svg, attributes) {
|
||||
svg.attributes.add("freesewing:plugin-example", version);
|
||||
}
|
||||
}
|
||||
};
|
||||
const condition = () => false
|
||||
const design = new Design({ plugins: { plugin, condition } });
|
||||
const pattern = new design();
|
||||
expect(pattern.hooks.preRender.length).to.equal(0);
|
||||
});
|
||||
|
||||
it("Design constructor should load multiple conditional plugins", () => {
|
||||
const plugin = {
|
||||
name: "example",
|
||||
version: 1,
|
||||
hooks: {
|
||||
preRender: function(svg, attributes) {
|
||||
svg.attributes.add("freesewing:plugin-example", version);
|
||||
}
|
||||
}
|
||||
};
|
||||
const condition1 = () => true
|
||||
const condition2 = () => false
|
||||
const design = new Design({ plugins: [
|
||||
{ plugin, condition: condition1 },
|
||||
{ plugin, condition: condition2 },
|
||||
]});
|
||||
const pattern = new design();
|
||||
expect(pattern.hooks.preRender.length).to.equal(1);
|
||||
});
|
||||
|
||||
/*
|
||||
it("Design constructor should not require depencies for injected parts", () => {
|
||||
let design = new freesewing.Design({
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue