var describe = window.describe, expect = window.expect, it = window.it, beforeEach = window.beforeEach; describe('c3 api data', function () { 'use strict'; var chart, d3; var args = { data: { columns: [ ['data1', 30, 200, 100, 400, 150, 250], ['data2', 5000, 2000, 1000, 4000, 1500, 2500] ], axes: { data1: 'y', data2: 'y2' } }, axis: { y2: { show: true } } }; beforeEach(function (done) { if (typeof chart === 'undefined') { window.initDom(); } chart = window.c3.generate(args); d3 = chart.internal.d3; chart.internal.d3.select('.jasmine_html-reporter') .style('position', 'absolute') .style('right', 0); window.setTimeout(function () { done(); }, 10); }); describe('data()', function () { it('should return all of data if no argument given', function () { var results = chart.data(), expected = ['data1', 'data2']; results.forEach(function (result, i) { expect(result.id).toBe(expected[i]); }); }); it('should return specifid data if string argument given', function () { var results = chart.data('data1'); expect(results.length).toBe(1); expect(results[0].id).toBe('data1'); }); it('should return specifid data if array argument given', function () { var results = chart.data(['data1', 'data2']); expect(results.length).toBe(2); expect(results[0].id).toBe('data1'); expect(results[1].id).toBe('data2'); }); }); describe('data.shown()', function () { it('should return only shown targets', function () { var results; chart.hide('data1'); results = chart.data.shown(); expect(results.length).toBe(1); expect(results[0].id).toBe('data2'); }); }); describe('data.axes()', function () { it('should return data.axes specified as argument', function () { var results = chart.data.axes(); expect(results.data1).toBe('y'); expect(results.data2).toBe('y2'); expect(d3.select('.c3-axis-y g.tick text').text()).toBe('0'); expect(d3.select('.c3-axis-y2 g.tick text').text()).toBe('1000'); }); it('should return data.axes specified as api', function () { var results = chart.data.axes({ data1: 'y2', data2: 'y' }); expect(results.data1).toBe('y2'); expect(results.data2).toBe('y'); expect(d3.select('.c3-axis-y g.tick text').text()).toBe('1000'); expect(d3.select('.c3-axis-y2 g.tick text').text()).toBe('0'); }); }); });