From 9ed72e9f4543658d222fb41c5153b344f6245b83 Mon Sep 17 00:00:00 2001 From: Wouter van Wageningen Date: Thu, 20 Apr 2023 18:30:40 +0000 Subject: [PATCH] Now with tests! --- packages/core/src/defs.mjs | 6 +++--- packages/core/tests/defs.test.mjs | 34 +++++++++++++++++++++++++++++++ packages/core/tests/svg.test.mjs | 3 ++- 3 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 packages/core/tests/defs.test.mjs diff --git a/packages/core/src/defs.mjs b/packages/core/src/defs.mjs index dc3ab935ba0..e12ef530029 100644 --- a/packages/core/src/defs.mjs +++ b/packages/core/src/defs.mjs @@ -61,7 +61,7 @@ Defs.prototype.remove = function (name) { Defs.prototype.render = function () { let svg = '' for (let key in this.list) { - svg += ` ${key}="${this.list[key].join('')}"` + svg += ` ${key}="${this.list[key]}"` } return svg @@ -75,7 +75,7 @@ Defs.prototype.render = function () { * @return {Defs} this - The Defs instance */ Defs.prototype.set = function (name, value) { - this.list[name] = [value] + this.list[name] = value return this } @@ -88,6 +88,6 @@ Defs.prototype.set = function (name, value) { * @return {Defs} this - The Defs instance */ Defs.prototype.setIfUnset = function (name, value) { - if (typeof this.list[name] === 'undefined') this.list[name] = [value] + if (typeof this.list[name] === 'undefined') this.list[name] = value return this } diff --git a/packages/core/tests/defs.test.mjs b/packages/core/tests/defs.test.mjs new file mode 100644 index 00000000000..4ea0bb22d0d --- /dev/null +++ b/packages/core/tests/defs.test.mjs @@ -0,0 +1,34 @@ +import chai from 'chai' +import { Defs } from '../src/defs.mjs' + +const expect = chai.expect + +describe('Defs', () => { + let defs = new Defs() + + it('Should set a def', () => { + defs.set('test', 'passed') + expect(defs.get('test')).to.equal('passed') + }) + + it('Should remove a def', () => { + defs.remove('test') + expect(defs.get('test')).to.equal(false) + }) + + it('Should only set an unset def', () => { + defs.setIfUnset('test', 'passed') + expect(defs.get('test')).to.equal('passed') + defs.setIfUnset('test', 'failed') + expect(defs.get('test')).to.equal('passed') + }) + + it('Should return false when getting an unset def', () => { + expect(defs.get('doNotTest')).to.equal(false) + }) + + it('Should render defs correctly', () => { + console.log(defs.render()) + expect(defs.render()).to.equal(' test="passed"') + }) +}) diff --git a/packages/core/tests/svg.test.mjs b/packages/core/tests/svg.test.mjs index 0306e5767f5..9f46183d618 100644 --- a/packages/core/tests/svg.test.mjs +++ b/packages/core/tests/svg.test.mjs @@ -2,6 +2,7 @@ import chai from 'chai' import chaiString from 'chai-string' import { Svg } from '../src/svg.mjs' import { Design, Attributes } from '../src/index.mjs' +import { Defs } from '../src/defs.mjs' import { version } from '../data.mjs' import render from './fixtures/render.mjs' @@ -42,7 +43,7 @@ describe('Svg', () => { expect(svg.freeId).to.equal(0) expect(svg.body).to.equal('') expect(svg.style).to.equal('') - expect(svg.defs).to.equal('') + expect(svg.defs instanceof Defs).to.equal(true) expect(svg.prefix).to.equal('') expect(svg.attributes.get('xmlns')).to.equal('http://www.w3.org/2000/svg') expect(svg.attributes.get('xmlns:svg')).to.equal('http://www.w3.org/2000/svg')