aboutsummaryrefslogtreecommitdiffstats
path: root/web/nms.gathering.org/speedometer/c3-master/spec/grid-spec.js
diff options
context:
space:
mode:
authorKristian Lyngstol <kristian@bohemians.org>2015-04-02 19:24:45 +0200
committerKristian Lyngstol <kristian@bohemians.org>2015-04-02 19:24:45 +0200
commit0d8bba263dc195147d6fdb09662e7926f0a58b3e (patch)
tree4c570b4376c323e585120e7695b8715be7aa8881 /web/nms.gathering.org/speedometer/c3-master/spec/grid-spec.js
parente4354b47bd8891c5b1ee591fdf74b3ca67eee461 (diff)
Bump lots of changes
Diffstat (limited to 'web/nms.gathering.org/speedometer/c3-master/spec/grid-spec.js')
-rw-r--r--web/nms.gathering.org/speedometer/c3-master/spec/grid-spec.js365
1 files changed, 365 insertions, 0 deletions
diff --git a/web/nms.gathering.org/speedometer/c3-master/spec/grid-spec.js b/web/nms.gathering.org/speedometer/c3-master/spec/grid-spec.js
new file mode 100644
index 0000000..0443ec1
--- /dev/null
+++ b/web/nms.gathering.org/speedometer/c3-master/spec/grid-spec.js
@@ -0,0 +1,365 @@
+describe('c3 chart grid', function () {
+ 'use strict';
+
+ var chart, args;
+
+ beforeEach(function (done) {
+ chart = window.initChart(chart, args, done);
+ });
+
+ describe('y grid show', function () {
+
+ it('should update args', function () {
+ args = {
+ data: {
+ columns: [
+ ['data1', 30, 200, 100, 400, 150, 250]
+ ]
+ },
+ axis: {
+ y: {
+ tick: {
+ }
+ }
+ },
+ grid: {
+ y: {
+ show: false
+ }
+ }
+ };
+ expect(true).toBeTruthy();
+ });
+
+ it('should not show y grids', function () {
+ expect(chart.internal.main.select('.c3-ygrids').size()).toBe(0);
+ });
+
+ it('should update args to show y grids', function () {
+ args.grid.y.show = true;
+ expect(true).toBeTruthy();
+ });
+
+ it('should show y grids', function () {
+ var ygrids = chart.internal.main.select('.c3-ygrids');
+ expect(ygrids.size()).toBe(1);
+ expect(ygrids.selectAll('.c3-ygrid').size()).toBe(9);
+ });
+
+ it('should update args to show only 3 y grids', function () {
+ args.grid.y.ticks = 3;
+ expect(true).toBeTruthy();
+ });
+
+ it('should show only 3 y grids', function () {
+ var ygrids = chart.internal.main.select('.c3-ygrids');
+ expect(ygrids.size()).toBe(1);
+ expect(ygrids.selectAll('.c3-ygrid').size()).toBe(3);
+ });
+
+ it('should update args to show y grids depending on y axis ticks', function () {
+ args.axis.y.tick.count = 5;
+ expect(true).toBeTruthy();
+ });
+
+ it('should show grids depending on y axis ticks', function () {
+ var ygrids = chart.internal.main.select('.c3-ygrids'),
+ expectedYs = [];
+ ygrids.selectAll('.c3-ygrid').each(function (d, i) {
+ expectedYs[i] = +d3.select(this).attr('y1');
+ });
+ expect(ygrids.size()).toBe(1);
+ expect(ygrids.selectAll('.c3-ygrid').size()).toBe(5);
+ chart.internal.main.select('.c3-axis-y').selectAll('.tick').each(function (d, i) {
+ var t = d3.transform(d3.select(this).attr('transform'));
+ expect(t.translate[1]).toBe(expectedYs[i]);
+ });
+ });
+ });
+
+ describe('y grid lines', function () {
+
+ describe('position', function () {
+
+ it('should update args', function () {
+ args = {
+ data: {
+ columns: [
+ ['data1', 10, 200, 100, 400, 150, 250]
+ ]
+ },
+ grid: {
+ y: {
+ lines: [
+ {value: 30, text: 'Lable 30', position: 'start'},
+ {value: 145, text: 'Lable 145', position: 'middle'},
+ {value: 225, text: 'Lable 225'}
+ ]
+ }
+ }
+ };
+ expect(true).toBeTruthy();
+ });
+
+ it('should show 3 grid lines', function () {
+ expect(chart.internal.main.selectAll('.c3-ygrid-lines .c3-ygrid-line').size()).toBe(3);
+ });
+
+ it('should locate grid lines properly', function () {
+ var lines = chart.internal.main.selectAll('.c3-ygrid-lines .c3-ygrid-line'),
+ expectedY1s = [373, 268, 196];
+ lines.each(function (d, i) {
+ var y1 = d3.select(this).select('line').attr('y1');
+ expect(y1).toBeCloseTo(expectedY1s[i], -2);
+ });
+ });
+
+ it('should locate grid texts properly', function () {
+ var lines = chart.internal.main.selectAll('.c3-ygrid-lines .c3-ygrid-line'),
+ expectedPositions = ['start', 'middle', 'end'],
+ expectedDxs = [4, 0, -4];
+ lines.each(function (d, i) {
+ var text = d3.select(this).select('text'),
+ textAnchor = text.attr('text-anchor'),
+ dx = text.attr('dx');
+ expect(textAnchor).toBe(expectedPositions[i]);
+ expect(+dx).toBe(expectedDxs[i]);
+ });
+ });
+
+ it('should update args', function () {
+ args = {
+ data: {
+ columns: [
+ ['data1', 10, 200, 100, 400, 150, 250]
+ ]
+ },
+ axis: {
+ rotated: true
+ },
+ grid: {
+ y: {
+ lines: [
+ {value: 30, text: 'Lable 30', position: 'start'},
+ {value: 145, text: 'Lable 145', position: 'middle'},
+ {value: 225, text: 'Lable 225'}
+ ]
+ }
+ }
+ };
+ expect(true).toBeTruthy();
+ });
+
+ it('should show 3 grid lines', function () {
+ expect(chart.internal.main.selectAll('.c3-ygrid-lines .c3-ygrid-line').size()).toBe(3);
+ });
+
+ it('should locate grid lines properly', function () {
+ var lines = chart.internal.main.selectAll('.c3-ygrid-lines .c3-ygrid-line'),
+ expectedX1s = [75, 220, 321];
+ lines.each(function (d, i) {
+ var x1 = d3.select(this).select('line').attr('x1');
+ expect(x1).toBeCloseTo(expectedX1s[i], -2);
+ });
+ });
+
+ it('should locate grid texts properly', function () {
+ var lines = chart.internal.main.selectAll('.c3-ygrid-lines .c3-ygrid-line'),
+ expectedPositions = ['start', 'middle', 'end'],
+ expectedDxs = [4, 0, -4];
+ lines.each(function (d, i) {
+ var text = d3.select(this).select('text'),
+ textAnchor = text.attr('text-anchor'),
+ dx = text.attr('dx');
+ expect(textAnchor).toBe(expectedPositions[i]);
+ expect(+dx).toBe(expectedDxs[i]);
+ });
+ });
+
+ });
+ });
+
+ describe('x grid lines', function () {
+
+ describe('position', function () {
+
+ it('should have correct height', function () {
+ args = {
+ data: {
+ columns: [
+ ['data1', 30, 200, 100, 400],
+ ]
+ },
+ grid: {
+ x: {
+ lines: [
+ {value: 1, text: 'Label 1', position: 'start'},
+ {value: 2, text: 'Label 2', position: 'middle'},
+ {value: 3, text: 'Label 3'},
+ ]
+ }
+ },
+ };
+ expect(true).toBeTruthy();
+ });
+
+ it('should show 3 grid lines', function () {
+ expect(chart.internal.main.selectAll('.c3-xgrid-lines .c3-xgrid-line').size()).toBe(3);
+ });
+
+ it('should locate grid lines properly', function () {
+ var lines = chart.internal.main.selectAll('.c3-xgrid-lines .c3-xgrid-line'),
+ expectedX1s = [202, 397, 593];
+ lines.each(function (d, i) {
+ var x1 = d3.select(this).select('line').attr('x1');
+ expect(x1).toBeCloseTo(expectedX1s[i], -2);
+ });
+ });
+
+ it('should locate grid texts properly', function () {
+ var lines = chart.internal.main.selectAll('.c3-xgrid-lines .c3-xgrid-line'),
+ expectedPositions = ['start', 'middle', 'end'],
+ expectedDxs = [4, 0, -4];
+ lines.each(function (d, i) {
+ var text = d3.select(this).select('text'),
+ textAnchor = text.attr('text-anchor'),
+ dx = text.attr('dx');
+ expect(textAnchor).toBe(expectedPositions[i]);
+ expect(+dx).toBe(expectedDxs[i]);
+ });
+ });
+
+ it('should update args', function () {
+ args = {
+ data: {
+ columns: [
+ ['data1', 30, 200, 100, 400],
+ ]
+ },
+ axis: {
+ rotated: true
+ },
+ grid: {
+ x: {
+ lines: [
+ {value: 1, text: 'Label 1', position: 'start'},
+ {value: 2, text: 'Label 2', position: 'middle'},
+ {value: 3, text: 'Label 3'},
+ ]
+ }
+ },
+ };
+ expect(true).toBeTruthy();
+ });
+
+ it('should show 3 grid lines', function () {
+ expect(chart.internal.main.selectAll('.c3-xgrid-lines .c3-xgrid-line').size()).toBe(3);
+ });
+
+ it('should locate grid lines properly', function () {
+ var lines = chart.internal.main.selectAll('.c3-xgrid-lines .c3-xgrid-line'),
+ expectedY1s = [144, 283, 421];
+ lines.each(function (d, i) {
+ var y1 = d3.select(this).select('line').attr('y1');
+ expect(y1).toBeCloseTo(expectedY1s[i], -2);
+ });
+ });
+
+ it('should locate grid texts properly', function () {
+ var lines = chart.internal.main.selectAll('.c3-xgrid-lines .c3-xgrid-line'),
+ expectedPositions = ['start', 'middle', 'end'],
+ expectedDxs = [4, 0, -4];
+ lines.each(function (d, i) {
+ var text = d3.select(this).select('text'),
+ textAnchor = text.attr('text-anchor'),
+ dx = text.attr('dx');
+ expect(textAnchor).toBe(expectedPositions[i]);
+ expect(+dx).toBe(expectedDxs[i]);
+ });
+ });
+
+ });
+
+ describe('with padding.top', function () {
+
+ it('should have correct height', function () {
+ args = {
+ data: {
+ columns: [
+ ['data1', 30, 200, 100, 400],
+ ]
+ },
+ grid: {
+ x: {
+ lines: [
+ {value: 3, text: 'Label 3'}
+ ]
+ }
+ },
+ padding: {
+ top: 50
+ }
+ };
+ expect(true).toBeTruthy();
+ });
+
+ it('should show x grid lines', function () {
+ var lines = chart.internal.main.select('.c3-xgrid-lines .c3-xgrid-line'),
+ expectedX1 = 593,
+ expectedText = ['Label 3'];
+ lines.each(function (id, i) {
+ var line = d3.select(this),
+ l = line.select('line'),
+ t = line.select('text');
+ expect(+l.attr('x1')).toBeCloseTo(expectedX1, -2);
+ expect(t.text()).toBe(expectedText[i]);
+ });
+ });
+
+ });
+
+ describe('on category axis', function () {
+
+ it('should update args', function () {
+ args = {
+ data: {
+ x: 'x',
+ columns: [
+ ['x', 'a', 'b', 'c', 'd'],
+ ['data1', 30, 200, 100, 400],
+ ]
+ },
+ axis: {
+ x: {
+ type: 'category'
+ }
+ },
+ grid: {
+ x: {
+ lines: [
+ {value: 3, text: 'Label 3'},
+ {value: 'a', text: 'Label a'}
+ ]
+ }
+ }
+ };
+ expect(true).toBeTruthy();
+ });
+
+ it('should show x grid lines', function () {
+ var lines = chart.internal.main.selectAll('.c3-xgrid-lines .c3-xgrid-line'),
+ expectedX1 = [515, 74],
+ expectedText = ['Label 3', 'Label a'];
+ lines.each(function (id, i) {
+ var line = d3.select(this),
+ l = line.select('line'),
+ t = line.select('text');
+ expect(+l.attr('x1')).toBeCloseTo(expectedX1[i], -2);
+ expect(t.text()).toBe(expectedText[i]);
+ });
+ });
+
+ });
+ });
+
+});