api.axis-spec.ts 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. import { d3, initChart } from './c3-helper'
  2. describe('c3 api axis', function() {
  3. 'use strict'
  4. var chart, args
  5. beforeEach(function(done) {
  6. chart = initChart(chart, args, done)
  7. })
  8. describe('axis.labels', function() {
  9. beforeAll(function() {
  10. args = {
  11. data: {
  12. columns: [
  13. ['data1', 30, 200, 100],
  14. ['data2', 50, 20, 10]
  15. ],
  16. axes: {
  17. data1: 'y',
  18. data2: 'y2'
  19. }
  20. },
  21. axis: {
  22. y: {
  23. label: 'Y Axis Label'
  24. },
  25. y2: {
  26. show: true,
  27. label: 'Y2 Axis Label'
  28. }
  29. }
  30. }
  31. })
  32. it('updates y axis label', function() {
  33. chart.axis.labels({ y: 'New Y Axis Label' })
  34. var label = d3.select('.c3-axis-y-label')
  35. expect(label.text()).toBe('New Y Axis Label')
  36. expect(label.attr('dx')).toBe('-0.5em')
  37. expect(label.attr('dy')).toBe('1.2em')
  38. })
  39. it('updates y axis label', function() {
  40. chart.axis.labels({ y2: 'New Y2 Axis Label' })
  41. var label = d3.select('.c3-axis-y2-label')
  42. expect(label.text()).toBe('New Y2 Axis Label')
  43. expect(label.attr('dx')).toBe('-0.5em')
  44. expect(label.attr('dy')).toBe('-0.5em')
  45. })
  46. it('updates axis max values', function() {
  47. chart.axis.max({ x: 100, y: 300, y2: 100 })
  48. var max_values = chart.axis.max()
  49. expect(max_values.x).toBe(100)
  50. expect(max_values.y).toBe(300)
  51. expect(max_values.y2).toBe(100)
  52. })
  53. it('updates axis min values', function() {
  54. chart.axis.min({ x: 0, y: 20, y2: 50 })
  55. var min_values = chart.axis.min()
  56. expect(min_values.x).toBe(0)
  57. expect(min_values.y).toBe(20)
  58. expect(min_values.y2).toBe(50)
  59. })
  60. it('updates axis range', function() {
  61. chart.axis.range({ min: 5, max: 250 })
  62. var range = chart.axis.range()
  63. expect(range.max.y).toBe(250)
  64. expect(range.min.y).toBe(5)
  65. })
  66. })
  67. describe('axis.types', function() {
  68. beforeAll(function() {
  69. args = {
  70. data: {
  71. columns: [
  72. ['data1', 30, 200, 100],
  73. ['data2', 30, 200, 100]
  74. ],
  75. axes: {
  76. data1: 'y',
  77. data2: 'y2'
  78. }
  79. },
  80. axis: {
  81. y: {
  82. label: 'Y Axis Label'
  83. },
  84. y2: {
  85. show: true,
  86. type: 'log',
  87. label: 'Y2 Axis Label'
  88. }
  89. }
  90. }
  91. })
  92. it('retrieves y/y2 axis types', function() {
  93. expect(chart.axis.types()).toEqual({
  94. y: 'linear',
  95. y2: 'log'
  96. })
  97. const linearDomain = chart.internal.y.domain()
  98. const logDomain = chart.internal.y2.domain()
  99. chart.axis.types({
  100. y: 'log',
  101. y2: 'linear'
  102. })
  103. expect(chart.internal.y2.domain()).toEqual(linearDomain)
  104. expect(chart.internal.y.domain()).toEqual(logDomain)
  105. expect(chart.axis.types()).toEqual({
  106. y: 'log',
  107. y2: 'linear'
  108. })
  109. })
  110. })
  111. })