1
0
Fork 0

chore(plugin-measurements): Changes for v3. See #2856

This commit is contained in:
Joost De Cock 2022-09-27 11:55:44 +02:00
parent 88e5339b37
commit 3212e5eedc
2 changed files with 46 additions and 61 deletions

View file

@ -5,31 +5,31 @@ export const plugin = {
version, version,
hooks: { hooks: {
preDraft: function ({ settings }) { preDraft: function ({ settings }) {
if (settings.measurements) { for (const set of settings) {
if ( if (set.measurements) {
typeof settings.measurements.seatBack !== 'undefined' && if (
typeof settings.measurements.seat !== 'undefined' typeof set.measurements.seatBack !== 'undefined' &&
) { typeof set.measurements.seat !== 'undefined'
settings.measurements.seatFront = ) {
settings.measurements.seat - settings.measurements.seatBack set.measurements.seatFront = set.measurements.seat - set.measurements.seatBack
settings.measurements.seatBackArc = settings.measurements.seatBack / 2 set.measurements.seatBackArc = set.measurements.seatBack / 2
settings.measurements.seatFrontArc = settings.measurements.seatFront / 2 set.measurements.seatFrontArc = set.measurements.seatFront / 2
} }
if ( if (
typeof settings.measurements.waist !== 'undefined' && typeof set.measurements.waist !== 'undefined' &&
typeof settings.measurements.waistBack !== 'undefined' typeof set.measurements.waistBack !== 'undefined'
) { ) {
settings.measurements.waistFront = set.measurements.waistFront = set.measurements.waist - set.measurements.waistBack
settings.measurements.waist - settings.measurements.waistBack set.measurements.waistBackArc = set.measurements.waistBack / 2
settings.measurements.waistBackArc = settings.measurements.waistBack / 2 set.measurements.waistFrontArc = set.measurements.waistFront / 2
settings.measurements.waistFrontArc = settings.measurements.waistFront / 2 }
} if (
if ( typeof set.measurements.crossSeam !== 'undefined' &&
typeof settings.measurements.crossSeam !== 'undefined' && typeof set.measurements.crossSeamFront !== 'undefined'
typeof settings.measurements.crossSeamFront !== 'undefined' ) {
) { set.measurements.crossSeamBack =
settings.measurements.crossSeamBack = set.measurements.crossSeam - set.measurements.crossSeamFront
settings.measurements.crossSeam - settings.measurements.crossSeamFront }
} }
} }
}, },

View file

@ -12,62 +12,47 @@ const measurements = {
crossSeam: 100, crossSeam: 100,
crossSeamFront: 42, crossSeamFront: 42,
} }
const part = { const part = {
name: 'test', name: 'test',
draft: ({ points, Point }) => { draft: ({ points, Point, part }) => {
points.from = new Point(10, 20) points.from = new Point(10, 20)
points.to = new Point(10, 230) points.to = new Point(10, 230)
return part
}, },
measurements: Object.keys(measurements),
plugins: [plugin],
} }
const Pattern = new Design({ plugins: [plugin], parts: [part] }) const Pattern = new Design({ parts: [part] })
const pattern = new Pattern({ measurements })
pattern.draft()
describe('Measurements Plugin Tests', () => { describe('Measurements Plugin Tests', () => {
it('Should set the extra measurements', () => { it('Should set the extra measurements', () => {
expect(pattern.settings.measurements.seatFront).to.equal(40) const pattern = new Pattern({ measurements })
expect(pattern.settings.measurements.seatFrontArc).to.equal(20) pattern.draft()
expect(pattern.settings.measurements.seatBackArc).to.equal(30) expect(pattern.settings[0].measurements.seatFront).to.equal(40)
expect(pattern.settings.measurements.waistFront).to.equal(55) expect(pattern.settings[0].measurements.seatFrontArc).to.equal(20)
expect(pattern.settings.measurements.waistFrontArc).to.equal(27.5) expect(pattern.settings[0].measurements.seatBackArc).to.equal(30)
expect(pattern.settings.measurements.crossSeamBack).to.equal(58) expect(pattern.settings[0].measurements.waistFront).to.equal(55)
expect(pattern.settings[0].measurements.waistFrontArc).to.equal(27.5)
expect(pattern.settings[0].measurements.crossSeamBack).to.equal(58)
}) })
it('Should calculate seatFront from seat and seatBack', function () { it('Should calculate seatFront from seat and seatBack', function () {
const testPattern = new Design({ const pattern = new Pattern({ measurements: { seat: 50, seatBack: 20 } })
measurements: {},
plugins: [plugin],
})
const pattern = new testPattern()
const userMeasurements = { seat: 50, seatBack: 20 }
pattern.settings.measurements = userMeasurements
pattern.draft() pattern.draft()
expect(pattern.settings.measurements.seatFront).to.equal(30) expect(pattern.settings[0].measurements.seatFront).to.equal(30)
}) })
it('Should calculate waistFrontArc and waistBackArc from waist and waistBack', function () { it('Should calculate waistFrontArc and waistBackArc from waist and waistBack', function () {
const testPattern = new Design({ const pattern = new Pattern({ measurements: { waist: 50, waistBack: 20 } })
measurements: {},
plugins: [plugin],
})
const pattern = new testPattern()
const userMeasurements = { waist: 50, waistBack: 20 }
pattern.settings.measurements = userMeasurements
pattern.draft() pattern.draft()
expect(pattern.settings.measurements.waistFrontArc).to.equal(15) expect(pattern.settings[0].measurements.waistFrontArc).to.equal(15)
expect(pattern.settings.measurements.waistBackArc).to.equal(10) expect(pattern.settings[0].measurements.waistBackArc).to.equal(10)
}) })
it('Should calculate crossSeamBack from crossSeam and crossSeamFront', function () { it('Should calculate crossSeamBack from crossSeam and crossSeamFront', function () {
const testPattern = new Design({ const pattern = new Pattern({ measurements: { crossSeam: 50, crossSeamFront: 20 } })
measurements: {},
plugins: [plugin],
})
const pattern = new testPattern()
const userMeasurements = { crossSeam: 50, crossSeamFront: 20 }
pattern.settings.measurements = userMeasurements
pattern.draft() pattern.draft()
expect(pattern.settings.measurements.crossSeamBack).to.equal(30) expect(pattern.settings[0].measurements.crossSeamBack).to.equal(30)
}) })
}) })