diff --git a/cypress/integration/rendering/xyChart.spec.js b/cypress/integration/rendering/xyChart.spec.js index 85d998c50..bdb0b65ff 100644 --- a/cypress/integration/rendering/xyChart.spec.js +++ b/cypress/integration/rendering/xyChart.spec.js @@ -1,19 +1,20 @@ import { imgSnapshotTest, renderGraph } from '../../helpers/util.ts'; describe('XY Chart', () => { - it('should render the simplest possible chart', () => { - imgSnapshotTest( - ` + describe('single dataset', () => { + it('should render the simplest possible chart', () => { + imgSnapshotTest( + ` xychart-beta line [10, 30, 20] `, - {} - ); - cy.get('svg'); - }); - it('Should render a complete chart', () => { - imgSnapshotTest( - ` + {} + ); + cy.get('svg'); + }); + it('Should render a complete chart', () => { + imgSnapshotTest( + ` xychart-beta title "Sales Revenue" x-axis Months [jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec] @@ -21,62 +22,62 @@ describe('XY Chart', () => { bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000] line [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000] `, - {} - ); - }); - it('Should render a chart without title', () => { - imgSnapshotTest( - ` + {} + ); + }); + it('Should render a chart without title', () => { + imgSnapshotTest( + ` xychart-beta x-axis Months [jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec] y-axis "Revenue (in $)" 4000 --> 11000 bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000] line [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000] `, - {} - ); - cy.get('svg'); - }); - it('y-axis title not required', () => { - imgSnapshotTest( - ` + {} + ); + cy.get('svg'); + }); + it('y-axis title not required', () => { + imgSnapshotTest( + ` xychart-beta x-axis Months [jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec] y-axis 4000 --> 11000 bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000] line [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000] `, - {} - ); - cy.get('svg'); - }); - it('Should render a chart without y-axis with different range', () => { - imgSnapshotTest( - ` + {} + ); + cy.get('svg'); + }); + it('Should render a chart without y-axis with different range', () => { + imgSnapshotTest( + ` xychart-beta x-axis Months [jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec] bar [5000, 6000, 7500, 8200, 9500, 10500, 14000, 3200, 9200, 9900, 3400, 6000] line [2000, 7000, 6500, 9200, 9500, 7500, 11000, 10200, 3200, 8500, 7000, 8800] `, - {} - ); - cy.get('svg'); - }); - it('x axis title not required', () => { - imgSnapshotTest( - ` + {} + ); + cy.get('svg'); + }); + it('x axis title not required', () => { + imgSnapshotTest( + ` xychart-beta x-axis [jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec] bar [5000, 6000, 7500, 8200, 9500, 10500, 14000, 3200, 9200, 9900, 3400, 6000] line [2000, 7000, 6500, 9200, 9500, 7500, 11000, 10200, 3200, 8500, 7000, 8800] `, - {} - ); - cy.get('svg'); - }); - it('Multiple plots can be rendered', () => { - imgSnapshotTest( - ` + {} + ); + cy.get('svg'); + }); + it('Multiple plots can be rendered', () => { + imgSnapshotTest( + ` xychart-beta line [23, 46, 77, 34] line [45, 32, 33, 12] @@ -85,24 +86,24 @@ describe('XY Chart', () => { line [22, 29, 75, 33] bar [52, 96, 35, 10] `, - {} - ); - cy.get('svg'); - }); - it('Decimals and negative numbers are supported', () => { - imgSnapshotTest( - ` + {} + ); + cy.get('svg'); + }); + it('Decimals and negative numbers are supported', () => { + imgSnapshotTest( + ` xychart-beta y-axis -2.4 --> 3.5 line [+1.3, .6, 2.4, -.34] `, - {} - ); - cy.get('svg'); - }); - it('Render spark line with "plotReservedSpacePercent"', () => { - imgSnapshotTest( - ` + {} + ); + cy.get('svg'); + }); + it('Render spark line with "plotReservedSpacePercent"', () => { + imgSnapshotTest( + ` --- config: theme: dark @@ -114,13 +115,13 @@ describe('XY Chart', () => { xychart-beta line [5000, 9000, 7500, 6200, 9500, 5500, 11000, 8200, 9200, 9500, 7000, 8800] `, - {} - ); - cy.get('svg'); - }); - it('Render spark bar without displaying other property', () => { - imgSnapshotTest( - ` + {} + ); + cy.get('svg'); + }); + it('Render spark bar without displaying other property', () => { + imgSnapshotTest( + ` --- config: theme: dark @@ -141,13 +142,13 @@ describe('XY Chart', () => { xychart-beta bar [5000, 9000, 7500, 6200, 9500, 5500, 11000, 8200, 9200, 9500, 7000, 8800] `, - {} - ); - cy.get('svg'); - }); - it('Should use all the config from directive', () => { - imgSnapshotTest( - ` + {} + ); + cy.get('svg'); + }); + it('Should use all the config from directive', () => { + imgSnapshotTest( + ` %%{init: {"xyChart": {"width": 1000, "height": 600, "titlePadding": 5, "titleFontSize": 10, "xAxis": {"labelFontSize": "20", "labelPadding": 10, "titleFontSize": 30, "titlePadding": 20, "tickLength": 10, "tickWidth": 5}, "yAxis": {"labelFontSize": "20", "labelPadding": 10, "titleFontSize": 30, "titlePadding": 20, "tickLength": 10, "tickWidth": 5}, "plotBorderWidth": 5, "chartOrientation": "horizontal", "plotReservedSpacePercent": 60 }}}%% xychart-beta title "Sales Revenue" @@ -156,13 +157,13 @@ describe('XY Chart', () => { bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000] line [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000] `, - {} - ); - cy.get('svg'); - }); - it('Should use all the config from yaml', () => { - imgSnapshotTest( - ` + {} + ); + cy.get('svg'); + }); + it('Should use all the config from yaml', () => { + imgSnapshotTest( + ` --- config: theme: forest @@ -197,13 +198,13 @@ describe('XY Chart', () => { bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000] line [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000] `, - {} - ); - cy.get('svg'); - }); - it('Render with show axis title false', () => { - imgSnapshotTest( - ` + {} + ); + cy.get('svg'); + }); + it('Render with show axis title false', () => { + imgSnapshotTest( + ` --- config: xyChart: @@ -219,13 +220,13 @@ describe('XY Chart', () => { bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000] line [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000] `, - {} - ); - cy.get('svg'); - }); - it('Render with show axis label false', () => { - imgSnapshotTest( - ` + {} + ); + cy.get('svg'); + }); + it('Render with show axis label false', () => { + imgSnapshotTest( + ` --- config: xyChart: @@ -241,13 +242,13 @@ describe('XY Chart', () => { bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000] line [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000] `, - {} - ); - cy.get('svg'); - }); - it('Render with show axis tick false', () => { - imgSnapshotTest( - ` + {} + ); + cy.get('svg'); + }); + it('Render with show axis tick false', () => { + imgSnapshotTest( + ` --- config: xyChart: @@ -263,13 +264,13 @@ describe('XY Chart', () => { bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000] line [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000] `, - {} - ); - cy.get('svg'); - }); - it('Render with show axis line false', () => { - imgSnapshotTest( - ` + {} + ); + cy.get('svg'); + }); + it('Render with show axis line false', () => { + imgSnapshotTest( + ` --- config: xyChart: @@ -285,13 +286,13 @@ describe('XY Chart', () => { bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000] line [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000] `, - {} - ); - cy.get('svg'); - }); - it('Render all the theme color', () => { - imgSnapshotTest( - ` + {} + ); + cy.get('svg'); + }); + it('Render all the theme color', () => { + imgSnapshotTest( + ` --- config: themeVariables: @@ -315,8 +316,39 @@ describe('XY Chart', () => { bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000] line [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000] `, - {} - ); - cy.get('svg'); + {} + ); + cy.get('svg'); + }); + }); + + describe('multiple datasets', () => { + it('should render 3 datasets', () => { + imgSnapshotTest( + ` + xychart-beta + title "Basic xychart with multiple datasets" + x-axis "Relevant categories" [category1, "category 2", category3, category4] + y-axis Animals 0 --> 160 + bar [["dogs" [40, 20, 40, 30]],["cats" [20, 40, 50, 30]],["birds" [30, 60, 50, 30]]] + `, + {} + ); + cy.get('svg'); + }); + + it('should render 3 datasets in horizontal orientation', () => { + imgSnapshotTest( + ` + xychart-beta horizontal + title "Basic xychart with multiple datasets" + x-axis "Relevant categories" [category1, "category 2", category3, category4] + y-axis Animals 0 --> 160 + bar [["dogs" [40, 20, 40, 30]],["cats" [20, 40, 50, 30]],["birds" [30, 60, 50, 30]]] + `, + {} + ); + cy.get('svg'); + }); }); });