From f3a9014ca7d7c74808251240bd5d6565cd40fba2 Mon Sep 17 00:00:00 2001 From: Patrick Steele-Idem Date: Wed, 8 Feb 2017 22:40:45 -0800 Subject: [PATCH] Fixes #559 - class tag is used for components only --- .../render/error-class-tag-nested/expected.html | 1 + .../render/error-class-tag-nested/template.marko | 3 +++ test/autotests/render/error-class-tag-nested/test.js | 8 ++++++++ .../widgets-browser/class-named/index.marko | 12 ++++++++++++ test/autotests/widgets-browser/class-named/test.js | 7 +++++++ widgets/taglib/TransformHelper/handleRootNodes.js | 2 -- 6 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 test/autotests/render/error-class-tag-nested/expected.html create mode 100644 test/autotests/render/error-class-tag-nested/template.marko create mode 100644 test/autotests/render/error-class-tag-nested/test.js create mode 100644 test/autotests/widgets-browser/class-named/index.marko create mode 100644 test/autotests/widgets-browser/class-named/test.js diff --git a/test/autotests/render/error-class-tag-nested/expected.html b/test/autotests/render/error-class-tag-nested/expected.html new file mode 100644 index 000000000..187c96a9b --- /dev/null +++ b/test/autotests/render/error-class-tag-nested/expected.html @@ -0,0 +1 @@ + diff --git a/test/autotests/render/error-class-tag-nested/template.marko b/test/autotests/render/error-class-tag-nested/template.marko new file mode 100644 index 000000000..31b283173 --- /dev/null +++ b/test/autotests/render/error-class-tag-nested/template.marko @@ -0,0 +1,3 @@ +
+ CLASS +
\ No newline at end of file diff --git a/test/autotests/render/error-class-tag-nested/test.js b/test/autotests/render/error-class-tag-nested/test.js new file mode 100644 index 000000000..5ca4514d1 --- /dev/null +++ b/test/autotests/render/error-class-tag-nested/test.js @@ -0,0 +1,8 @@ +var expect = require('chai').expect; + +exports.templateData = {}; + +exports.checkError = function(e) { + var message = e.toString(); + expect(message).to.contain('class is a static tag and can only be declared at the template root'); +}; diff --git a/test/autotests/widgets-browser/class-named/index.marko b/test/autotests/widgets-browser/class-named/index.marko new file mode 100644 index 000000000..1651f271d --- /dev/null +++ b/test/autotests/widgets-browser/class-named/index.marko @@ -0,0 +1,12 @@ +class MyComponent { + onMount() { + + } + + sayHello(name) { + return 'Hello ' + name + '!'; + } +} + + + \ No newline at end of file diff --git a/test/autotests/widgets-browser/class-named/test.js b/test/autotests/widgets-browser/class-named/test.js new file mode 100644 index 000000000..ece1c4b3f --- /dev/null +++ b/test/autotests/widgets-browser/class-named/test.js @@ -0,0 +1,7 @@ +var expect = require('chai').expect; + +module.exports = function(helpers) { + var widget = helpers.mount(require('./index'), { }); + + expect(widget.sayHello('Frank')).to.equal('Hello Frank!'); +}; \ No newline at end of file diff --git a/widgets/taglib/TransformHelper/handleRootNodes.js b/widgets/taglib/TransformHelper/handleRootNodes.js index b1082cb52..689d96632 100644 --- a/widgets/taglib/TransformHelper/handleRootNodes.js +++ b/widgets/taglib/TransformHelper/handleRootNodes.js @@ -183,8 +183,6 @@ function classToObject(cls, transformHelper) { } function handleClassDeclaration(classEl, transformHelper) { - if(!/^class\s*\{/.test(classEl.tagString)) return; - let tree; var wrappedSrc = '('+classEl.tagString+'\n)';