Compare commits

..

118 Commits

Author SHA1 Message Date
sidharthv96
8acc6c1c53 Update snapshots 2022-12-15 19:14:06 +00:00
sidharthv96
be1656b136 Update snapshots 2022-12-15 19:13:57 +00:00
sidharthv96
33c5ba02e6 Update snapshots 2022-12-15 19:13:47 +00:00
sidharthv96
1015516416 Update snapshots 2022-12-15 19:12:47 +00:00
sidharthv96
d475696534 Update snapshots 2022-12-15 19:09:19 +00:00
sidharthv96
f1634216c4 Update snapshots 2022-12-15 19:09:16 +00:00
Sidharth Vinod
2777ed24f2 Merge branch 'develop' into sidv/e2eCI
* develop: (44 commits)
  Update docs
  Add `workflow_dispatch` to lint.yml
  chore: update docs folder
  lint
  fix typescript error
  fix(docs): build the docs
  fix(docs): remove duplicate section
  chore(deps): update all non-major dependencies
  Update docs/misc/integrations.md
  Add links to github atom add-ons
  remove links from atom.io; add note Atom has been archived
  set svg role to 'graphics-document document'
  common function for a11y; add to renderAsync; + renderAsync spec
  feat: add links to theme listing
  fix cspell
  fix cspell
  fix lint
  refactor theming doc
  remove typeof
  use camelCase
  ...
2022-12-16 00:34:36 +05:30
Sidharth Vinod
579536a151 Pull before commit 2022-12-16 00:32:41 +05:30
Sidharth Vinod
d6fad1bbd8 Merge pull request #3890 from BD103/patch-1
Add links to theme listing
2022-12-16 00:24:15 +05:30
BD103
e2b05d3cf6 Update docs 2022-12-15 18:24:23 +00:00
BD103
1495baac2c Merge branch 'develop' into patch-1 2022-12-15 13:20:45 -05:00
Sidharth Vinod
ff7ed7f49f Merge branch 'develop' of https://github.com/mermaid-js/mermaid into develop
* 'develop' of https://github.com/mermaid-js/mermaid: (40 commits)
  lint
  fix typescript error
  fix(docs): build the docs
  fix(docs): remove duplicate section
  chore(deps): update all non-major dependencies
  Update docs/misc/integrations.md
  Add links to github atom add-ons
  remove links from atom.io; add note Atom has been archived
  set svg role to 'graphics-document document'
  common function for a11y; add to renderAsync; + renderAsync spec
  fix cspell
  fix cspell
  fix lint
  refactor theming doc
  remove typeof
  use camelCase
  make test title clearer
  update /docs
  add test for multi-line accDescr
  use MockedD3, spies in util insertTitle spec (remove MockD3)
  ...
