diff --git a/.github/workflows/gha.yml b/.github/workflows/gha.yml index 2fd3950d0..46fb7a303 100644 --- a/.github/workflows/gha.yml +++ b/.github/workflows/gha.yml @@ -1,9 +1,9 @@ name: CI on: push: - branches: [ test-framework ] + branches: [ master ] pull_request: - branches: [ test-framework ] + branches: [ master ] jobs: build: @@ -18,4 +18,4 @@ jobs: npm run lint - name: run test run: | - npm run test \ No newline at end of file + npm run test diff --git a/package.json b/package.json index b0362644f..77c817217 100644 --- a/package.json +++ b/package.json @@ -5,12 +5,12 @@ "main": "dist/mavon-editor.js", "types": "./mavon-editor.d.ts", "scripts": { - "test": "jest", - "test:coverage": "jest --coverage", "dev": "webpack-dev-server --open --progress --config webpack/webpack.dev.js", "build": "webpack --progress --config webpack/webpack.build.js", - "lint:fix": "eslint --fix --ext .js,.vue src/", - "lint": "eslint --ext .js,.vue src/" + "test": "jest", + "test:coverage": "jest --coverage", + "lint": "eslint --ext .js,.vue src/", + "lint:fix": "eslint --fix --ext .js,.vue src/" }, "repository": { "type": "git", diff --git a/tests/unit/button.spec.js b/tests/unit/button.spec.js index 9dd47e078..e726cbae7 100644 --- a/tests/unit/button.spec.js +++ b/tests/unit/button.spec.js @@ -16,19 +16,22 @@ const factory = (propsData, mocks) => { } }) } -let textValueClass = '.auto-textarea-block' -let htmlValueClass = '.v-show-content-html.scroll-style.scroll-style-border-radius' -describe.only('toolbars测试', () => { - let wrapper - function checkButton(buttonClass, inputValue, htmlValue) { - expect(wrapper.find(buttonClass).exists()).toBe(true) - wrapper.find(buttonClass).trigger('click') - wrapper.vm.$nextTick(() => { - expect(wrapper.find(textValueClass).text()).toEqual(inputValue) - expect(wrapper.find(htmlValueClass).text()).toEqual(htmlValue) - }) - } - +let wrapper, + buttonClass, + textValue, + htmlValue, + textValueClass = '.auto-textarea-block', + htmlValueClass = '.v-show-content-html.scroll-style.scroll-style-border-radius' + +function checkButton(buttonClass, textValue, htmlValue) { + expect(wrapper.find(buttonClass).exists()).toBe(true) + wrapper.find(buttonClass).trigger('click') + wrapper.vm.$nextTick(() => { + expect(wrapper.find(textValueClass).text()).toEqual(textValue) + expect(wrapper.find(htmlValueClass).text()).toEqual(htmlValue) + }) +} +describe('left-toolbars测试', () => { beforeEach(() => { wrapper = new factory({ d_words: null, value: " " }) }) @@ -37,122 +40,122 @@ describe.only('toolbars测试', () => { }) it('粗体按钮', async () => { - let buttonClass = '.op-icon.fa.fa-mavon-bold' - let eInputValue = '**粗体**' - let eHtmlValue = '

粗体

' + buttonClass = '.op-icon.fa.fa-mavon-bold' + textValue = '**粗体**' + htmlValue = '

粗体

' expect.assertions(6) - await checkButton(buttonClass, eInputValue, eHtmlValue) - eInputValue = '粗体' - eHtmlValue = '

粗体

' - await checkButton(buttonClass, eInputValue, eHtmlValue) + await checkButton(buttonClass, textValue, htmlValue) + textValue = '粗体' + htmlValue = '

粗体

' + await checkButton(buttonClass, textValue, htmlValue) }) it('斜体按钮', async () => { let buttonClass = '.op-icon.fa.fa-mavon-italic' - let eInputValue = '*斜体*' - let eHtmlValue = '

斜体

' - await checkButton(buttonClass, eInputValue, eHtmlValue) - eInputValue = '斜体' - eHtmlValue = '

斜体

' - await checkButton(buttonClass, eInputValue, eHtmlValue) + let textValue = '*斜体*' + let htmlValue = '

斜体

' + await checkButton(buttonClass, textValue, htmlValue) + textValue = '斜体' + htmlValue = '

斜体

' + await checkButton(buttonClass, textValue, htmlValue) }) it('标题按钮', async () => { let buttonClass = '.op-header.popup-dropdown.transition span' - let eInputValue = '# 一级标题' - let eHtmlValue = '

一级标题

' - await checkButton(buttonClass, eInputValue, eHtmlValue) + let textValue = '# 一级标题' + let htmlValue = '

一级标题

' + await checkButton(buttonClass, textValue, htmlValue) }) it('下划线按钮', async () => { let buttonClass = '.op-icon.fa.fa-mavon-underline' - let eInputValue = '++下划线++' - let eHtmlValue = '

下划线

' - await checkButton(buttonClass, eInputValue, eHtmlValue) - eInputValue = '下划线' - eHtmlValue = '

下划线

' - await checkButton(buttonClass, eInputValue, eHtmlValue) + let textValue = '++下划线++' + let htmlValue = '

下划线

' + await checkButton(buttonClass, textValue, htmlValue) + textValue = '下划线' + htmlValue = '

下划线

' + await checkButton(buttonClass, textValue, htmlValue) }) it('下划线按钮', async () => { let buttonClass = '.op-icon.fa.fa-mavon-underline' - let eInputValue = '++下划线++' - let eHtmlValue = '

下划线

' - await checkButton(buttonClass, eInputValue, eHtmlValue) + let textValue = '++下划线++' + let htmlValue = '

下划线

' + await checkButton(buttonClass, textValue, htmlValue) }) it('中划线按钮', async () => { let buttonClass = '.op-icon.fa.fa-mavon-strikethrough' - let eInputValue = '~~中划线~~' - let eHtmlValue = '

中划线

' - await checkButton(buttonClass, eInputValue, eHtmlValue) + let textValue = '~~中划线~~' + let htmlValue = '

中划线

' + await checkButton(buttonClass, textValue, htmlValue) }) it('标记按钮', async () => { let buttonClass = '.op-icon.fa.fa-mavon-thumb-tack' - let eInputValue = '==标记==' - let eHtmlValue = '

标记

' - await checkButton(buttonClass, eInputValue, eHtmlValue) + let textValue = '==标记==' + let htmlValue = '

标记

' + await checkButton(buttonClass, textValue, htmlValue) }) it('上角标按钮', async () => { let buttonClass = '.op-icon.fa.fa-mavon-superscript' - let eInputValue = '^上角标^' - let eHtmlValue = '

上角标

' - await checkButton(buttonClass, eInputValue, eHtmlValue) + let textValue = '^上角标^' + let htmlValue = '

上角标

' + await checkButton(buttonClass, textValue, htmlValue) }) it('下角标按钮', async () => { let buttonClass = '.op-icon.fa.fa-mavon-subscript' - let eInputValue = '~下角标~' - let eHtmlValue = '

下角标

' - await checkButton(buttonClass, eInputValue, eHtmlValue) + let textValue = '~下角标~' + let htmlValue = '

下角标

' + await checkButton(buttonClass, textValue, htmlValue) }) it('居左按钮', async () => { let buttonClass = '.op-icon.fa.fa-mavon-align-left' - let eInputValue = '::: hljs-left\n\n居左\n\n:::' - let eHtmlValue = '
\n

居左

\n
' - await checkButton(buttonClass, eInputValue, eHtmlValue) + let textValue = '::: hljs-left\n\n居左\n\n:::' + let htmlValue = '
\n

居左

\n
' + await checkButton(buttonClass, textValue, htmlValue) }) it('居中按钮', async () => { let buttonClass = '.op-icon.fa.fa-mavon-align-center' - let eInputValue = '::: hljs-center\n\n居中\n\n:::' - let eHtmlValue = '
\n

居中

\n
' - await checkButton(buttonClass, eInputValue, eHtmlValue) + let textValue = '::: hljs-center\n\n居中\n\n:::' + let htmlValue = '
\n

居中

\n
' + await checkButton(buttonClass, textValue, htmlValue) }) it('居右按钮', async () => { let buttonClass = '.op-icon.fa.fa-mavon-align-right' - let eInputValue = '::: hljs-right\n\n居右\n\n:::' - let eHtmlValue = '
\n

居右

\n
' - await checkButton(buttonClass, eInputValue, eHtmlValue) + let textValue = '::: hljs-right\n\n居右\n\n:::' + let htmlValue = '
\n

居右

\n
' + await checkButton(buttonClass, textValue, htmlValue) }) it('段落引用', async () => { let buttonClass = '.op-icon.fa.fa-mavon-quote-left' - let eInputValue = '> 段落引用' - let eHtmlValue = '
\n

段落引用

\n
' - await checkButton(buttonClass, eInputValue, eHtmlValue) - eInputValue = '段落引用' - eHtmlValue = '

段落引用

' - await checkButton(buttonClass, eInputValue, eHtmlValue) + let textValue = '> 段落引用' + let htmlValue = '
\n

段落引用

\n
' + await checkButton(buttonClass, textValue, htmlValue) + textValue = '段落引用' + htmlValue = '

段落引用

' + await checkButton(buttonClass, textValue, htmlValue) }) it('有序列表', async () => { let buttonClass = '.op-icon.fa.fa-mavon-list-ol' - let eInputValue = '1.' - let eHtmlValue = '
    \n
  1. \n
' - await checkButton(buttonClass, eInputValue, eHtmlValue) + let textValue = '1.' + let htmlValue = '
    \n
  1. \n
' + await checkButton(buttonClass, textValue, htmlValue) }) it('无序列表', async () => { let buttonClass = '.op-icon.fa.fa-mavon-list-ul' - let eInputValue = '-' - let eHtmlValue = '' + let textValue = '-' + let htmlValue = '' - await checkButton(buttonClass, eInputValue, eHtmlValue) + await checkButton(buttonClass, textValue, htmlValue) }) it('链接', async () => { @@ -160,16 +163,16 @@ describe.only('toolbars测试', () => { let linktext = '.link-text.input-wrapper input' let linkaddr = '.link-addr.input-wrapper input' let surebutten = '.op-btn.sure' - let eInputValue = '[mylink](http://xxx.com)' - let eHtmlValue = '

mylink

' + let textValue = '[mylink](http://xxx.com)' + let htmlValue = '

mylink

' await wrapper.find(buttonClass).trigger('click') wrapper.find(linktext).setValue('mylink') wrapper.find(linkaddr).setValue('http://xxx.com') await wrapper.find(surebutten).trigger('click') - expect(wrapper.find(textValueClass).text()).toEqual(eInputValue) - expect(wrapper.find(htmlValueClass).text()).toEqual(eHtmlValue) + expect(wrapper.find(textValueClass).text()).toEqual(textValue) + expect(wrapper.find(htmlValueClass).text()).toEqual(htmlValue) }) it('图片链接添加', async () => { @@ -178,8 +181,8 @@ describe.only('toolbars测试', () => { let linktext = '.link-text.input-wrapper input' let linkaddr = '.link-addr.input-wrapper input' let surebutten = '.op-btn.sure' - let eInputValue = '![mylink](http://xxx.com)' - let eHtmlValue = '

mylink

' + let textValue = '![mylink](http://xxx.com)' + let htmlValue = '

mylink

' await wrapper.find(buttonClass).trigger('click') await wrapper.find(addimagelink).trigger('click') @@ -187,21 +190,21 @@ describe.only('toolbars测试', () => { wrapper.find(linkaddr).setValue('http://xxx.com') await wrapper.find(surebutten).trigger('click') - expect(wrapper.find(textValueClass).text()).toEqual(eInputValue) - expect(wrapper.find(htmlValueClass).text()).toEqual(eHtmlValue) + expect(wrapper.find(textValueClass).text()).toEqual(textValue) + expect(wrapper.find(htmlValueClass).text()).toEqual(htmlValue) }) it('代码块', async () => { let buttonClass = '.op-icon.fa.fa-mavon-code' - let eInputValue = '```\nlanguage\n\n```' - let eHtmlValue = '
language\n\n
' - await checkButton(buttonClass, eInputValue, eHtmlValue) + let textValue = '```\nlanguage\n\n```' + let htmlValue = '
language\n\n
' + await checkButton(buttonClass, textValue, htmlValue) }) it('表格', async () => { let buttonClass = '.op-icon.fa.fa-mavon-table' - let eInputValue = `|column1|column2|column3|\n|-|-|-|\n|content1|content2|content3|` - let eHtmlValue = '\n' + + let textValue = `|column1|column2|column3|\n|-|-|-|\n|content1|content2|content3|` + let htmlValue = '
\n' + '\n' + '\n' + '\n' + @@ -217,36 +220,35 @@ describe.only('toolbars测试', () => { '\n' + '\n' + '
column1
' - await checkButton(buttonClass, eInputValue, eHtmlValue) + await checkButton(buttonClass, textValue, htmlValue) }) it('上一步/下一步', async () => { let buttonClass = '.op-icon.fa.fa-mavon-undo' - let eInputValue = 'first' - let eHtmlValue = '

first

' + let textValue = 'first' + let htmlValue = '

first

' await wrapper.setData({ d_history: ['first', 'second', 'third'], d_history_index: 1 }) - await checkButton(buttonClass, eInputValue, eHtmlValue) + await checkButton(buttonClass, textValue, htmlValue) buttonClass = '.op-icon.fa.fa-mavon-repeat' - eInputValue = 'second' - eHtmlValue = '

second

' - await checkButton(buttonClass, eInputValue, eHtmlValue) + textValue = 'second' + htmlValue = '

second

' + await checkButton(buttonClass, textValue, htmlValue) }) it('清空', async () => { let buttonClass = '.op-icon.fa.fa-mavon-trash-o' - let eInputValue = '' - let eHtmlValue = '' + let textValue = '' + let htmlValue = '' await wrapper.setData({ d_value: 'first' }) - await checkButton(buttonClass, eInputValue, eHtmlValue) + await checkButton(buttonClass, textValue, htmlValue) }) it('保存', () => { let buttonClass = '.op-icon.fa.fa-mavon-trash-o' - //检查字体加粗元素是否渲染 expect(wrapper.find(buttonClass).exists()).toBe(true) }) -}) \ No newline at end of file +})