aboutsummaryrefslogtreecommitdiffstats
path: root/web/nms.gathering.org/speedometer/c3-master/spec/api.grid-spec.js
diff options
context:
space:
mode:
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.js119
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);
+ });
+
+ });
+
+});