2022-12-15 21:50:06 +05:30
Sidharth Vinod
333b974f10 Add workflow_dispatch to lint.yml 2022-12-15 21:50:00 +05:30
Sidharth Vinod
01039c574c Merge pull request #3914 from tommoor/patch-1
fix: Typescript error in usage
2022-12-15 21:45:06 +05:30
Sidharth Vinod
4e70f327c4 Merge pull request #3897 from weedySeaDragon/feat/3896_a11y-svg-role-graphics-doc-doc
feat: Set svg role to 'graphics-document document'
2022-12-15 21:42:08 +05:30
Sidharth Vinod
54bb2ef00e Merge pull request #3908 from Joxtacy/patch-1
fix(docs): remove duplicate section
2022-12-15 20:39:52 +05:30
BD103
992d1623a7 chore: update docs folder 2022-12-15 09:46:00 -05:00
Tom Moor
78dd03dcdb lint 2022-12-15 09:29:30 -05:00
Tom Moor
9f2d29b68b fix typescript error 2022-12-15 06:09:22 -08:00
Jesper Hasselquist
dfa1d26952 fix(docs): build the docs 2022-12-12 22:32:50 +09:00
Jesper Hasselquist
32fcea3bdd fix(docs): remove duplicate section
Remove duplicate `Return Type` section
2022-12-12 21:39:19 +09:00
renovate[bot]
a975c8c9cd chore(deps): update all non-major dependencies 2022-12-12 04:57:37 +00:00
Alois Klink
e97bef2ff7 Merge pull request #3899 from weedySeaDragon/docs/remove-atom-links
doc: remove links from atom.io; add note Atom has been archived
2022-12-11 00:12:59 +00:00
Ashley Engelund
e4c9aa198e Update docs/misc/integrations.md
Co-authored-by: Alois Klink <alois@aloisklink.com>
2022-12-10 13:47:01 -08:00
Ashley Engelund
76e9e07370 Add links to github atom add-ons
Co-authored-by: Alois Klink <alois@aloisklink.com>
2022-12-10 13:46:24 -08:00
Ashley Engelund (weedySeaDragon @ github)
de795a915e remove links from atom.io; add note Atom has been archived 2022-12-09 04:56:55 -08:00
Ashley Engelund (weedySeaDragon @ github)
e59b830d74 set svg role to 'graphics-document document' 2022-12-08 11:25:04 -08:00
sidharthv96
2c4443ec71 Update snapshots 2022-12-08 10:12:47 +00:00
Sidharth Vinod
638607da00 reduce failure threshold 2022-12-08 15:36:07 +05:30
Knut Sveidqvist
90d9724d1a Merge pull request #3808 from weedySeaDragon/feat/3626-aria-descBy-roledescription-mocks
Feat: Add aria-describedby, aria-roledescription
2022-12-08 10:44:31 +01:00
sidharthv96
f3e1479c77 Update snapshots 2022-12-08 09:29:38 +00:00
Sidharth Vinod
bc5b9d3937 fix: CI write permissions 2022-12-08 14:54:03 +05:30
Sidharth Vinod
976585401c Upload ci snapshots 2022-12-08 14:22:48 +05:30
Sidharth Vinod
6694bca803 Add ssim:fast 2022-12-08 14:18:24 +05:30
Sidharth Vinod
2a7dc427ae Use ci snapshots 2022-12-08 14:13:25 +05:30
Sidharth Vinod
a3d8f1f8e4 Remove ssim:fast 2022-12-08 14:05:37 +05:30
Sidharth Vinod
688d671d2e Add pingfang font 2022-12-08 14:04:06 +05:30
Sidharth Vinod
b14b23a6af Use ssim fast algorithm 2022-12-08 13:07:23 +05:30
Sidharth Vinod
aa949b4ff6 Increase blur 2022-12-08 12:54:45 +05:30
Sidharth Vinod
e792bf5239 Add blur 2022-12-08 12:54:28 +05:30
Ashley Engelund (weedySeaDragon @ github)
1c9a559362 common function for a11y; add to renderAsync; + renderAsync spec 2022-12-07 10:19:30 -08:00
Ashley Engelund (weedySeaDragon @ github)
b1dd0008bc Merge remote-tracking branch 'MERMAID/develop' into feat/3626-aria-descBy-roledescription-mocks 2022-12-07 09:31:20 -08:00
Sidharth Vinod
a0d3b8c1fe Increase threshold 2022-12-07 17:22:57 +05:30
Sidharth Vinod
a86f831b3e Remove courier font 2022-12-07 16:24:09 +05:30
Sidharth Vinod
1c794ce619 Add courier font 2022-12-07 15:50:07 +05:30
Sidharth Vinod
86cab46cf0 Try SSIM 2022-12-07 15:07:08 +05:30
Sidharth Vinod
e6e02a9b70 Fix viewport size 2022-12-07 15:03:42 +05:30
Sidharth Vinod
f3a209badc Remove hardcoded width in tests 2022-12-07 14:01:52 +05:30
Sidharth Vinod
69e84b6731 Fix viewport size 2022-12-07 14:01:35 +05:30
Sidharth Vinod
58dca0afe3 add snapshots to repo 2022-12-07 13:26:33 +05:30
Sidharth Vinod
af1a7bea1f add snapshots to repo 2022-12-07 13:26:08 +05:30
Knut Sveidqvist
033201ff1f Merge pull request #3889 from huynhicode/docs/theming
docs: refactor Theming doc
2022-12-07 08:55:00 +01:00
Sidharth Vinod
af212331ef Merge remote-tracking branch 'origin/develop' into pr/BD103/3890
* origin/develop:
  fix: Fail docs:verify on non push events
2022-12-07 11:58:33 +05:30
Sidharth Vinod
59fdaa3b53 fix: Fail docs:verify on non push events 2022-12-07 11:58:09 +05:30
Sidharth Vinod
f2a85eafac Merge remote-tracking branch 'origin/develop' into pr/BD103/3890
* origin/develop:
  chore: Update cspell
  Update docs
  fix: docs build command
  chore: Rebuild docs if linting fails
  chore: Format Mermaid.vue
  Made mermaidConfig a local variable so that it cannot be shared cross rendering.
  Fixed an issue that diagrams disappear from docs pages when switching themes or reloading pages
  Fixed the issue that theme-switch does not work on docs.
  Get base sha from PR
  Run doc lint only if files changed
  Run doc lint only if files changed
  Run doc lint only if files changed
  split lint docs action
  split lint docs action
  fix: File location
  fix(docs): Test auto commit
  fix(docs): Test auto commit
  fix(docs): Test auto commit
  chore: Update docs path
  chore: Auto build docs if only src/docs is changed
