From c2570d6adc83288e9091468aff8760ea8ac1569e Mon Sep 17 00:00:00 2001 From: Hans Pagel Date: Thu, 10 Sep 2020 12:11:42 +0200 Subject: [PATCH 1/3] improve the hardbreak demo and add tests --- .../demos/Extensions/HardBreak/index.spec.js | 25 +++++++++++++++++++ docs/src/demos/Extensions/HardBreak/index.vue | 4 +++ .../src/docPages/api/extensions/hard-break.md | 2 +- docs/src/links.yaml | 1 - 4 files changed, 30 insertions(+), 2 deletions(-) diff --git a/docs/src/demos/Extensions/HardBreak/index.spec.js b/docs/src/demos/Extensions/HardBreak/index.spec.js index 73c6f908..6e6aba7a 100644 --- a/docs/src/demos/Extensions/HardBreak/index.spec.js +++ b/docs/src/demos/Extensions/HardBreak/index.spec.js @@ -1,5 +1,30 @@ context('/api/extensions/hard-break', () => { beforeEach(() => { cy.visit('/api/extensions/hard-break') + + cy.get('.ProseMirror').window().then(window => { + const { editor } = window + editor.setContent('

Example Text

') + }) + }) + + describe('hard-break', () => { + it('the button should add a line break', () => { + cy.get('.ProseMirror br').should('not.exist') + cy.get('.demo__preview button:first').click({ force: true }) + cy.get('.ProseMirror br').should('exist') + }) + + it('the default keyboard shortcut should add a line break', () => { + cy.get('.ProseMirror br').should('not.exist') + cy.get('.ProseMirror').type('{shift}{enter}', {force: true}) + cy.get('.ProseMirror br').should('exist') + }) + + it('the alternative keyboard shortcut should add a line break', () => { + cy.get('.ProseMirror br').should('not.exist') + cy.get('.ProseMirror').type('{meta}{enter}', {force: true}) + cy.get('.ProseMirror br').should('exist') + }) }) }) \ No newline at end of file diff --git a/docs/src/demos/Extensions/HardBreak/index.vue b/docs/src/demos/Extensions/HardBreak/index.vue index 2ee240ad..92d76959 100644 --- a/docs/src/demos/Extensions/HardBreak/index.vue +++ b/docs/src/demos/Extensions/HardBreak/index.vue @@ -1,5 +1,9 @@ diff --git a/docs/src/docPages/api/extensions/hard-break.md b/docs/src/docPages/api/extensions/hard-break.md index cc5d97d3..7b47bf98 100644 --- a/docs/src/docPages/api/extensions/hard-break.md +++ b/docs/src/docPages/api/extensions/hard-break.md @@ -18,4 +18,4 @@ The HardBreak extensions adds support for the `
` HTML tag, which forces a li [packages/extension-hard-break/](https://github.com/ueberdosis/tiptap-next/blob/main/packages/extension-hard-break/) ## Usage - + diff --git a/docs/src/links.yaml b/docs/src/links.yaml index d06918fa..6298a464 100644 --- a/docs/src/links.yaml +++ b/docs/src/links.yaml @@ -135,7 +135,6 @@ link: /api/extensions/document - title: Hardbreak link: /api/extensions/hard-break - draft: true - title: Heading link: /api/extensions/heading draft: true From 3377f0af4854f3561b34e6ea689cafe0ef62dabc Mon Sep 17 00:00:00 2001 From: Hans Pagel Date: Thu, 10 Sep 2020 12:13:56 +0200 Subject: [PATCH 2/3] fix typo --- docs/src/links.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/links.yaml b/docs/src/links.yaml index 6298a464..fc7b28a8 100644 --- a/docs/src/links.yaml +++ b/docs/src/links.yaml @@ -133,7 +133,7 @@ # draft: true - title: Document link: /api/extensions/document - - title: Hardbreak + - title: HardBreak link: /api/extensions/hard-break - title: Heading link: /api/extensions/heading From d043efe92389125a98e441251d12732a3c5df65f Mon Sep 17 00:00:00 2001 From: Hans Pagel Date: Thu, 10 Sep 2020 12:27:27 +0200 Subject: [PATCH 3/3] test the strikes extension, enable the interactive demo --- .../src/demos/Extensions/Strike/index.spec.js | 34 +++++++++++++++++++ docs/src/demos/Extensions/Strike/index.vue | 4 +-- docs/src/links.yaml | 1 - 3 files changed, 36 insertions(+), 3 deletions(-) diff --git a/docs/src/demos/Extensions/Strike/index.spec.js b/docs/src/demos/Extensions/Strike/index.spec.js index 74f56923..31e421c6 100644 --- a/docs/src/demos/Extensions/Strike/index.spec.js +++ b/docs/src/demos/Extensions/Strike/index.spec.js @@ -1,5 +1,39 @@ context('/api/extensions/strike', () => { beforeEach(() => { cy.visit('/api/extensions/strike') + + cy.get('.ProseMirror').window().then(window => { + const { editor } = window + editor.setContent('

Example Text

') + editor.focus().selectAll() + }) + }) + + describe('strike', () => { + it('the button should strike the selected text', () => { + cy.get('.demo__preview button:first').click({ force: true }) + cy.get('.ProseMirror').contains('s', 'Example Text') + }) + + it('the button should toggle the selected text striked', () => { + cy.get('.demo__preview button:first').dblclick({ force: true }) + cy.get('.ProseMirror s').should('not.exist') + }) + + it('the keyboard shortcut should strike the selected text', () => { + cy.get('.ProseMirror').type('{meta}d', {force: true}) + cy.get('.ProseMirror').contains('s', 'Example Text') + }) + + it('the keyboard shortcut should toggle the selected text striked', () => { + cy.get('.ProseMirror').type('{meta}d', {force: true}).type('{meta}d', {force: true}) + cy.get('.ProseMirror s').should('not.exist') + }) + + it('should make a striked text from the markdown shortcut', () => { + cy.get('.ProseMirror') + .type('~~Strike~~', {force: true}) + .contains('s', 'Strike') + }) }) }) \ No newline at end of file diff --git a/docs/src/demos/Extensions/Strike/index.vue b/docs/src/demos/Extensions/Strike/index.vue index 983b393c..67ad7e1d 100644 --- a/docs/src/demos/Extensions/Strike/index.vue +++ b/docs/src/demos/Extensions/Strike/index.vue @@ -14,7 +14,7 @@ import { EditorContent } from '@tiptap/vue' import Document from '@tiptap/extension-document' import Paragraph from '@tiptap/extension-paragraph' import Text from '@tiptap/extension-text' -// import Strike from '@tiptap/extension-strike' +import Strike from '@tiptap/extension-strike' export default { components: { @@ -33,7 +33,7 @@ export default { Document(), Paragraph(), Text(), - // Strike(), + Strike(), ], content: `

This isn’t striked through.

diff --git a/docs/src/links.yaml b/docs/src/links.yaml index fc7b28a8..35970fcd 100644 --- a/docs/src/links.yaml +++ b/docs/src/links.yaml @@ -164,7 +164,6 @@ # draft: true - title: Strike link: /api/extensions/strike - draft: true # - title: TableCell # link: /api/extensions/table-cell # draft: true