mirror of
				https://github.com/mermaid-js/mermaid.git
				synced 2025-11-03 20:34:20 +01:00 
			
		
		
		
	Merge branch 'develop' into next
* develop: (56 commits) chore: Add comments on redirectMaps remove `chart` from `pie.spec.ts` description Update docs change `defaultConfig` type to `RequiredDeep` and use it in `pieDb` use `DiagramStylesProvider` in `pieStyles.ts` remove `setConfig` and `resetConfig` in pie add `structuredClone` in pie `getConfig` cleanAndMerge pieConfig remove cleanClone feat: Add cleanAndMerge and tests chore: Rename utils.spec.ts move db assignment from `beforeEach` to `beforeAll` create `structuredCleanClone` helper function add more types to pieRenderer add `resetConfig` to `clear` in pieDb rename `reset` to `resetConfig` use `structedClone` in `pieDb` remove `PieDiagramConfig` and import generated one remove unnecessary lines in pie files remove unused `HTML` import in pieRenderer ...
This commit is contained in:
		@@ -1,89 +1,85 @@
 | 
			
		||||
import { imgSnapshotTest, renderGraph } from '../../helpers/util.ts';
 | 
			
		||||
 | 
			
		||||
describe('Pie Chart', () => {
 | 
			
		||||
describe('pie chart', () => {
 | 
			
		||||
  it('should render a simple pie diagram', () => {
 | 
			
		||||
    imgSnapshotTest(
 | 
			
		||||
      `pie title Sports in Sweden
 | 
			
		||||
        "Bandy": 40
 | 
			
		||||
        "Ice-Hockey": 80
 | 
			
		||||
        "Football": 90
 | 
			
		||||
      `
 | 
			
		||||
    pie title Sports in Sweden
 | 
			
		||||
       "Bandy" : 40
 | 
			
		||||
       "Ice-Hockey" : 80
 | 
			
		||||
       "Football" : 90
 | 
			
		||||
      `,
 | 
			
		||||
      {}
 | 
			
		||||
    );
 | 
			
		||||
    cy.get('svg');
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  it('should render a simple pie diagram with long labels', () => {
 | 
			
		||||
    imgSnapshotTest(
 | 
			
		||||
      `pie title NETFLIX
 | 
			
		||||
        "Time spent looking for movie": 90
 | 
			
		||||
        "Time spent watching it": 10
 | 
			
		||||
      `
 | 
			
		||||
      pie title NETFLIX
 | 
			
		||||
         "Time spent looking for movie" : 90
 | 
			
		||||
         "Time spent watching it" : 10
 | 
			
		||||
        `,
 | 
			
		||||
      {}
 | 
			
		||||
    );
 | 
			
		||||
    cy.get('svg');
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  it('should render a simple pie diagram with capital letters for labels', () => {
 | 
			
		||||
    imgSnapshotTest(
 | 
			
		||||
      `pie title What Voldemort doesn't have?
 | 
			
		||||
        "FRIENDS": 2
 | 
			
		||||
        "FAMILY": 3
 | 
			
		||||
        "NOSE": 45
 | 
			
		||||
      `
 | 
			
		||||
      pie title What Voldemort doesn't have?
 | 
			
		||||
         "FRIENDS" : 2
 | 
			
		||||
         "FAMILY" : 3
 | 
			
		||||
         "NOSE" : 45
 | 
			
		||||
        `,
 | 
			
		||||
      {}
 | 
			
		||||
    );
 | 
			
		||||
    cy.get('svg');
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  it('should render a pie diagram when useMaxWidth is true (default)', () => {
 | 
			
		||||
    renderGraph(
 | 
			
		||||
      `
 | 
			
		||||
    pie title Sports in Sweden
 | 
			
		||||
       "Bandy" : 40
 | 
			
		||||
       "Ice-Hockey" : 80
 | 
			
		||||
       "Football" : 90
 | 
			
		||||
      `pie title Sports in Sweden
 | 
			
		||||
        "Bandy": 40
 | 
			
		||||
        "Ice-Hockey": 80
 | 
			
		||||
        "Football": 90
 | 
			
		||||
      `,
 | 
			
		||||
      { pie: { useMaxWidth: true } }
 | 
			
		||||
    );
 | 
			
		||||
    cy.get('svg').should((svg) => {
 | 
			
		||||
      expect(svg).to.have.attr('width', '100%');
 | 
			
		||||
      // expect(svg).to.have.attr('height');
 | 
			
		||||
      // const height = parseFloat(svg.attr('height'));
 | 
			
		||||
      // expect(height).to.eq(450);
 | 
			
		||||
      const style = svg.attr('style');
 | 
			
		||||
      expect(style).to.match(/^max-width: [\d.]+px;$/);
 | 
			
		||||
      const maxWidthValue = parseFloat(style.match(/[\d.]+/g).join(''));
 | 
			
		||||
      expect(maxWidthValue).to.eq(984);
 | 
			
		||||
    });
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  it('should render a pie diagram when useMaxWidth is false', () => {
 | 
			
		||||
    renderGraph(
 | 
			
		||||
      `
 | 
			
		||||
    pie title Sports in Sweden
 | 
			
		||||
       "Bandy" : 40
 | 
			
		||||
       "Ice-Hockey" : 80
 | 
			
		||||
       "Football" : 90
 | 
			
		||||
      `pie title Sports in Sweden
 | 
			
		||||
        "Bandy": 40
 | 
			
		||||
        "Ice-Hockey": 80
 | 
			
		||||
        "Football": 90
 | 
			
		||||
      `,
 | 
			
		||||
      { pie: { useMaxWidth: false } }
 | 
			
		||||
    );
 | 
			
		||||
    cy.get('svg').should((svg) => {
 | 
			
		||||
      // const height = parseFloat(svg.attr('height'));
 | 
			
		||||
      const width = parseFloat(svg.attr('width'));
 | 
			
		||||
      // expect(height).to.eq(450);
 | 
			
		||||
      expect(width).to.eq(984);
 | 
			
		||||
      expect(svg).to.not.have.attr('style');
 | 
			
		||||
    });
 | 
			
		||||
  });
 | 
			
		||||
  it('should render a pie diagram when textPosition is set', () => {
 | 
			
		||||
 | 
			
		||||
  it('should render a pie diagram when textPosition is setted', () => {
 | 
			
		||||
    imgSnapshotTest(
 | 
			
		||||
      `
 | 
			
		||||
        pie
 | 
			
		||||
          "Dogs": 50
 | 
			
		||||
          "Cats": 25
 | 
			
		||||
        `,
 | 
			
		||||
      `pie
 | 
			
		||||
        "Dogs": 50
 | 
			
		||||
        "Cats": 25
 | 
			
		||||
      `,
 | 
			
		||||
      { logLevel: 1, pie: { textPosition: 0.9 } }
 | 
			
		||||
    );
 | 
			
		||||
    cy.get('svg');
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  it('should render a pie diagram with showData', () => {
 | 
			
		||||
    imgSnapshotTest(
 | 
			
		||||
      `pie showData
 | 
			
		||||
        "Dogs": 50
 | 
			
		||||
        "Cats": 25
 | 
			
		||||
      `
 | 
			
		||||
    );
 | 
			
		||||
  });
 | 
			
		||||
});
 | 
			
		||||
		Reference in New Issue
	
	Block a user