2022-12-07 11:50:45 +05:30
Sidharth Vinod
9b547edbe9 Merge pull request #3547 from mermaid-js/sidv/autoBuildDocs
chore(docs): Auto build docs
2022-12-07 11:49:29 +05:30
Sidharth Vinod
48518a56c7 Merge branch 'sidv/autoBuildDocs' of https://github.com/mermaid-js/mermaid into sidv/autoBuildDocs
* 'sidv/autoBuildDocs' of https://github.com/mermaid-js/mermaid:
  Update docs
2022-12-07 11:48:56 +05:30
Sidharth Vinod
1a767ee492 chore: Update cspell 2022-12-07 11:48:51 +05:30
sidharthv96
b2489523f2 Update docs 2022-12-07 06:13:07 +00:00
Sidharth Vinod
7553827985 fix: docs build command 2022-12-07 11:40:17 +05:30
Sidharth Vinod
792c1a8320 chore: Rebuild docs if linting fails 2022-12-07 11:19:44 +05:30
Sidharth Vinod
963a1f1eb1 Merge remote-tracking branch 'origin/develop' into sidv/autoBuildDocs
* origin/develop: (564 commits)
  chore: Format Mermaid.vue
  Made mermaidConfig a local variable so that it cannot be shared cross rendering.
  Fix for issue #3882 moving the label when the path has been modified
  Small fix for issue #3881
  Fixed an issue that diagrams disappear from docs pages when switching themes or reloading pages
  Fixed the issue that theme-switch does not work on docs.
  chore: Fix mindmap link
  chore: Switch back from unpkg to jsdelivr
  delete functions not used in diagrams/c4 code (dead code)
  Minor change
  feat: Add @include support to docs
  feat: Add @include example to docs
  feat: Add @include support to docs
  cleanup
  fix lines
  fix Async rendering
  Revert "sync"
  chore(deps): update pnpm to v7.17.1
  chore(deps): remove dependency on `graphlib`
  test(e2e): make gitgraph snapshots consistent
  ...
