From 77c20c30bde7941f1489ce47d8aea439ec1b8e5f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ulrich-Matthias=20Sch=C3=A4fer?= Date: Sun, 26 Apr 2020 09:54:06 +1000 Subject: [PATCH] added tests for css.js --- spec/spec/modules/optional/css.js | 107 ++++++++++++++++++++++++++++++ src/modules/optional/css.js | 2 +- 2 files changed, 108 insertions(+), 1 deletion(-) create mode 100644 spec/spec/modules/optional/css.js diff --git a/spec/spec/modules/optional/css.js b/spec/spec/modules/optional/css.js new file mode 100644 index 0000000..a0a3e6d --- /dev/null +++ b/spec/spec/modules/optional/css.js @@ -0,0 +1,107 @@ +/* globals describe, expect, it */ + +import { Rect } from '../../../../src/main.js' + +describe('css.js', () => { + describe('Dom', () => { + describe('css()', () => { + describe('as getter', () => { + it('returns all css as object', () => { + const rect = new Rect({ style: 'fill: none; outline: 1px solid black; stroke: none' }) + expect(rect.css()).toEqual({ + fill: 'none', + outline: '1px solid black', + stroke: 'none' + }) + }) + + it('returns an object with selected css properries', () => { + const rect = new Rect({ style: 'fill: none; outline: 1px solid black; stroke: none' }) + expect(rect.css([ 'fill', 'stroke' ])).toEqual({ + fill: 'none', + stroke: 'none' + }) + }) + + it('returns a single property with property name given', () => { + const rect = new Rect({ style: 'fill: none; outline: 1px solid black; stroke: none' }) + expect(rect.css('fill')).toBe('none') + }) + + it('returns undefined if css property is not set', () => { + const rect = new Rect({ style: 'fill: none; outline: 1px solid black; stroke: none' }) + expect(rect.css('something')).toBe('') + }) + }) + + describe('as setter', () => { + it('returns itself', () => { + const rect = new Rect({ style: 'fill: none; outline: 1px solid black; stroke: none' }) + expect(rect.css('fill', 'black')).toBe(rect) + }) + + it('adds a css property', () => { + const rect = new Rect({ style: 'fill: none; outline: 1px solid black; stroke: none' }) + expect(rect.css('stroke-width', 2).css('stroke-width')).toBe('2') + }) + + it('changes a css property', () => { + const rect = new Rect({ style: 'fill: none; outline: 1px solid black; stroke: none' }) + expect(rect.css('fill', 'black').css('fill')).toBe('black') + }) + + it('sets an object of properties', () => { + const rect = new Rect() + expect(rect.css({ fill: 'none', stroke: 'none' }).css()).toEqual({ fill: 'none', stroke: 'none' }) + }) + + it('removes property if empty string is passed as value', () => { + const rect = new Rect({ style: 'fill: none; outline: 1px solid black; stroke: none' }) + expect(rect.css('fill', '').css('fill')).toBe('') + }) + + it('removes property if null is passed as value', () => { + const rect = new Rect({ style: 'fill: none; outline: 1px solid black; stroke: none' }) + expect(rect.css('fill', null).css('fill')).toBe('') + }) + }) + }) + + describe('show()', () => { + it('returns itself', () => { + const rect = new Rect() + expect(rect.show()).toBe(rect) + }) + + it('removes the display property', () => { + const rect = new Rect().hide() + expect(rect.show().css('display')).toBe('') + }) + }) + + describe('hide()', () => { + it('returns itself', () => { + const rect = new Rect() + expect(rect.hide()).toBe(rect) + }) + + it('sets the css display property to none', () => { + const rect = new Rect() + expect(rect.hide().css('display')).toBe('none') + }) + }) + + describe('visible()', () => { + it('returns true if display is not none', () => { + const rect = new Rect() + expect(rect.show().visible()).toBe(true) + expect(rect.css('display', 'block').visible()).toBe(true) + }) + + it('returns false if display is none', () => { + const rect = new Rect() + expect(rect.hide().visible()).toBe(false) + }) + }) + }) +}) diff --git a/src/modules/optional/css.js b/src/modules/optional/css.js index 0caf551..c4a593a 100644 --- a/src/modules/optional/css.js +++ b/src/modules/optional/css.js @@ -19,7 +19,7 @@ export function css (style, val) { } if (arguments.length < 2) { - // get style properties in the array + // get style properties as array if (Array.isArray(style)) { for (const name of style) { const cased = camelCase(name) -- 2.39.5