
Note that the tests for Lumina are failing, but that's not related to the chai upgrade, rather it seems these tests fail because of issues in the design that we'll tackle later (it's a brand new design yet to be released).
81 lines
3.7 KiB
JavaScript
81 lines
3.7 KiB
JavaScript
import { expect } from 'chai'
|
|
import { Design } from '@freesewing/core'
|
|
import { plugin } from '../src/index.mjs'
|
|
|
|
describe('Mirror Plugin Tests', () => {
|
|
const part = {
|
|
name: 'test',
|
|
draft: ({ points, Point, macro, paths, Path, part }) => {
|
|
points.mirrorA = new Point(-100, -100)
|
|
points.mirrorB = new Point(100, 100)
|
|
points.a = new Point(10, 20)
|
|
points.b = new Point(30, 40)
|
|
paths.test = new Path()
|
|
.move(new Point(1, 2))
|
|
.curve(new Point(10, 20), new Point(30, 40), new Point(50, 60))
|
|
const settings = {
|
|
mirror: [points.mirrorA, points.mirrorB],
|
|
points: ['a', 'b'],
|
|
paths: ['test'],
|
|
}
|
|
macro('mirror', settings)
|
|
macro('mirror', { ...settings, prefix: 'test' })
|
|
macro('mirror', { ...settings, clone: false })
|
|
|
|
return part
|
|
},
|
|
plugins: [plugin],
|
|
}
|
|
const Pattern = new Design({ parts: [part] })
|
|
const pattern = new Pattern()
|
|
pattern.draft()
|
|
|
|
it('Should mirror points', () => {
|
|
expect(pattern.parts[0].test.points.mirroredA.x).to.equal(20)
|
|
expect(pattern.parts[0].test.points.mirroredA.y).to.equal(10)
|
|
expect(pattern.parts[0].test.points.mirroredB.x).to.equal(40)
|
|
expect(pattern.parts[0].test.points.mirroredB.y).to.equal(30)
|
|
})
|
|
it('Should mirror points with custom prefix', () => {
|
|
expect(pattern.parts[0].test.points.testA.x).to.equal(20)
|
|
expect(pattern.parts[0].test.points.testA.y).to.equal(10)
|
|
expect(pattern.parts[0].test.points.testB.x).to.equal(40)
|
|
expect(pattern.parts[0].test.points.testB.y).to.equal(30)
|
|
})
|
|
it('Should mirror points without cloning them', () => {
|
|
expect(pattern.parts[0].test.points.a.x).to.equal(20)
|
|
expect(pattern.parts[0].test.points.a.y).to.equal(10)
|
|
expect(pattern.parts[0].test.points.b.x).to.equal(40)
|
|
expect(pattern.parts[0].test.points.b.y).to.equal(30)
|
|
})
|
|
it('Should mirror paths', () => {
|
|
expect(pattern.parts[0].test.paths.mirroredTest.ops[0].to.x).to.equal(2)
|
|
expect(pattern.parts[0].test.paths.mirroredTest.ops[0].to.y).to.equal(1)
|
|
expect(pattern.parts[0].test.paths.mirroredTest.ops[1].cp1.x).to.equal(20)
|
|
expect(pattern.parts[0].test.paths.mirroredTest.ops[1].cp1.y).to.equal(10)
|
|
expect(pattern.parts[0].test.paths.mirroredTest.ops[1].cp2.x).to.equal(40)
|
|
expect(pattern.parts[0].test.paths.mirroredTest.ops[1].cp2.y).to.equal(30)
|
|
expect(pattern.parts[0].test.paths.mirroredTest.ops[1].to.x).to.equal(60)
|
|
expect(pattern.parts[0].test.paths.mirroredTest.ops[1].to.y).to.equal(50)
|
|
})
|
|
it('Should mirror paths with custom prefix', () => {
|
|
expect(pattern.parts[0].test.paths.testTest.ops[0].to.x).to.equal(2)
|
|
expect(pattern.parts[0].test.paths.testTest.ops[0].to.y).to.equal(1)
|
|
expect(pattern.parts[0].test.paths.testTest.ops[1].cp1.x).to.equal(20)
|
|
expect(pattern.parts[0].test.paths.testTest.ops[1].cp1.y).to.equal(10)
|
|
expect(pattern.parts[0].test.paths.testTest.ops[1].cp2.x).to.equal(40)
|
|
expect(pattern.parts[0].test.paths.testTest.ops[1].cp2.y).to.equal(30)
|
|
expect(pattern.parts[0].test.paths.testTest.ops[1].to.x).to.equal(60)
|
|
expect(pattern.parts[0].test.paths.testTest.ops[1].to.y).to.equal(50)
|
|
})
|
|
it('Should mirror paths without cloning them', () => {
|
|
expect(pattern.parts[0].test.paths.test.ops[0].to.x).to.equal(2)
|
|
expect(pattern.parts[0].test.paths.test.ops[0].to.y).to.equal(1)
|
|
expect(pattern.parts[0].test.paths.test.ops[1].cp1.x).to.equal(20)
|
|
expect(pattern.parts[0].test.paths.test.ops[1].cp1.y).to.equal(10)
|
|
expect(pattern.parts[0].test.paths.test.ops[1].cp2.x).to.equal(40)
|
|
expect(pattern.parts[0].test.paths.test.ops[1].cp2.y).to.equal(30)
|
|
expect(pattern.parts[0].test.paths.test.ops[1].to.x).to.equal(60)
|
|
expect(pattern.parts[0].test.paths.test.ops[1].to.y).to.equal(50)
|
|
})
|
|
})
|