2022-12-07 11:11:45 +05:30
Sidharth Vinod
fdf261bda3 chore: Format Mermaid.vue 2022-12-06 15:53:36 +05:30
Sidharth Vinod
f2ee20fdf5 Merge pull request #3880 from ZenUml/defects/issue-3878
Defects/issue 3878
2022-12-06 15:52:15 +05:30
MrCoder
7a086890fd Made mermaidConfig a local variable so that it cannot be shared cross rendering. 2022-12-06 19:44:14 +11:00
BD103
49ca2e3588 feat: add links to theme listing 2022-12-05 17:41:30 -05:00
Knut Sveidqvist
c5653156d9 Merge pull request #3883 from mermaid-js/3882_edge_labels
3882 edge labels
2022-12-05 08:15:15 +01:00
steph
2cce562bc4 fix cspell 2022-12-04 22:10:33 -08:00
steph
f0aea0e6af fix cspell 2022-12-04 22:04:20 -08:00
steph
24560b7d13 fix lint 2022-12-04 21:51:29 -08:00
steph
d451a0c508 refactor theming doc 2022-12-04 21:20:09 -08:00
Ashley Engelund (weedySeaDragon @ github)
96996d0fba Merge remote-tracking branch 'MERMAID/develop' into feat/3626-aria-descBy-roledescription-mocks 2022-12-03 12:13:12 -08:00
Knut Sveidqvist
4124d186d0 Fix for issue #3882 moving the label when the path has been modified 2022-12-03 13:21:10 +01:00
MrCoder
a1e4ffb3f0 Fixed an issue that diagrams disappear from docs pages when switching themes or reloading pages 2022-12-03 19:30:09 +11:00
MrCoder
c7471f1755 Fixed the issue that theme-switch does not work on docs. 2022-12-03 19:10:05 +11:00
Ashley Engelund (weedySeaDragon @ github)
bfe3f309d2 remove typeof 2022-12-01 10:09:43 -08:00
Ashley Engelund (weedySeaDragon @ github)
f036d58ec3 Merge remote-tracking branch 'MERMAID/develop' into feat/3626-aria-descBy-roledescription-mocks
# Conflicts:
#	cypress/integration/rendering/gantt.spec.js
#	cypress/integration/rendering/requirement.spec.js
#	docs/config/setup/modules/mermaidAPI.md
#	packages/mermaid/src/accessibility.js
2022-12-01 10:08:44 -08:00
Ashley Engelund (weedySeaDragon @ github)
2bf753a769 use camelCase 2022-11-27 19:17:37 -08:00
Ashley Engelund (weedySeaDragon @ github)
6044e9e9e8 make test title clearer 2022-11-27 19:17:17 -08:00
Ashley Engelund (weedySeaDragon @ github)
e9d4372c41 Merge remote-tracking branch 'MERMAID/develop' into feat/3626-aria-descBy-roledescription-mocks 2022-11-27 19:10:28 -08:00
Ashley Engelund (weedySeaDragon @ github)
2030885fd3 update /docs 2022-11-27 10:46:43 -08:00
Ashley Engelund (weedySeaDragon @ github)
6e486d3c49 add test for multi-line accDescr 2022-11-27 10:32:25 -08:00
Ashley Engelund (weedySeaDragon @ github)
f1bc2deafd use MockedD3, spies in util insertTitle spec (remove MockD3) 2022-11-27 10:14:11 -08:00
Ashley Engelund (weedySeaDragon @ github)
7508cd796d (minor) fix comment, comment typo 2022-11-27 10:13:32 -08:00
Ashley Engelund (weedySeaDragon @ github)
626a4741c0 Merge remote-tracking branch 'MERMAID/develop' into feat/3626-aria-descBy-roledescription-mocks 2022-11-25 11:30:44 -08:00
Ashley Engelund (weedySeaDragon @ github)
a9c337302a export D3Element from mermaidAPI; use in accessibility 2022-11-20 12:27:29 -08:00
Ashley Engelund
2a98791ec9 use optional chaining check for get acc title and get acc description
Co-authored-by: Alois Klink <alois@aloisklink.com>
2022-11-20 12:17:21 -08:00
Ashley Engelund (weedySeaDragon @ github)
67a015c71d re-re-fixed the contributing doc 2022-11-17 16:58:18 -08:00
Ashley Engelund (weedySeaDragon @ github)
69526402e2 format .md files 2022-11-17 16:51:23 -08:00
Ashley Engelund (weedySeaDragon @ github)
b51759d36e set describeby to accessible description element id 2022-11-17 15:50:52 -08:00
Ashley Engelund (weedySeaDragon @ github)
68b1805c40 (minor) fix typo, whitespace formatting 2022-11-17 15:49:37 -08:00
Ashley Engelund (weedySeaDragon @ github)
9cc862b951 doc: adding diagrams: revise a11y section 2022-11-17 15:48:17 -08:00
Ashley Engelund (weedySeaDragon @ github)
4fb4aa417c doc: revise A11y: fix multi-line ex, +describedby, alpha sort examples 2022-11-17 15:47:22 -08:00
Ashley Engelund (weedySeaDragon @ github)
0adc6a6112 remove a11y from individual diagrams; now happens in mermaidAPI render 2022-11-17 12:28:11 -08:00
Ashley Engelund (weedySeaDragon @ github)
29efc116f3 put a11y into mermaidAPI render; add render spec (mock diagram renderers etc) 2022-11-17 12:27:17 -08:00
Ashley Engelund (weedySeaDragon @ github)
f62c5d9698 add diagram renderer mocks 2022-11-17 12:25:14 -08:00
Ashley Engelund (weedySeaDragon @ github)
1ad537bc4d d3 mock: use MockedD3; remove sequence specific mock code 2022-11-17 12:24:58 -08:00
Ashley Engelund (weedySeaDragon @ github)
1fc02940ae move mocks specific to only seq spec files out of global d3 mock 2022-11-17 12:24:16 -08:00
Ashley Engelund (weedySeaDragon @ github)
8a3c4f64b2 MockedD3: node() return Element; add selectAll() 2022-11-17 12:23:01 -08:00
Ashley Engelund (weedySeaDragon @ github)
4d7496b8dd add error checking (empty diagramType, title, desc) to a11y methods 2022-11-17 12:21:45 -08:00
Ashley Engelund (weedySeaDragon @ github)
03a11e103e (minor) fix typo 2022-11-17 12:19:31 -08:00
Ashley Engelund (weedySeaDragon @ github)
c3313050ce Merge remote-tracking branch 'MERMAID/develop' into feat/3626-aria-roledescription-for-svg 2022-11-17 11:17:18 -08:00
Ashley Engelund (weedySeaDragon @ github)
d99707641b add "roledescription" to cSpell list of words (as in 'aria-roledescription') 2022-11-15 13:49:05 -08:00
Ashley Engelund (weedySeaDragon @ github)
0d9566dd71 diagrams: use a11y title,desc specific method (was renamed) 2022-11-15 13:48:35 -08:00
Ashley Engelund (weedySeaDragon @ github)
8d96518092 accessibility.js -> ts; + set aria-roledescription; add spec 2022-11-15 13:47:16 -08:00
Sidharth Vinod
563c51d431 Get base sha from PR 2022-10-03 14:49:35 +08:00
Sidharth Vinod
455c61b2cf Run doc lint only if files changed 2022-10-03 14:41:52 +08:00
Sidharth Vinod
0a547e524e Run doc lint only if files changed 2022-10-03 14:30:46 +08:00
Sidharth Vinod
9c5c85d34a Run doc lint only if files changed 2022-10-03 14:24:51 +08:00
Sidharth Vinod
8d6af3dfed split lint docs action 2022-10-03 14:21:54 +08:00
Sidharth Vinod
3bae25fe6b split lint docs action 2022-10-03 14:15:28 +08:00
Sidharth Vinod
1d8d677d81 fix: File location 2022-10-03 14:03:44 +08:00
Sidharth Vinod
75db08a60c fix(docs): Test auto commit 2022-10-03 12:05:48 +08:00
Sidharth Vinod
d367e832be fix(docs): Test auto commit 2022-10-03 12:00:59 +08:00
Sidharth Vinod
8d9800c727 fix(docs): Test auto commit 2022-10-03 11:57:19 +08:00
Sidharth Vinod
058f1c2edf chore: Update docs path 2022-10-03 11:55:33 +08:00
Sidharth Vinod
9425b8adc2 Merge remote-tracking branch 'upstream/develop' into sidv/autoBuildDocs
* upstream/develop: (81 commits)
  style(docs): fix prettier issues (extra newline)
  Corrected theme variables reference table layout
  Fix typos in README.md
  build: lint-staged docs in packages/mermaid/src/…
  chore(docs): run `pnpm run docs:build`
  build(docs): fix `pnpm run docs:{build,verify}`
  docs: replace `yarn` with `pnpm` in dev guide
  build: re-enable `prepare` script for husky setup
  build: update pre-commit rules to use `pnpm`
  Arrow tip aligned to edge of box
  updated pnpm-lock file
  ci(e2e): Skip pnpm cache if skipping cypress run
  ci(e2e): remove `headless` arg from cypress run
  build(dev): Fix dev server not showing mermaid.js
  Fixed sample test
  Adding example diagram as a template for a new diagram
  Removed test folder
  Returning the borders to the e2e tests
  Fix for tests
  Updated version
  ...
