diff options
Diffstat (limited to 'web/nms.gathering.org/speedometer/c3-master/spec/api.grid-spec.js')
-rw-r--r-- | web/nms.gathering.org/speedometer/c3-master/spec/api.grid-spec.js | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/web/nms.gathering.org/speedometer/c3-master/spec/api.grid-spec.js b/web/nms.gathering.org/speedometer/c3-master/spec/api.grid-spec.js new file mode 100644 index 0000000..ebaeee6 --- /dev/null +++ b/web/nms.gathering.org/speedometer/c3-master/spec/api.grid-spec.js @@ -0,0 +1,119 @@ +describe('c3 api grid', function () { + 'use strict'; + + var chart, args; + + beforeEach(function (done) { + chart = window.initChart(chart, args, done); + }); + + describe('ygrid.add and ygrid.remove', function () { + + it('should update args', function () { + args = { + data: { + columns: [ + ['data1', 30, 200, 100, 400, 150, 250] + ] + } + }; + expect(true).toBeTruthy(); + }); + + it('should update y grids', function (done) { + var main = chart.internal.main, + expectedGrids = [ + { + value: 100, + text: 'Pressure Low' + }, + { + value: 200, + text: 'Pressure High' + } + ], + grids; + + // Call ygrids.add + chart.ygrids.add(expectedGrids); + setTimeout(function () { + grids = main.selectAll('.c3-ygrid-line'); + expect(grids.size()).toBe(expectedGrids.length); + grids.each(function (d, i) { + var y = +d3.select(this).select('line').attr('y1'), + text = d3.select(this).select('text').text(), + expectedY = Math.round(chart.internal.y(expectedGrids[i].value)), + expectedText = expectedGrids[i].text; + expect(y).toBe(expectedY); + expect(text).toBe(expectedText); + }); + + // Call ygrids.remove + chart.ygrids.remove(expectedGrids); + setTimeout(function () { + grids = main.selectAll('.c3-ygrid-line'); + expect(grids.size()).toBe(0); + }, 500); + + }, 500); + + setTimeout(function () { + done(); + }, 1200); + }); + + it("should update x ygrids even if it's zoomed", function (done) { + var main = chart.internal.main, + expectedGrids = [ + { + value: 0, + text: 'Pressure Low' + }, + { + value: 1, + text: 'Pressure High' + } + ], + grids, domain; + + chart.zoom([0, 2]); + setTimeout(function () { + + // Call xgrids + chart.xgrids(expectedGrids); + setTimeout(function () { + grids = main.selectAll('.c3-xgrid-line'); + expect(grids.size()).toBe(expectedGrids.length); + grids.each(function (d, i) { + var x = +d3.select(this).select('line').attr('x1'), + text = d3.select(this).select('text').text(), + expectedX = Math.round(chart.internal.x(expectedGrids[i].value)), + expectedText = expectedGrids[i].text; + expect(x).toBe(expectedX); + expect(text).toBe(expectedText); + }); + + // check if it was not rescaled + domain = chart.internal.y.domain(); + expect(domain[0]).toBeLessThan(0); + expect(domain[1]).toBeGreaterThan(400); + + // Call xgrids.remove + chart.xgrids.remove(expectedGrids); + setTimeout(function () { + grids = main.selectAll('.c3-xgrid-line'); + expect(grids.size()).toBe(0); + }, 500); // for xgrids.remove() + + }, 500); // for xgrids() + + }, 500); // for zoom + + setTimeout(function () { + done(); + }, 1700); + }); + + }); + +}); |