Files
gitea/web_src/js/markup/mermaid.test.ts
silverwind 49e6d5f6d6 Add elk layout support to mermaid (#36486)
Fixes: https://github.com/go-gitea/gitea/issues/34769

This allows the user to opt-in to using `elk` layouts using either YAML
frontmatter or `%%{ init` directives inside the markup code block. The
default layout is not changed.

---------

Signed-off-by: silverwind <me@silverwind.io>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
2026-02-07 02:22:57 +00:00

60 lines
1.1 KiB
TypeScript

import {sourcesContainElk} from './mermaid.ts';
import {dedent} from '../utils/testhelper.ts';
test('sourcesContainElk', () => {
expect(sourcesContainElk([dedent(`
flowchart TB
elk --> B
`)])).toEqual(false);
expect(sourcesContainElk([dedent(`
---
config:
layout : elk
---
flowchart TB
A --> B
`)])).toEqual(true);
expect(sourcesContainElk([dedent(`
---
config:
layout: elk.layered
---
flowchart TB
A --> B
`)])).toEqual(true);
expect(sourcesContainElk([`
%%{ init : { "flowchart": { "defaultRenderer": "elk" } } }%%
flowchart TB
A --> B
`])).toEqual(true);
expect(sourcesContainElk([`
---
config:
layout: 123
---
%%{ init : { "class": { "defaultRenderer": "elk.any" } } }%%
flowchart TB
A --> B
`])).toEqual(true);
expect(sourcesContainElk([`
%%{init:{
"layout" : "elk.layered"
}}%%
flowchart TB
A --> B
`])).toEqual(true);
expect(sourcesContainElk([`
%%{ initialize: {
'layout' : 'elk.layered'
}}%%
flowchart TB
A --> B
`])).toEqual(true);
});