2022-10-03 11:51:14 +08:00
Sidharth Vinod
21caa3eb72 chore: Auto build docs if only src/docs is changed 2022-10-03 11:50:42 +08:00
415 changed files with 2061 additions and 1746 deletions

View File

@@ -3,7 +3,7 @@ name: E2E
on: [push, pull_request]
permissions:
contents: read
contents: write
jobs:
build:
@@ -28,15 +28,28 @@ jobs:
cache: pnpm
node-version: ${{ matrix.node-version }}
# Experiment with this step if we cannot check-in the snapshots to the repo.
# - name: Cache snapshots
# id: cache-snapshot
# uses: actions/cache@v3
# with:
# # npm cache files are stored in `~/.npm` on Linux/macOS
# path: ./cypress/snapshots
# key: ${{ runner.os }}-build-${env.GITHUB_REF}
# restore-keys: |
# ${{ runner.os }}-build-develop
# Install NPM dependencies, cache them correctly
# and run all Cypress tests
- name: Cypress run
id: cypress
uses: cypress-io/github-action@v4
# If CYPRESS_RECORD_KEY is set, run in parallel on all containers
# Otherwise (e.g. if running from fork), we run on a single container only
if: ${{ ( env.CYPRESS_RECORD_KEY != '' ) || ( matrix.containers == 1 ) }}
with:
start: pnpm run dev
browser: chrome
wait-on: 'http://localhost:9000'
# Disable recording if we don't have an API key
# e.g. if this action was run from a fork
@@ -44,3 +57,18 @@ jobs:
parallel: ${{ secrets.CYPRESS_RECORD_KEY != '' }}
env:
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
- name: Upload Artifacts
uses: actions/upload-artifact@v3
if: ${{ failure() && steps.cypress.conclusion == 'failure' }}
with:
name: error-snapshots
path: cypress/snapshots/**/__diff_output__/*
- name: Commit changes
uses: EndBug/add-and-commit@v9
if: ${{ github.event_name == 'push' }}
with:
message: 'Update snapshots'
add: 'cypress/snapshots/*'
pull: '--rebase --autostash'

View File

@@ -7,9 +7,10 @@ on:
- opened
- synchronize
- ready_for_review
workflow_dispatch:
permissions:
contents: read
contents: write
jobs:
lint:
@@ -39,5 +40,19 @@ jobs:
run: pnpm run lint
- name: Verify Docs
id: verifyDocs
working-directory: ./packages/mermaid
continue-on-error: ${{ github.event_name == 'push' }}
run: pnpm run docs:verify
- name: Rebuild Docs
if: ${{ steps.verifyDocs.outcome == 'failure' && github.event_name == 'push' }}
working-directory: ./packages/mermaid
run: pnpm run docs:build
- name: Commit changes
uses: EndBug/add-and-commit@v9
if: ${{ steps.verifyDocs.outcome == 'failure' && github.event_name == 'push' }}
with:
message: 'Update docs'
add: 'docs/*'

2
.gitignore vendored
View File

@@ -26,7 +26,7 @@ Gemfile.lock
/.vs
cypress/screenshots/
cypress/snapshots/
cypress/snapshots-dev/
# eslint --cache file
.eslintcache

21
__mocks__/c4Renderer.js Normal file
View File

@@ -0,0 +1,21 @@
/**
* Mocked C4Context diagram renderer
*/
import { vi } from 'vitest';
export const drawPersonOrSystemArray = vi.fn();
export const drawBoundary = vi.fn();
export const setConf = vi.fn();
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
drawPersonOrSystemArray,
drawBoundary,
setConf,
draw,
};

