mirror of
				https://github.com/mermaid-js/mermaid.git
				synced 2025-10-31 02:44:17 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			89 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { describe, expect, it } from 'vitest';
 | |
| 
 | |
| import { Architecture } from '../src/language/index.js';
 | |
| import { expectNoErrorsOrAlternatives, architectureParse as parse } from './test-util.js';
 | |
| 
 | |
| describe('architecture', () => {
 | |
|   describe('should handle architecture definition', () => {
 | |
|     it.each([
 | |
|       `architecture-beta`,
 | |
|       `  architecture-beta  `,
 | |
|       `\tarchitecture-beta\t`,
 | |
|       `
 | |
|         \tarchitecture-beta
 | |
|         `,
 | |
|     ])('should handle regular architecture', (context: string) => {
 | |
|       const result = parse(context);
 | |
|       expectNoErrorsOrAlternatives(result);
 | |
|       expect(result.value.$type).toBe(Architecture);
 | |
|     });
 | |
|   });
 | |
| 
 | |
|   describe('should handle TitleAndAccessibilities', () => {
 | |
|     it.each([
 | |
|       `architecture-beta title sample title`,
 | |
|       `  architecture-beta  title sample title  `,
 | |
|       `\tarchitecture-beta\ttitle sample title\t`,
 | |
|       `architecture-beta
 | |
|             \ttitle sample title
 | |
|             `,
 | |
|     ])('should handle regular architecture + title in same line', (context: string) => {
 | |
|       const result = parse(context);
 | |
|       expectNoErrorsOrAlternatives(result);
 | |
|       expect(result.value.$type).toBe(Architecture);
 | |
| 
 | |
|       const { title } = result.value;
 | |
|       expect(title).toBe('sample title');
 | |
|     });
 | |
| 
 | |
|     it.each([
 | |
|       `architecture-beta
 | |
|             title sample title`,
 | |
|       `architecture-beta
 | |
|             title sample title
 | |
|             `,
 | |
|     ])('should handle regular architecture + title in next line', (context: string) => {
 | |
|       const result = parse(context);
 | |
|       expectNoErrorsOrAlternatives(result);
 | |
|       expect(result.value.$type).toBe(Architecture);
 | |
| 
 | |
|       const { title } = result.value;
 | |
|       expect(title).toBe('sample title');
 | |
|     });
 | |
| 
 | |
|     it('should handle regular architecture + title + accTitle + accDescr', () => {
 | |
|       const context = `architecture-beta
 | |
|             title sample title
 | |
|             accTitle: sample accTitle
 | |
|             accDescr: sample accDescr
 | |
|             `;
 | |
|       const result = parse(context);
 | |
|       expectNoErrorsOrAlternatives(result);
 | |
|       expect(result.value.$type).toBe(Architecture);
 | |
| 
 | |
|       const { title, accTitle, accDescr } = result.value;
 | |
|       expect(title).toBe('sample title');
 | |
|       expect(accTitle).toBe('sample accTitle');
 | |
|       expect(accDescr).toBe('sample accDescr');
 | |
|     });
 | |
| 
 | |
|     it('should handle regular architecture + title + accTitle + multi-line accDescr', () => {
 | |
|       const context = `architecture-beta
 | |
|             title sample title
 | |
|             accTitle: sample accTitle
 | |
|             accDescr {
 | |
|                 sample accDescr
 | |
|             }
 | |
|             `;
 | |
|       const result = parse(context);
 | |
|       expectNoErrorsOrAlternatives(result);
 | |
|       expect(result.value.$type).toBe(Architecture);
 | |
| 
 | |
|       const { title, accTitle, accDescr } = result.value;
 | |
|       expect(title).toBe('sample title');
 | |
|       expect(accTitle).toBe('sample accTitle');
 | |
|       expect(accDescr).toBe('sample accDescr');
 | |
|     });
 | |
|   });
 | |
| });
 | 
