From 3896b86b5d3a8cf723c311c1c962a13a8d7469dd Mon Sep 17 00:00:00 2001 From: Hufe921 Date: Wed, 16 Mar 2022 19:20:32 +0800 Subject: [PATCH] feat:add image test case --- cypress/fixtures/test.png | Bin 0 -> 9311 bytes cypress/integration/menus/image.spec.ts | 28 ++++++++++++++++++++++++ cypress/support/commands.ts | 2 ++ cypress/tsconfig.json | 2 +- package.json | 1 + yarn.lock | 5 +++++ 6 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 cypress/fixtures/test.png create mode 100644 cypress/integration/menus/image.spec.ts diff --git a/cypress/fixtures/test.png b/cypress/fixtures/test.png new file mode 100644 index 0000000000000000000000000000000000000000..d05e47097ba39b5b127b1edb8e85373d08e5267d GIT binary patch literal 9311 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 OfV#5Q^SWo2@BbGdB5|Am literal 0 HcmV?d00001 diff --git a/cypress/integration/menus/image.spec.ts b/cypress/integration/menus/image.spec.ts new file mode 100644 index 0000000..f335d85 --- /dev/null +++ b/cypress/integration/menus/image.spec.ts @@ -0,0 +1,28 @@ +import Editor from '../../../src/editor' + +describe('菜单-图片', () => { + + beforeEach(() => { + cy.visit('http://localhost:3000/canvas-editor/') + + cy.get('canvas').first().as('canvas').should('have.length', 1) + }) + + it('图片', () => { + cy.getEditor().then((editor: Editor) => { + editor.listener.saved = function (payload) { + const data = payload.data + expect(data[0].type).to.eq('image') + } + + editor.command.executeSelectAll() + + editor.command.executeBackspace() + + cy.get('#image').attachFile('test.png') + + cy.get('@canvas').type('{ctrl}s') + }) + }) + +}) diff --git a/cypress/support/commands.ts b/cypress/support/commands.ts index f3ce3ab..7750cea 100644 --- a/cypress/support/commands.ts +++ b/cypress/support/commands.ts @@ -1,3 +1,5 @@ +import 'cypress-file-upload' + Cypress.Commands.add('getEditor', () => { return cy.window().its('editor') }) \ No newline at end of file diff --git a/cypress/tsconfig.json b/cypress/tsconfig.json index 7416749..3ec51fd 100644 --- a/cypress/tsconfig.json +++ b/cypress/tsconfig.json @@ -2,7 +2,7 @@ "compilerOptions": { "target": "es5", "lib": ["es2015", "dom", "esnext"], - "types": ["cypress"], + "types": ["cypress", "cypress-file-upload"], "isolatedModules": false, "allowJs": true, "noEmit": true, diff --git a/package.json b/package.json index 7867601..3a71a2c 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "@types/node": "^16.11.12", "@types/prismjs": "^1.26.0", "cypress": "^9.5.1", + "cypress-file-upload": "^5.0.8", "typescript": "^4.3.2", "vite": "^2.4.2" }, diff --git a/yarn.lock b/yarn.lock index f79deb9..cddcca7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -313,6 +313,11 @@ cross-spawn@^7.0.0: shebang-command "^2.0.0" which "^2.0.1" +cypress-file-upload@^5.0.8: + version "5.0.8" + resolved "https://registry.yarnpkg.com/cypress-file-upload/-/cypress-file-upload-5.0.8.tgz#d8824cbeaab798e44be8009769f9a6c9daa1b4a1" + integrity sha512-+8VzNabRk3zG6x8f8BWArF/xA/W0VK4IZNx3MV0jFWrJS/qKn8eHfa5nU73P9fOQAgwHFJx7zjg4lwOnljMO8g== + cypress@^9.5.1: version "9.5.1" resolved "https://registry.yarnpkg.com/cypress/-/cypress-9.5.1.tgz#51162f3688cedf5ffce311b914ef49a7c1ece076"