View File

@@ -0,0 +1,16 @@
/**
* Mocked class diagram v2 renderer
*/
import { vi } from 'vitest';
export const setConf = vi.fn();
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
setConf,
draw,
};

View File

@@ -0,0 +1,13 @@
/**
* Mocked class diagram renderer
*/
import { vi } from 'vitest';
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
draw,
};

View File

@@ -1,79 +1,14 @@
// @ts-nocheck TODO: Fix TS
import { vi } from 'vitest';
const NewD3 = function () {
/**
*
*/
function returnThis() {
return this;
}
return {
append: function () {
return NewD3();
},
lower: returnThis,
attr: returnThis,
style: returnThis,
text: returnThis,
0: {
0: {
getBBox: function () {
return {
height: 10,
width: 20,
};
},
},
},
};
};
import { MockedD3 } from '../packages/mermaid/src/tests/MockedD3';
export const select = function () {
return new NewD3();
return new MockedD3();
};
export const selectAll = function () {
return new NewD3();
return new MockedD3();
};
export const curveBasis = 'basis';
export const curveLinear = 'linear';
export const curveCardinal = 'cardinal';
export const MockD3 = (name, parent) => {
const children = [];
const elem = {
get __children() {
return children;
},
get __name() {
return name;
},
get __parent() {
return parent;
},
node() {
return {
getBBox() {
return {
x: 5,
y: 10,
height: 15,
width: 20,
};
},
};
},
};
elem.append = (name) => {
const mockElem = MockD3(name, elem);
children.push(mockElem);
return mockElem;
};
elem.lower = vi.fn(() => elem);
elem.attr = vi.fn(() => elem);
elem.text = vi.fn(() => elem);
elem.style = vi.fn(() => elem);
return elem;
};

16
__mocks__/erRenderer.js Normal file
View File

@@ -0,0 +1,16 @@
/**
* Mocked er diagram renderer
*/
import { vi } from 'vitest';
export const setConf = vi.fn();
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
setConf,
draw,
};

View File

@@ -0,0 +1,24 @@
/**
* Mocked flow (flowchart) diagram v2 renderer
*/
import { vi } from 'vitest';
export const setConf = vi.fn();
export const addVertices = vi.fn();
export const addEdges = vi.fn();
export const getClasses = vi.fn().mockImplementation(() => {
return {};
});
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
setConf,
addVertices,
addEdges,
getClasses,
draw,
};

View File

@@ -0,0 +1,16 @@
/**
* Mocked gantt diagram renderer
*/
import { vi } from 'vitest';
export const setConf = vi.fn();
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
setConf,
draw,
};

View File

@@ -0,0 +1,13 @@
/**
* Mocked git (graph) diagram renderer
*/
import { vi } from 'vitest';
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
draw,
};

View File

@@ -0,0 +1,15 @@
/**
* Mocked pie (picChart) diagram renderer
*/
import { vi } from 'vitest';
export const setConf = vi.fn();
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
setConf,
draw,
};

13
__mocks__/pieRenderer.js Normal file
View File

@@ -0,0 +1,13 @@
/**
* Mocked pie (picChart) diagram renderer
*/
import { vi } from 'vitest';
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
draw,
};

View File

@@ -0,0 +1,13 @@
/**
* Mocked requirement diagram renderer
*/
import { vi } from 'vitest';
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
draw,
};

View File

@@ -0,0 +1,23 @@
/**
* Mocked sequence diagram renderer
*/
import { vi } from 'vitest';
export const bounds = vi.fn();
export const drawActors = vi.fn();
export const drawActorsPopup = vi.fn();
export const setConf = vi.fn();
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
bounds,
drawActors,
drawActorsPopup,
setConf,
draw,
};

View File

