collab/mermaid/cypress/integration/rendering/pie.spec.tsblame
View source
6dd74de1import { imgSnapshotTest, renderGraph } from '../../helpers/util.ts';
6dd74de2
6dd74de3describe('pie chart', () => {
6dd74de4 it('should render a simple pie diagram', () => {
6dd74de5 imgSnapshotTest(
6dd74de6 `pie title Sports in Sweden
6dd74de7 "Bandy": 40
6dd74de8 "Ice-Hockey": 80
6dd74de9 "Football": 90
6dd74de10 `
6dd74de11 );
6dd74de12 });
6dd74de13
6dd74de14 it('should render a simple pie diagram with long labels', () => {
6dd74de15 imgSnapshotTest(
6dd74de16 `pie title NETFLIX
6dd74de17 "Time spent looking for movie": 90
6dd74de18 "Time spent watching it": 10
6dd74de19 `
6dd74de20 );
6dd74de21 });
6dd74de22
6dd74de23 it('should render a simple pie diagram with capital letters for labels', () => {
6dd74de24 imgSnapshotTest(
6dd74de25 `pie title What Voldemort doesn't have?
6dd74de26 "FRIENDS": 2
6dd74de27 "FAMILY": 3
6dd74de28 "NOSE": 45
6dd74de29 `
6dd74de30 );
6dd74de31 });
6dd74de32
6dd74de33 it('should render a pie diagram when useMaxWidth is true (default)', () => {
6dd74de34 renderGraph(
6dd74de35 `pie title Sports in Sweden
6dd74de36 "Bandy": 40
6dd74de37 "Ice-Hockey": 80
6dd74de38 "Football": 90
6dd74de39 `,
6dd74de40 { pie: { useMaxWidth: true } }
6dd74de41 );
6dd74de42 cy.get('svg').should((svg) => {
6dd74de43 expect(svg).to.have.attr('width', '100%');
6dd74de44 const style = svg.attr('style');
6dd74de45 expect(style).to.match(/^max-width: [\d.]+px;$/);
6dd74de46 const maxWidthValue = parseFloat(style.match(/[\d.]+/g).join(''));
6dd74de47 expect(maxWidthValue).to.be.within(590, 600); // depends on installed fonts: 596.2 on my PC, 597.5 on CI
6dd74de48 });
6dd74de49 });
6dd74de50
6dd74de51 it('should render a pie diagram when useMaxWidth is false', () => {
6dd74de52 renderGraph(
6dd74de53 `pie title Sports in Sweden
6dd74de54 "Bandy": 40
6dd74de55 "Ice-Hockey": 80
6dd74de56 "Football": 90
6dd74de57 `,
6dd74de58 { pie: { useMaxWidth: false } }
6dd74de59 );
6dd74de60 cy.get('svg').should((svg) => {
6dd74de61 const width = parseFloat(svg.attr('width'));
6dd74de62 expect(width).to.be.within(590, 600); // depends on installed fonts: 596.2 on my PC, 597.5 on CI
6dd74de63 expect(svg).to.not.have.attr('style');
6dd74de64 });
6dd74de65 });
6dd74de66
6dd74de67 it('should render a pie diagram when textPosition is set', () => {
6dd74de68 imgSnapshotTest(
6dd74de69 `pie
6dd74de70 "Dogs": 50
6dd74de71 "Cats": 25
6dd74de72 `,
6dd74de73 { logLevel: 1, pie: { textPosition: 0.9 } }
6dd74de74 );
6dd74de75 });
6dd74de76
6dd74de77 it('should render a pie diagram with showData', () => {
6dd74de78 imgSnapshotTest(
6dd74de79 `pie showData
6dd74de80 "Dogs": 50
6dd74de81 "Cats": 25
6dd74de82 `
6dd74de83 );
6dd74de84 });
6dd74de85 it('should render pie slices only for non-zero values but shows all legends', () => {
6dd74de86 imgSnapshotTest(
6dd74de87 ` pie title Pets adopted by volunteers
6dd74de88 "Dogs" : 386
6dd74de89 "Cats" : 85
6dd74de90 "Rats" : 1
6dd74de91 `
6dd74de92 );
6dd74de93 });
6dd74de94});