diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..2b09726b9 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,13 @@ +version: 2 + +updates: +- package-ecosystem: npm + directory: / + target-branch: develop + schedule: + interval: daily +- package-ecosystem: github-actions + directory: / + target-branch: develop + schedule: + interval: daily diff --git a/.github/pr-labeler.yml b/.github/pr-labeler.yml index 077cc568b..5ed526bc5 100644 --- a/.github/pr-labeler.yml +++ b/.github/pr-labeler.yml @@ -1,3 +1,4 @@ 'Type: Bug / Error': 'bug/*' 'Type: Enhancement': 'feature/*' 'Type: Other': 'other/*' +'Type: Dependabot': 'dependabot/*' diff --git a/docs/development.md b/docs/development.md index adc51cccf..22b110e28 100644 --- a/docs/development.md +++ b/docs/development.md @@ -74,7 +74,7 @@ To start working with the e2e tests: The rendering tests are very straightforward to create. There is a function `imgSnapshotTest`, which takes a diagram in text form and the mermaid options, and it renders that diagram in Cypress. -When running in CI it will take a snapshot of the rendered diagram and compare it with the snapshot from last build and flag for review it if it differs. +When running in CI it will take a snapshot of the rendered diagram and compare it with the snapshot from last build and flag it for review if it differs. This is what a rendering test looks like: diff --git a/src/mermaid.js b/src/mermaid.js index b872df2fc..d6e67f699 100644 --- a/src/mermaid.js +++ b/src/mermaid.js @@ -78,7 +78,7 @@ const init = function() { mermaidAPI.updateSiteConfig({ gantt: mermaid.ganttConfig }); } - const idGeneratior = utils.initIdGeneratior(conf.deterministicIds, conf.deterministicIDSeed); + const idGeneratior = new utils.initIdGeneratior(conf.deterministicIds, conf.deterministicIDSeed); let txt; diff --git a/src/utils.js b/src/utils.js index 97b6d125f..f1eac0bee 100644 --- a/src/utils.js +++ b/src/utils.js @@ -793,17 +793,19 @@ export const configureSvgSize = function(svgElem, height, width, useMaxWidth) { d3Attrs(svgElem, attrs); }; -export const initIdGeneratior = function(deterministic, seed) { - if (!deterministic) return { next: () => Date.now() }; - class iterator { - constructor() { - return (this.count = seed ? seed.length : 0); - } - next() { - return this.count++; - } +export const initIdGeneratior = class iterator { + constructor(deterministic, seed) { + this.deterministic = deterministic; + this.seed = seed; + + this.count = seed ? seed.length : 0; + } + + next() { + if (!this.deterministic) return Date.now(); + + return this.count++; } - return new iterator(); }; export default { diff --git a/src/utils.spec.js b/src/utils.spec.js index 66b13a276..c490099dd 100644 --- a/src/utils.spec.js +++ b/src/utils.spec.js @@ -256,7 +256,7 @@ describe('when calculating SVG size', function() { describe('when initializing the id generator', function () { it('should return a random number generator based on Date', function (done) { - const idGenerator = utils.initIdGeneratior(false) + const idGenerator = new utils.initIdGeneratior(false) expect(typeof idGenerator.next).toEqual('function') const lastId = idGenerator.next() setTimeout(() => { @@ -266,7 +266,7 @@ describe('when initializing the id generator', function () { }); it('should return a non random number generator', function () { - const idGenerator = utils.initIdGeneratior(true) + const idGenerator = new utils.initIdGeneratior(true) expect(typeof idGenerator.next).toEqual('function') const start = 0 const lastId = idGenerator.next() @@ -275,7 +275,7 @@ describe('when initializing the id generator', function () { }); it('should return a non random number generator based on seed', function () { - const idGenerator = utils.initIdGeneratior(true, 'thisIsASeed') + const idGenerator = new utils.initIdGeneratior(true, 'thisIsASeed') expect(typeof idGenerator.next).toEqual('function') const start = 11 const lastId = idGenerator.next()