diff options
author | Sebastian <sebasjm@gmail.com> | 2021-08-23 16:46:06 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2021-08-23 16:48:30 -0300 |
commit | 38acabfa6089ab8ac469c12b5f55022fb96935e5 (patch) | |
tree | 453dbf70000cc5e338b06201af1eaca8343f8f73 /preact/debug/test/browser/component-stack-2.test.js | |
parent | f26125e039143b92dc0d84e7775f508ab0cdcaa8 (diff) | |
download | node-vendor-38acabfa6089ab8ac469c12b5f55022fb96935e5.tar.gz node-vendor-38acabfa6089ab8ac469c12b5f55022fb96935e5.tar.bz2 node-vendor-38acabfa6089ab8ac469c12b5f55022fb96935e5.zip |
Diffstat (limited to 'preact/debug/test/browser/component-stack-2.test.js')
-rw-r--r-- | preact/debug/test/browser/component-stack-2.test.js | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/preact/debug/test/browser/component-stack-2.test.js b/preact/debug/test/browser/component-stack-2.test.js new file mode 100644 index 0000000..a9a75af --- /dev/null +++ b/preact/debug/test/browser/component-stack-2.test.js @@ -0,0 +1,54 @@ +import { createElement, render, Component } from 'preact'; +import 'preact/debug'; +import { setupScratch, teardown } from '../../../test/_util/helpers'; + +/** @jsx createElement */ + +// This test is not part of component-stack.test.js to avoid it being +// transpiled with '@babel/plugin-transform-react-jsx-source' enabled. + +describe('component stack', () => { + /** @type {HTMLDivElement} */ + let scratch; + + let errors = []; + let warnings = []; + + beforeEach(() => { + scratch = setupScratch(); + + errors = []; + warnings = []; + sinon.stub(console, 'error').callsFake(e => errors.push(e)); + sinon.stub(console, 'warn').callsFake(w => warnings.push(w)); + }); + + afterEach(() => { + console.error.restore(); + console.warn.restore(); + teardown(scratch); + }); + + it('should print a warning when "@babel/plugin-transform-react-jsx-source" is not installed', () => { + function Foo() { + return <Thrower />; + } + + class Thrower extends Component { + constructor(props) { + super(props); + this.setState({ foo: 1 }); + } + + render() { + return <div>foo</div>; + } + } + + render(<Foo />, scratch); + + expect( + warnings[0].indexOf('@babel/plugin-transform-react-jsx-source') > -1 + ).to.equal(true); + }); +}); |