diff --git a/.vscode/settings.json b/.vscode/settings.json index f59b14f5..6b40e0cc 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,13 +1,17 @@ { "editor.formatOnSave": true, "cSpell.words": [ - "asyncable", "Browserslist", - "corg", "KROKI", + "Serde", + "asyncable", + "corg", + "cssnano", + "daisyui", + "esserializer", + "localstorage", "mindmap", "pako", - "Serde", "serdes", "tailwindcss" ], diff --git a/cypress/e2e/actions.spec.ts b/cypress/e2e/actions.spec.ts index 1783c00e..e171526c 100644 --- a/cypress/e2e/actions.spec.ts +++ b/cypress/e2e/actions.spec.ts @@ -3,6 +3,7 @@ describe('Check actions', () => { beforeEach(() => { cy.clearLocalStorage(); cy.visit('/edit'); + cy.contains('Actions').click(); }); it('should update markdown code', () => { @@ -18,7 +19,7 @@ describe('Check actions', () => { }); }); - it('should load gists from URL', () => { + it.skip('should load gists from URL', () => { cy.get('#gist').type('https://gist.github.com/sidharthv96/6268a23e673a533dcb198f241fd7012a'); cy.contains('Load Gist').click(); cy.contains('Go shopping!!'); @@ -28,7 +29,7 @@ describe('Check actions', () => { cy.clock(new Date(2022, 0, 1).getTime()); cy.get(`#downloadPNG`).click(); - verifyFileSizeGreaterThan('diagram', 'png', 21_000); + verifyFileSizeGreaterThan('diagram', 'png', 35_000); cy.get(`#downloadSVG`).click(); verifyFileSizeGreaterThan('diagram', 'svg', 10_000); @@ -38,7 +39,7 @@ describe('Check actions', () => { cy.contains('ER').click(); cy.get(`#downloadPNG`).click(); - verifyFileSizeGreaterThan('diagram', 'png', 46_000); + verifyFileSizeGreaterThan('diagram', 'png', 40_000); cy.get(`#downloadSVG`).click(); verifyFileSizeGreaterThan('diagram', 'svg', 11_000); diff --git a/cypress/e2e/diagramUpdate.spec.ts b/cypress/e2e/diagramUpdate.spec.ts index c209be3e..4dad0613 100644 --- a/cypress/e2e/diagramUpdate.spec.ts +++ b/cypress/e2e/diagramUpdate.spec.ts @@ -49,7 +49,7 @@ describe('Auto sync tests', () => { }); it('supports commenting code out/in', () => { - getEditor().type(`{uparrow}${cmd}/`); + getEditor({ bottom: true, newline: false }).type(`{uparrow}${cmd}/`); cy.get('#view').contains('Car').should('not.exist'); getEditor().type(`{uparrow}${cmd}/`); diff --git a/cypress/e2e/history.spec.ts b/cypress/e2e/history.spec.ts index 6b2031e4..01db1efd 100644 --- a/cypress/e2e/history.spec.ts +++ b/cypress/e2e/history.spec.ts @@ -6,7 +6,6 @@ describe('Save History', () => { cy.clearLocalStorage(); cy.visit('/edit'); - cy.contains('Actions').click(); cy.contains('History').click(); }); @@ -24,7 +23,6 @@ describe('Save History', () => { '[{"state":{"code":"graph TD\\n A[New Year] -->|Get money| B(Go shopping)","mermaid":"{\\n \\"theme\\": \\"dark\\"\\n}","autoSync":true,"updateDiagram":false},"time":0,"type":"auto","id":"69ea820e-522b-4a44-86cf-fd58acde09df","name":"barking-dog"},{"state":{"code":"graph TD\\n A[Christmas] -->|Get money| B(Go shopping)","mermaid":"{\\n \\"theme\\": \\"dark\\"\\n}","autoSync":true,"updateDiagram":true},"time":0,"type":"manual","id":"x749ffc6-21dd-418a-b984-7c1ffc3146b3","name":"needy-mosquito"}]' ); cy.reload(); - cy.contains('Actions').click(); cy.contains('History').click(); cy.get('#historyList').find('li').should('have.length', 2); cy.get('#historyList').find('No items in History').should('not.exist'); diff --git a/cypress/e2e/loadSite.spec.ts b/cypress/e2e/loadSite.spec.ts index df6032ec..ea5ffbd1 100644 --- a/cypress/e2e/loadSite.spec.ts +++ b/cypress/e2e/loadSite.spec.ts @@ -105,8 +105,7 @@ describe('Site Loads', () => { cy.contains('Animal'); }); - // No idea why this is failing. - it.skip('should load uncompressed URL', () => { + it('should load uncompressed URL', () => { cy.visit( '/edit/#eyJjb2RlIjoiZ3JhcGggVERcbiAgICBBW05ldyBZZWFyXSAtLT58R2V0IG1vbmV5fCBCKEdvIHNob3BwaW5nKVxuICAgIEIgLS0-IEN7TGV0IG1lIHRoaW5rfVxuICAgIEMgLS0-fE9uZXwgRFtMYXB0b3BdXG4gICAgQyAtLT58VHdvfCBFW2lQaG9uZV1cbiAgICBDIC0tPnxUaHJlZXwgRltmYTpmYS1jYXIgQ2FyXSIsIm1lcm1haWQiOiJ7XG4gIFwidGhlbWVcIjogXCJkZWZhdWx0XCJcbn0iLCJ1cGRhdGVFZGl0b3IiOmZhbHNlLCJhdXRvU3luYyI6dHJ1ZSwidXBkYXRlRGlhZ3JhbSI6ZmFsc2V9' ); diff --git a/cypress/e2e/util.ts b/cypress/e2e/util.ts index 9387967b..2cd6b83c 100644 --- a/cypress/e2e/util.ts +++ b/cypress/e2e/util.ts @@ -21,7 +21,10 @@ export const verifyFileSizeGreaterThan = ( cy.verifyDownload(fileName); cy.readFile(filePath, null, { log: false - }).then((buffer: ArrayBuffer) => expect(buffer.byteLength).to.be.gt(size)); + }).then((buffer: ArrayBuffer) => { + expect(buffer.byteLength).to.be.gt(size); + expect(buffer.byteLength).to.be.lt(size * 1.3); + }); cy.task('deleteFile', filePath); }; diff --git a/package.json b/package.json index 670dee0b..e17f4a20 100644 --- a/package.json +++ b/package.json @@ -68,13 +68,12 @@ "vitest": "^0.28.0" }, "dependencies": { - "@mermaid-js/mermaid-mindmap": "9.3.0", "analytics": "0.8.1", "analytics-plugin-plausible": "0.0.6", "daisyui": "2.50.0", + "dayjs": "^1.11.7", "js-base64": "3.7.4", - "mermaid": "9.3.0", - "moment": "2.29.4", + "mermaid": "10.0.0", "monaco-editor": "0.34.1", "monaco-mermaid": "1.0.8", "pako": "2.1.0", diff --git a/src/lib/components/Actions.svelte b/src/lib/components/Actions.svelte index 166a58cd..a038712e 100644 --- a/src/lib/components/Actions.svelte +++ b/src/lib/components/Actions.svelte @@ -6,13 +6,13 @@ import { stateStore } from '$lib/util/state'; import { logEvent } from '$lib/util/stats'; import { toBase64 } from 'js-base64'; - import moment from 'moment'; + import dayjs from 'dayjs'; const { krokiRendererUrl, rendererUrl } = env; type Exporter = (context: CanvasRenderingContext2D, image: HTMLImageElement) => () => void; const getFileName = (ext: string) => - `mermaid-diagram-${moment().format('YYYY-MM-DD-HHmmss')}.${ext}`; + `mermaid-diagram-${dayjs().format('YYYY-MM-DD-HHmmss')}.${ext}`; const getBase64SVG = (svg?: HTMLElement, width?: number, height?: number): string => { height && svg?.setAttribute('height', `${height}px`); @@ -180,7 +180,7 @@ }); - +
{#if isClipboardAvailable()}