From 2f66ef4fcdc309442704ed81768c5a0fffed7fd9 Mon Sep 17 00:00:00 2001 From: Stijn Smits Date: Sat, 14 Nov 2020 20:28:12 +0100 Subject: [PATCH 1/3] added test --- .../basic/components/ClassComponent.vue | 13 +++++++++++++ e2e/__projects__/basic/package.json | 3 ++- e2e/__projects__/basic/test.js | 6 ++++++ e2e/__projects__/basic/yarn.lock | 5 +++++ yarn.lock | 5 +++++ 5 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 e2e/__projects__/basic/components/ClassComponent.vue diff --git a/e2e/__projects__/basic/components/ClassComponent.vue b/e2e/__projects__/basic/components/ClassComponent.vue new file mode 100644 index 00000000..d256dd00 --- /dev/null +++ b/e2e/__projects__/basic/components/ClassComponent.vue @@ -0,0 +1,13 @@ + + + + diff --git a/e2e/__projects__/basic/package.json b/e2e/__projects__/basic/package.json index 90cf8845..9324dad3 100644 --- a/e2e/__projects__/basic/package.json +++ b/e2e/__projects__/basic/package.json @@ -17,7 +17,8 @@ "babel-helper-vue-jsx-merge-props": "^2.0.3", "babel-plugin-syntax-jsx": "^6.18.0", "babel-plugin-transform-vue-jsx": "^3.7.0", - "jest": "^24.0.0" + "jest": "^24.0.0", + "vue-class-component": "^8.0.0-beta.4" }, "jest": { "moduleFileExtensions": [ diff --git a/e2e/__projects__/basic/test.js b/e2e/__projects__/basic/test.js index 9269954c..8d9144bc 100644 --- a/e2e/__projects__/basic/test.js +++ b/e2e/__projects__/basic/test.js @@ -6,6 +6,7 @@ import BasicSrc from './components/BasicSrc.vue' import Pug from './components/Pug.vue' import Coffee from './components/Coffee.vue' import Basic from './components/Basic.vue' +import ClassComponent from './components/ClassComponent.vue' import TypeScript from './components/TypeScript.vue' import jestVue from '../../../' import RenderFunction from './components/RenderFunction.vue' @@ -116,6 +117,11 @@ test('supports relative paths when extending templates from .pug files', () => { expect(document.querySelector('.pug-relative-base')).toBeTruthy() }) +test('supports class component .vue files', () => { + mount(ClassComponent, { msg: 'Hello' }) + expect(document.querySelector('div').textContent).toBe('Hello') +}) + // TODO: How do functional components work in Vue 3? xtest('processes functional components', () => { // const clickSpy = jest.fn() diff --git a/e2e/__projects__/basic/yarn.lock b/e2e/__projects__/basic/yarn.lock index 686ef1b3..aee080c6 100644 --- a/e2e/__projects__/basic/yarn.lock +++ b/e2e/__projects__/basic/yarn.lock @@ -4157,6 +4157,11 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" +vue-class-component@^8.0.0-beta.4: + version "8.0.0-beta.4" + resolved "https://registry.yarnpkg.com/vue-class-component/-/vue-class-component-8.0.0-beta.4.tgz#bff95cdd44eb450a4a4e54b69da22099613d8071" + integrity sha512-+QXBhVH/Mz8dEC+IU7e8XXM54Tn0Aj9/saybeuK8XmhQiJlcijCB8kB7CYpBEMpHWaA+DoLr6LvHMbclYRCwZQ== + vue@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/vue/-/vue-3.0.0.tgz#cfb5df5c34efce319b113a1667d12b74dcfd9c90" diff --git a/yarn.lock b/yarn.lock index 82d334ce..e7fd052f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8589,6 +8589,11 @@ yargs@~3.10.0: decamelize "^1.0.0" window-size "0.1.0" +yarn@^1.22.10: + version "1.22.10" + resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.22.10.tgz#c99daa06257c80f8fa2c3f1490724e394c26b18c" + integrity sha512-IanQGI9RRPAN87VGTF7zs2uxkSyQSrSPsju0COgbsKQOOXr5LtcVPeyXWgwVa0ywG3d8dg6kSYKGBuYK021qeA== + yup@^0.27.0: version "0.27.0" resolved "https://registry.yarnpkg.com/yup/-/yup-0.27.0.tgz#f8cb198c8e7dd2124beddc2457571329096b06e7" From 8b3ebd60adbb6a86d5f5b1c9bd649f632a09650b Mon Sep 17 00:00:00 2001 From: Stijn Smits Date: Sat, 14 Nov 2020 21:11:11 +0100 Subject: [PATCH 2/3] fix test --- lib/generate-code.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/generate-code.js b/lib/generate-code.js index 05f21b12..04fadc6f 100644 --- a/lib/generate-code.js +++ b/lib/generate-code.js @@ -28,10 +28,20 @@ module.exports = function generateCode( var tempOutput = node.toString() + console.log(tempOutput) + + if ( + tempOutput.match(/\}\(.*.?Vue\);/) && + tempOutput.includes('vue-class-component') + ) { + node.add(';exports.default = {...exports.default.__vccBase};') + } + if (tempOutput.includes('exports.render = render;')) { node.add(';exports.default = {...exports.default, render};') } else { node.add(';exports.default = {...exports.default};') } + return node.toStringWithSourceMap({ file: filename }) } From 5775137220d901442e0a9674e712e739b2565fb8 Mon Sep 17 00:00:00 2001 From: Stijn Smits Date: Sun, 15 Nov 2020 13:27:09 +0100 Subject: [PATCH 3/3] remove console log --- lib/generate-code.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/generate-code.js b/lib/generate-code.js index 04fadc6f..016cd9dd 100644 --- a/lib/generate-code.js +++ b/lib/generate-code.js @@ -28,8 +28,6 @@ module.exports = function generateCode( var tempOutput = node.toString() - console.log(tempOutput) - if ( tempOutput.match(/\}\(.*.?Vue\);/) && tempOutput.includes('vue-class-component')