/* eslint-env jasmine */ const svgDraw = require('./svgDraw') const { MockD3 } = require('d3') describe('svgDraw', function () { describe('drawRect', function () { it('it should append a rectangle', function () { const svg = MockD3('svg') svgDraw.drawRect(svg, { x: 10, y: 10, fill: '#ccc', stroke: 'red', width: '20', height: '20', rx: '10', ry: '10', class: 'unitTestRectangleClass' }) expect(svg.__children.length).toBe(1) const rect = svg.__children[0] expect(rect.__name).toBe('rect') expect(rect.attr).toHaveBeenCalledWith('x', 10) expect(rect.attr).toHaveBeenCalledWith('y', 10) expect(rect.attr).toHaveBeenCalledWith('fill', '#ccc') expect(rect.attr).toHaveBeenCalledWith('stroke', 'red') expect(rect.attr).toHaveBeenCalledWith('width', '20') expect(rect.attr).toHaveBeenCalledWith('height', '20') expect(rect.attr).toHaveBeenCalledWith('rx', '10') expect(rect.attr).toHaveBeenCalledWith('ry', '10') expect(rect.attr).toHaveBeenCalledWith('class', 'unitTestRectangleClass') }) it('it should not add the class attribute if a class isn`t provided', () => { const svg = MockD3('svg') svgDraw.drawRect(svg, { x: 10, y: 10, fill: '#ccc', stroke: 'red', width: '20', height: '20', rx: '10', ry: '10' }) expect(svg.__children.length).toBe(1) const rect = svg.__children[0] expect(rect.__name).toBe('rect') expect(rect.attr).toHaveBeenCalledWith('fill', '#ccc') expect(rect.attr).not.toHaveBeenCalledWith('class', expect.anything()) }) }) describe('drawBackgroundRect', function () { it('it should append a rect before the previous element within a given bound', function () { const svg = MockD3('svg') const boundingRect = { startx: 50, starty: 200, stopx: 150, stopy: 260, title: undefined, fill: '#ccc' } svgDraw.drawBackgroundRect(svg, boundingRect) expect(svg.__children.length).toBe(1) const rect = svg.__children[0] expect(rect.__name).toBe('rect') expect(rect.attr).toHaveBeenCalledWith('x', 50) expect(rect.attr).toHaveBeenCalledWith('y', 200) expect(rect.attr).toHaveBeenCalledWith('width', 100) expect(rect.attr).toHaveBeenCalledWith('height', 60) expect(rect.attr).toHaveBeenCalledWith('fill', '#ccc') expect(rect.attr).toHaveBeenCalledWith('class', 'rect') expect(rect.lower).toHaveBeenCalled() }) }) })