123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244 |
- describe('c3 api region', function () {
- 'use strict';
- var chart, args;
- beforeEach(function (done) {
- chart = window.initChart(chart, args, done);
- });
- describe('api.region', function () {
- beforeAll(function () {
- args = {
- data: {
- columns: [
- ['data1', 30, 200, 100, 400, 150, 250],
- ]
- },
- regions: [
- {
- axis: 'y',
- start: 300,
- end: 400,
- class: 'green',
- },
- {
- axis: 'y',
- start: 0,
- end: 100,
- class: 'green',
- }
- ]
- };
- });
- it('updates regions', function (done) {
- var main = chart.internal.main,
- expectedRegions = [
- {
- axis: 'y',
- start: 250,
- end: 350,
- class: 'red'
- },
- {
- axis: 'y',
- start: 25,
- end: 75,
- class: 'red'
- }
- ],
- regions;
- // Call regions API
- chart.regions(expectedRegions);
- setTimeout(function () {
- regions = main.selectAll('.c3-region');
- expect(regions.size()).toBe(expectedRegions.length);
- regions.each(function (d, i) {
- var region = d3.select(this),
- y = +region.attr('y'),
- height = +region.attr('height'),
- expectedClass = 'red',
- unexpectedClass = 'green',
- expectedStart = Math.round(chart.internal.y(expectedRegions[i].start)),
- expectedEnd = Math.round(chart.internal.y(expectedRegions[i].end)),
- expectedY = expectedEnd,
- expectedHeight = expectedStart - expectedEnd;
- expect(y).toBeCloseTo(expectedY, -1);
- expect(height).toBeCloseTo(expectedHeight, -1);
- expect(region.classed(expectedClass)).toBeTruthy();
- expect(region.classed(unexpectedClass)).toBeFalsy();
- });
- }, 500);
- setTimeout(function () {
- done();
- }, 1000);
- });
- });
- describe('api.region.add', function () {
- beforeAll(function () {
- args = {
- data: {
- columns: [
- ['data1', 30, 200, 100, 400, 150, 250],
- ]
- },
- regions: [
- {
- axis: 'y',
- start: 300,
- end: 400,
- class: 'green',
- },
- {
- axis: 'y',
- start: 0,
- end: 100,
- class: 'green',
- }
- ]
- };
- });
- it('should add regions', function (done) {
- var main = chart.internal.main,
- expectedRegions = [
- {
- axis: 'y',
- start: 300,
- end: 400,
- class: 'green',
- },
- {
- axis: 'y',
- start: 0,
- end: 100,
- class: 'green',
- },
- {
- axis: 'y',
- start: 250,
- end: 350,
- class: 'red'
- },
- {
- axis: 'y',
- start: 25,
- end: 75,
- class: 'red'
- }
- ],
- expectedClasses = [
- 'green',
- 'green',
- 'red',
- 'red',
- ],
- regions;
- // Call regions API
- chart.regions(expectedRegions);
- setTimeout(function () {
- regions = main.selectAll('.c3-region');
- expect(regions.size()).toBe(expectedRegions.length);
- regions.each(function (d, i) {
- var region = d3.select(this),
- y = +region.attr('y'),
- height = +region.attr('height'),
- expectedClass = expectedClasses[i],
- expectedStart = Math.round(chart.internal.y(expectedRegions[i].start)),
- expectedEnd = Math.round(chart.internal.y(expectedRegions[i].end)),
- expectedY = expectedEnd,
- expectedHeight = expectedStart - expectedEnd;
- expect(y).toBeCloseTo(expectedY, -1);
- expect(height).toBeCloseTo(expectedHeight, -1);
- expect(region.classed(expectedClass)).toBeTruthy();
- });
- }, 500);
- setTimeout(function () {
- done();
- }, 1000);
- });
- });
- describe('api.region.remove', function () {
- beforeAll(function () {
- args = {
- data: {
- columns: [
- ['data1', 30, 200, 100, 400, 150, 250],
- ]
- },
- regions: [
- {
- axis: 'y',
- start: 300,
- end: 400,
- class: 'green',
- },
- {
- axis: 'y',
- start: 0,
- end: 100,
- class: 'green',
- },
- {
- axis: 'y',
- start: 250,
- end: 350,
- class: 'red'
- },
- ]
- };
- });
- it('should remove regions', function (done) {
- var main = chart.internal.main,
- expectedRegions = [
- {
- axis: 'y',
- start: 250,
- end: 350,
- class: 'red'
- },
- ],
- expectedClasses = ['red'],
- regions;
- // Call regions API
- chart.regions(expectedRegions);
- setTimeout(function () {
- regions = main.selectAll('.c3-region');
- expect(regions.size()).toBe(expectedRegions.length);
- regions.each(function (d, i) {
- var region = d3.select(this),
- y = +region.attr('y'),
- height = +region.attr('height'),
- expectedClass = expectedClasses[i],
- expectedStart = Math.round(chart.internal.y(expectedRegions[i].start)),
- expectedEnd = Math.round(chart.internal.y(expectedRegions[i].end)),
- expectedY = expectedEnd,
- expectedHeight = expectedStart - expectedEnd;
- expect(y).toBeCloseTo(expectedY, -1);
- expect(height).toBeCloseTo(expectedHeight, -1);
- expect(region.classed(expectedClass)).toBeTruthy();
- });
- }, 500);
- setTimeout(function () {
- done();
- }, 1000);
- });
- });
- });
|