@@ -0,0 +1,22 @@
/**
* Mocked state diagram v2 renderer
*/
import { vi } from 'vitest';
export const setConf = vi.fn();
export const getClasses = vi.fn().mockImplementation(() => {
return {};
});
export const stateDomId = vi.fn().mockImplementation(() => {
return 'mocked-stateDiagram-stateDomId';
});
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
setConf,
getClasses,
draw,
};

View File

@@ -52,6 +52,7 @@
"laganeckas",
"lintstagedrc",
"lucida",
"mansalva",
"matthieu",
"mdbook",
"mermerd",
@@ -64,14 +65,19 @@
"phpbb",
"plantuml",
"playfair",
"pnpm",
"podlite",
"ranksep",
"rect",
"rects",
"redmine",
"roledescription",
"sandboxed",
"setupgraphviewbox",
"shiki",
"sidharth",
"sphinxcontrib",
"ssim",
"statediagram",
"stylis",
"substate",

View File

@@ -5,9 +5,17 @@ const { addMatchImageSnapshotPlugin } = require('cypress-image-snapshot/plugin')
module.exports = defineConfig({
projectId: 'n2sma2',
viewportWidth: 1440,
viewportHeight: 1024,
e2e: {
specPattern: 'cypress/integration/**/*.{js,jsx,ts,tsx}',
setupNodeEvents(on, config) {
on('before:browser:launch', (browser = {}, launchOptions) => {
if (browser.name === 'chrome' && browser.isHeadless) {
launchOptions.args.push('--window-size=1440,1024', '--force-device-scale-factor=1');
}
return launchOptions;
});
addMatchImageSnapshotPlugin(on, config);
// copy any needed variables from process.env to config.env
config.env.useAppli = process.env.USE_APPLI ? true : false;

View File

@@ -136,6 +136,5 @@ export const urlSnapshotTest = (url, _options, api = false, validation) => {
export const renderGraph = (graphStr, options, api) => {
const url = mermaidUrl(graphStr, options, api);
cy.visit(url);
};

View File

@@ -117,7 +117,6 @@ describe('Configuration', () => {
});
it('should not taint the initial configuration when using multiple directives', () => {
const url = 'http://localhost:9000/regression/issue-1874.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('svg');

View File

@@ -1,14 +1,12 @@
describe('Rerendering', () => {
it('should be able to render after an error has occurred', () => {
const url = 'http://localhost:9000/render-after-error.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('#graphDiv').should('exist');
});
it('should be able to render and rerender a graph via API', () => {
const url = 'http://localhost:9000/rerender.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('#graph [id^=flowchart-A]').should('have.text', 'XMas');

View File

@@ -225,7 +225,10 @@ describe('Gantt diagram', () => {
const style = svg.attr('style');
expect(style).to.match(/^max-width: [\d.]+px;$/);
const maxWidthValue = parseFloat(style.match(/[\d.]+/g).join(''));
expect(maxWidthValue).to.be.within(984 * 0.95, 984 * 1.05);
expect(maxWidthValue).to.be.within(
Cypress.config().viewportWidth * 0.95,
Cypress.config().viewportWidth * 1.05
);
});
});
@@ -269,7 +272,10 @@ describe('Gantt diagram', () => {
const width = parseFloat(svg.attr('width'));
// use within because the absolute value can be slightly different depending on the environment ±5%
// expect(height).to.be.within(484 * 0.95, 484 * 1.05);
expect(width).to.be.within(984 * 0.95, 984 * 1.05);
expect(width).to.be.within(
Cypress.config().viewportWidth * 0.95,
Cypress.config().viewportWidth * 1.05
);
expect(svg).to.not.have.attr('style');
});
});
@@ -310,38 +316,6 @@ describe('Gantt diagram', () => {
);
});
it('should render accessibility tags', function () {
const expectedTitle = 'Gantt Diagram';
const expectedAccDescription = 'Tasks for Q4';
renderGraph(
`
gantt
accTitle: ${expectedTitle}
accDescr: ${expectedAccDescription}
dateFormat YYYY-MM-DD
section Section
A task :a1, 2014-01-01, 30d
`,
{}
);
cy.get('svg').should((svg) => {
const el = svg.get(0);
const children = [...el.children];
const titleEl = children.find(function (node) {
return node.tagName === 'title';
});
const descriptionEl = children.find(function (node) {
return node.tagName === 'desc';
});
expect(titleEl).to.exist;
expect(titleEl.textContent).to.equal(expectedTitle);
expect(descriptionEl).to.exist;
expect(descriptionEl.textContent).to.equal(expectedAccDescription);
});
});
it('should render a gantt diagram with tick is 15 minutes', () => {
imgSnapshotTest(
`

View File

@@ -54,7 +54,10 @@ describe('Pie Chart', () => {
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);
expect(maxWidthValue).to.be.within(
Cypress.config().viewportWidth * 0.95,
Cypress.config().viewportWidth * 1.05
);
});
});
it('should render a pie diagram when useMaxWidth is false', () => {
@@ -68,10 +71,11 @@ describe('Pie Chart', () => {
{ 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(width).to.be.within(
Cypress.config().viewportWidth * 0.95,
Cypress.config().viewportWidth * 1.05
);
expect(svg).to.not.have.attr('style');
});
});

View File

@@ -46,69 +46,4 @@ describe('Requirement diagram', () => {
);
cy.get('svg');
});
it('should render accessibility tags', function () {
const expectedTitle = 'Gantt Diagram';
const expectedAccDescription = 'Tasks for Q4';
renderGraph(
`
requirementDiagram
accTitle: ${expectedTitle}
accDescr: ${expectedAccDescription}
requirement test_req {
id: 1
text: the test text.
risk: high
verifymethod: test
}
functionalRequirement test_req2 {
id: 1.1
text: the second test text.
risk: low
verifymethod: inspection
}
performanceRequirement test_req3 {
id: 1.2
text: the third test text.
risk: medium
verifymethod: demonstration
}
element test_entity {
type: simulation
}
element test_entity2 {
type: word doc
docRef: reqs/test_entity
}
test_entity - satisfies -> test_req2
test_req - traces -> test_req2
test_req - contains -> test_req3
test_req <- copies - test_entity2
`,
{}
);
cy.get('svg').should((svg) => {
const el = svg.get(0);
const children = [...el.children];
const titleEl = children.find(function (node) {
return node.tagName === 'title';
});
const descriptionEl = children.find(function (node) {
return node.tagName === 'desc';
});
expect(titleEl).to.exist;
expect(titleEl.textContent).to.equal(expectedTitle);
expect(descriptionEl).to.exist;
expect(descriptionEl.textContent).to.equal(expectedAccDescription);
});
});
});

View File

@@ -328,7 +328,7 @@ describe('State diagram', () => {
}
);
});
it('v2 it should be possibel to use a choice', () => {
it('v2 it should be possible to use a choice', () => {
imgSnapshotTest(
`
stateDiagram-v2

View File

@@ -1,32 +1,8 @@
<html>
<head>
<meta charset="utf-8" />
<!-- <meta charset="iso-8859-15"/> -->
<script src="./viewer.js" type="module"></script>
<!-- <link href="https://fonts.googleapis.com/css?family=Mansalva&display=swap" rel="stylesheet" /> -->
<link
href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap"
rel="stylesheet"
/>
<style>
body {
/* font-family: 'Mansalva', cursive;*/
/* font-family: 'Mansalva', cursive; */
/* font-family: 'arial'; */
/* font-family: "trebuchet ms", verdana, arial; */
}
/* div {
font-family: 'arial';
} */
/* .mermaid-main-font {
font-family: "trebuchet ms", verdana, arial;
font-family: var(--mermaid-font-family);
} */
/* :root {
--mermaid-font-family: '"trebuchet ms", verdana, arial';
--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive;
--mermaid-font-family: '"Lucida Console", Monaco, monospace';
} */
svg {
border: 2px solid darkred;
}
@@ -36,21 +12,5 @@
}
</style>
</head>
<body>
<!-- <script src="./mermaid.js"></script> -->
<script>
// Notice startOnLoad=false
// This prevents default handling in mermaid from render before the e2e logic is applied
// mermaid.initialize({
// startOnLoad: false,
// useMaxWidth: true,
// // "themeCSS": ":root { --mermaid-font-family: \"trebuchet ms\", verdana, arial;}",
// // fontFamily: '\"trebuchet ms\", verdana, arial;'
// // fontFamily: '"Comic Sans MS", "Comic Sans", cursive'
// // fontFamily: '"Mansalva", cursive',
// // fontFamily: '"Noto Sans SC", sans-serif'
// fontFamily: '"Noto Sans SC", sans-serif'
// });
</script>
</body>
<body></body>
</html>

View File

@@ -57,22 +57,28 @@
<div>Security check</div>
<pre id="diagram" class="mermaid">
flowchart LR
subgraph external
subgraph internal
inside
end
%% Actors
A
subgraph Sub
B --> C
end
outside --> inside
%% Accusations
A --L --> Sub
%% Offense
B --> A
</pre>
<pre id="diagram" class="mermaid">
flowchart LR
subgraph parent
subgraph childB
grandchild
end
end
foo --> childA </pre
>
stateDiagram-v2
[*] --> S1
S1 --> S2: long line using<br/>should work
S1 --> S3: long line using <br>should work
S1 --> S4: long line using \\nshould work
</pre>
<pre id="diagram" class="mermaid2">
gantt
title Style today marker (vertical line should be 5px wide and half-transparent blue)

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Some files were not shown because too many files have changed in this diff Show More