subchart-spec.ts 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import { initChart } from './c3-helper'
  2. describe('c3 subchart', function() {
  3. 'use strict'
  4. let chart
  5. let args = {
  6. data: {
  7. x: 'date',
  8. columns: [
  9. [
  10. 'date',
  11. '2012-12-24',
  12. '2012-12-25',
  13. '2012-12-26',
  14. '2012-12-27',
  15. '2012-12-28',
  16. '2012-12-29'
  17. ],
  18. ['data1', 30, 200, -100, 400, -150, 250],
  19. ['data2', 50, 20, 10, 40, 15, 25]
  20. ],
  21. groups: [['data1', 'data2']],
  22. type: 'bar'
  23. },
  24. axis: {
  25. x: {
  26. type: 'category'
  27. }
  28. },
  29. subchart: {
  30. show: true
  31. }
  32. }
  33. beforeEach(done => {
  34. chart = initChart(chart, args, done)
  35. })
  36. const getChartHeight = () =>
  37. +chart.internal.svg.select('.c3-event-rect').attr('height') - 1
  38. describe('api', () => {
  39. it('can toggle subchart visibility', () => {
  40. const chartHeightWithSubchart = getChartHeight()
  41. expect(chart.subchart.isShown()).toBeTruthy()
  42. expect(chart.internal.svg.selectAll('.c3-axis-x').size()).toEqual(2)
  43. expect(chart.internal.svg.selectAll('.c3-brush').size()).toEqual(1)
  44. chart.subchart.hide()
  45. expect(chart.subchart.isShown()).toBeFalsy()
  46. expect(chart.internal.svg.selectAll('.c3-axis-x').size()).toEqual(1)
  47. expect(chart.internal.svg.selectAll('.c3-brush').size()).toEqual(0)
  48. expect(getChartHeight()).toBeGreaterThan(chartHeightWithSubchart)
  49. chart.subchart.show()
  50. expect(chart.subchart.isShown()).toBeTruthy()
  51. expect(chart.internal.svg.selectAll('.c3-axis-x').size()).toEqual(2)
  52. expect(chart.internal.svg.selectAll('.c3-brush').size()).toEqual(1)
  53. expect(getChartHeight()).toEqual(chartHeightWithSubchart)
  54. })
  55. })
  56. })