From ecd1d3483ea8d52f9fcdb158d4739d5ffe29915c Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Mon, 24 May 2021 19:40:23 +0530 Subject: [PATCH] Fix tests --- .github/workflows/cypress.yml | 17 ++++++++++++ cypress/integration/diagramUpdate.spec.js | 3 +- cypress/integration/loadSite.spec.js | 4 +-- cypress/snapshots.js | 34 ++++------------------- cypress/support/commands.js | 1 + cypress/tsconfig.json | 2 +- package.json | 1 + snapshots.js | 1 - yarn.lock | 5 ++++ 9 files changed, 35 insertions(+), 33 deletions(-) create mode 100644 .github/workflows/cypress.yml delete mode 100644 snapshots.js diff --git a/.github/workflows/cypress.yml b/.github/workflows/cypress.yml new file mode 100644 index 00000000..c1846506 --- /dev/null +++ b/.github/workflows/cypress.yml @@ -0,0 +1,17 @@ +name: Cypress Tests + +on: [push] + +jobs: + cypress-run: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + # Install NPM dependencies, cache them correctly + # and run all Cypress tests + - name: Cypress run + uses: cypress-io/github-action@v2 + with: + build: yarn build + start: yarn preview diff --git a/cypress/integration/diagramUpdate.spec.js b/cypress/integration/diagramUpdate.spec.js index 7e771ec9..0edcf569 100644 --- a/cypress/integration/diagramUpdate.spec.js +++ b/cypress/integration/diagramUpdate.spec.js @@ -8,6 +8,7 @@ describe('Auto sync tests', () => { cy.get('#view').should('not.have.class', 'outOfSync'); cy.get('#editor').type(' C --> Test'); cy.get('#view').should('have.class', 'outOfSync'); + cy.getLocalStorage('codeStore').snapshot(); }); it('should show/hide sync button with auto sync', () => { @@ -27,6 +28,6 @@ describe('Auto sync tests', () => { cy.get('#autoSync').check(); cy.get('#editor').type('ing'); cy.get('#view').should('not.have.class', 'outOfSync'); - cy.wrap(localStorage).snapshot(); + cy.getLocalStorage('codeStore').snapshot(); }); }); diff --git a/cypress/integration/loadSite.spec.js b/cypress/integration/loadSite.spec.js index 64cbd7d0..4fba12c3 100644 --- a/cypress/integration/loadSite.spec.js +++ b/cypress/integration/loadSite.spec.js @@ -6,7 +6,7 @@ describe('Site Loads', () => { cy.visit('/'); cy.url().should('include', '/edit'); cy.contains('History').click(); - cy.wrap(localStorage).snapshot(); + cy.getLocalStorage('codeStore').snapshot(); }); it('Check Redirect from old URL', () => { @@ -19,6 +19,6 @@ describe('Site Loads', () => { ); cy.contains('History').click(); - cy.wrap(localStorage).snapshot(); + cy.getLocalStorage('codeStore').snapshot(); }); }); diff --git a/cypress/snapshots.js b/cypress/snapshots.js index feedba64..f94d5e4a 100644 --- a/cypress/snapshots.js +++ b/cypress/snapshots.js @@ -1,41 +1,19 @@ module.exports = { "Site Loads": { "Check Home page load": { - "1": { - "manualHistoryStore": "[]", - "autoHistoryMode": "false", - "codeStore": "{\"code\":\"graph TD\\n A[Christmas] -->|Get money| B(Go shopping)\\n B --> C{Let me think}\\n C -->|One| D[Laptop]\\n C -->|Two| E[iPhone]\\n C -->|Three| F[fa:fa-car Car]\\n \",\"mermaid\":\"{\\n \\\"theme\\\": \\\"default\\\"\\n}\",\"updateEditor\":false,\"autoSync\":true,\"updateDiagram\":false}", - "autoHistoryStore": "[]" - } + "1": "{\"code\":\"graph TD\\n A[Christmas] -->|Get money| B(Go shopping)\\n B --> C{Let me think}\\n C -->|One| D[Laptop]\\n C -->|Two| E[iPhone]\\n C -->|Three| F[fa:fa-car Car]\\n \",\"mermaid\":\"{\\n \\\"theme\\\": \\\"default\\\"\\n}\",\"updateEditor\":true,\"autoSync\":true,\"updateDiagram\":true}" }, "Check Redirect from old URL": { - "1": { - "manualHistoryStore": "[]", - "autoHistoryMode": "false", - "codeStore": "{\"code\":\"graph TD\\n A[Christmas] -->|Get money| B(Go shopping)\\n B --> C{Let me think}\\n C -->|One| D[Laptop]\\n C -->|Two| E[iPhone]\\n C -->|Three| F[fa:fa-car Car]\",\"mermaid\":\"{\\n \\\"theme\\\": \\\"default\\\"\\n}\",\"updateEditor\":false,\"autoSync\":true,\"updateDiagram\":false}", - "autoHistoryStore": "[]" - } + "1": "{\"code\":\"graph TD\\n A[Christmas] -->|Get money| B(Go shopping)\\n B --> C{Let me think}\\n C -->|One| D[Laptop]\\n C -->|Two| E[iPhone]\\n C -->|Three| F[fa:fa-car Car]\",\"mermaid\":\"{\\n \\\"theme\\\": \\\"default\\\"\\n}\",\"updateEditor\":false,\"autoSync\":true,\"updateDiagram\":false}" } }, "__version": "7.3.0", - "Diagram updates when code is edited": { - "Editor Test": { - "1": { - "manualHistoryStore": "[]", - "autoHistoryMode": "false", - "codeStore": "{\"code\":\"graph TD\\n A[Christmas] -->|Get money| B(Go shopping)\\n B --> C{Let me think}\\n C -->|One| D[Laptop]\\n C -->|Two| E[iPhone]\\n C -->|Three| F[fa:fa-car Car]\\n C --> Test\",\"mermaid\":\"{\\n \\\"theme\\\": \\\"default\\\"\\n}\",\"updateEditor\":false,\"autoSync\":true,\"updateDiagram\":false}", - "autoHistoryStore": "[]" - } - } - }, "Auto sync tests": { + "should dim diagram when code is edited": { + "1": "{\"code\":\"graph TD\\n A[Christmas] -->|Get money| B(Go shopping)\\n B --> C{Let me think}\\n C -->|One| D[Laptop]\\n C -->|Two| E[iPhone]\\n C -->|Three| F[fa:fa-car Car]\\n C --> Test\",\"mermaid\":\"{\\n \\\"theme\\\": \\\"default\\\"\\n}\",\"updateEditor\":false,\"autoSync\":false,\"updateDiagram\":false}" + }, "should not dim diagram when code is in sync": { - "1": { - "manualHistoryStore": "[]", - "autoHistoryMode": "false", - "codeStore": "{\"code\":\"graph TD\\n A[Christmas] -->|Get money| B(Go shopping)\\n B --> C{Let me think}\\n C -->|One| D[Laptop]\\n C -->|Two| E[iPhone]\\n C -->|Three| F[fa:fa-car Car]\\n C --> Testing\",\"mermaid\":\"{\\n \\\"theme\\\": \\\"default\\\"\\n}\",\"updateEditor\":false,\"autoSync\":true,\"updateDiagram\":false}", - "autoHistoryStore": "[]" - } + "1": "{\"code\":\"graph TD\\n A[Christmas] -->|Get money| B(Go shopping)\\n B --> C{Let me think}\\n C -->|One| D[Laptop]\\n C -->|Two| E[iPhone]\\n C -->|Three| F[fa:fa-car Car]\\n C --> Testing\",\"mermaid\":\"{\\n \\\"theme\\\": \\\"default\\\"\\n}\",\"updateEditor\":false,\"autoSync\":true,\"updateDiagram\":false}" } } } diff --git a/cypress/support/commands.js b/cypress/support/commands.js index c6f3c856..fe152463 100644 --- a/cypress/support/commands.js +++ b/cypress/support/commands.js @@ -25,3 +25,4 @@ // Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) import * as snapshot from '@cypress/snapshot'; snapshot.register(); +import 'cypress-localstorage-commands'; diff --git a/cypress/tsconfig.json b/cypress/tsconfig.json index ded59441..3398fd57 100644 --- a/cypress/tsconfig.json +++ b/cypress/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { "allowJs": true, - "types": ["cypress"] + "types": ["cypress", "cypress-localstorage-commands"] }, "include": ["**/*.*"] } diff --git a/package.json b/package.json index aa6cc42f..bb8bcfd7 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "chai": "^4.3.4", "cssnano": "^5.0.1", "cypress": "^7.3.0", + "cypress-localstorage-commands": "^1.4.4", "eslint": "^7.27.0", "eslint-config-prettier": "^8.1.0", "eslint-plugin-cypress": "^2.11.3", diff --git a/snapshots.js b/snapshots.js deleted file mode 100644 index 0967ef42..00000000 --- a/snapshots.js +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/yarn.lock b/yarn.lock index 8160c57b..9623d9ba 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1131,6 +1131,11 @@ csso@^4.2.0: dependencies: css-tree "^1.1.2" +cypress-localstorage-commands@^1.4.4: + version "1.4.4" + resolved "https://registry.yarnpkg.com/cypress-localstorage-commands/-/cypress-localstorage-commands-1.4.4.tgz#96ebce71b78895bd34a96c6d424b5de18a257b82" + integrity sha512-j502dbaQxTkz8iXYPClpYn2AIFyMZvvODNNHVZVoKBSkKOEuWAx3/RT4RvH0naV4/T05oUw2O9Cm5VxeZbyxiw== + cypress@^7.3.0: version "7.3.0" resolved "https://registry.yarnpkg.com/cypress/-/cypress-7.3.0.tgz#17345b8d18681c120f033e7d8fd0f0271e9d0d51"