diff --git a/plugins/plugin-grainline/src/index.mjs b/plugins/plugin-grainline/src/index.mjs index 854fc7cdf6a..eb56aebda63 100644 --- a/plugins/plugin-grainline/src/index.mjs +++ b/plugins/plugin-grainline/src/index.mjs @@ -19,19 +19,18 @@ export const plugin = { }, }, macros: { - grainline: function (so = {}) { + grainline: function (so = {}, { points, paths, Path, complete, setGrain }) { if (so === false) { - delete this.points.grainlineFrom - delete this.points.grainlineTo - delete this.paths.grainline - this.setGrain(90) // Restoring default + delete points.grainlineFrom + delete points.grainlineTo + delete paths.grainline + setGrain(90) // Restoring default return true } so = { ...dflts, ...so, } - const { points, complete, setGrain } = this.shorthand() // setGrain relies on plugin-cutlist if (typeof setGrain === 'function') { setGrain(so.from.angle(so.to)) @@ -39,7 +38,7 @@ export const plugin = { if (complete) { points.grainlineFrom = so.from.shiftFractionTowards(so.to, 0.05) points.grainlineTo = so.to.shiftFractionTowards(so.from, 0.05) - this.paths.grainline = new this.Path() + paths.grainline = new Path() .move(points.grainlineFrom) .line(points.grainlineTo) .attr('class', 'note') diff --git a/plugins/plugin-grainline/tests/plugin.test.mjs b/plugins/plugin-grainline/tests/plugin.test.mjs index 32650f516cc..f8061011dbf 100644 --- a/plugins/plugin-grainline/tests/plugin.test.mjs +++ b/plugins/plugin-grainline/tests/plugin.test.mjs @@ -8,19 +8,22 @@ describe('Grainline Plugin Tests', () => { it('Should run the default grainline macro', () => { const part = { name: 'test', - draft: ({ points, Point, macro }) => { + draft: ({ points, Point, macro, part }) => { points.from = new Point(10, 20) points.to = new Point(10, 230) macro('grainline', { from: points.from, to: points.to, }) + + return part }, + plugins: [plugin], } - const Pattern = new Design({ plugins: [plugin], parts: [part] }) + const Pattern = new Design({ parts: [part] }) const pattern = new Pattern() pattern.draft() - const c = pattern.parts.test.paths.grainline + const c = pattern.parts[0].test.paths.grainline expect(c.attributes.get('class')).to.equal('note') expect(c.attributes.get('marker-start')).to.equal('url(#grainlineFrom)') expect(c.attributes.get('marker-end')).to.equal('url(#grainlineTo)')