diff options
author | Shin'ya Ueoka <ueokande@i-beam.org> | 2020-05-02 17:25:56 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-02 17:25:56 +0900 |
commit | 5df0537bcf65a341e79852b1b30379c73318529c (patch) | |
tree | aee5efe52412855f620cb514a13a2c14373f27b7 /test/settings/components/ui | |
parent | 685f2b7b69218b06b5bb676069e35f79c5048c9b (diff) | |
parent | 75abd90ecb8201ad845b266f96220d8adfe19b2d (diff) |
Merge pull request #749 from ueokande/qa-0.28
QA 0.28
Diffstat (limited to 'test/settings/components/ui')
-rw-r--r-- | test/settings/components/ui/input.test.tsx | 149 |
1 files changed, 92 insertions, 57 deletions
diff --git a/test/settings/components/ui/input.test.tsx b/test/settings/components/ui/input.test.tsx index a3e7ff4..191bfed 100644 --- a/test/settings/components/ui/input.test.tsx +++ b/test/settings/components/ui/input.test.tsx @@ -1,110 +1,145 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; -import ReactTestUtils from 'react-dom/test-utils'; -import Input from 'settings/components/ui/Input' +import React from "react"; +import ReactDOM from "react-dom"; +import ReactTestUtils from "react-dom/test-utils"; +import Input from "../../../../src/settings/components/ui/Input"; +import { expect } from "chai"; describe("settings/ui/Input", () => { - let container; + let container: HTMLDivElement; beforeEach(() => { - container = document.createElement('div'); + container = document.createElement("div"); document.body.appendChild(container); }); afterEach(() => { document.body.removeChild(container); - container = null; }); context("type=text", () => { - it('renders text input', () => { + it("renders text input", () => { ReactTestUtils.act(() => { ReactDOM.render( - <Input type='text' name='myname' label='myfield' value='myvalue'/>, - container); + <Input type="text" name="myname" label="myfield" value="myvalue" />, + container + ); }); - const label = document.querySelector('label'); - const input = document.querySelector('input'); - expect(label.textContent).to.contain('myfield'); - expect(input.type).to.contain('text'); - expect(input.name).to.contain('myname'); - expect(input.value).to.contain('myvalue'); + const label = document.querySelector("label")!!; + const input = document.querySelector("input")!!; + expect(label.textContent).to.contain("myfield"); + expect(input.type).to.contain("text"); + expect(input.name).to.contain("myname"); + expect(input.value).to.contain("myvalue"); }); - it('invoke onChange', (done) => { + it("invoke onChange", (done) => { ReactTestUtils.act(() => { - ReactDOM.render(<Input type='text' name='myname' label='myfield' value='myvalue' onChange={(e) => { - expect(e.target.value).to.equal('newvalue'); - done(); - }}/>, container); + ReactDOM.render( + <Input + type="text" + name="myname" + label="myfield" + value="myvalue" + onChange={(e) => { + expect((e.target as HTMLInputElement).value).to.equal("newvalue"); + done(); + }} + />, + container + ); }); - const input = document.querySelector('input'); - input.value = 'newvalue'; + const input = document.querySelector("input")!!; + input.value = "newvalue"; ReactTestUtils.Simulate.change(input); }); }); context("type=radio", () => { - it('renders radio button', () => { + it("renders radio button", () => { ReactTestUtils.act(() => { ReactDOM.render( - <Input type='radio' name='myname' label='myfield' value='myvalue'/>, - container); + <Input type="radio" name="myname" label="myfield" value="myvalue" />, + container + ); }); - const label = document.querySelector('label'); - const input = document.querySelector('input'); - expect(label.textContent).to.contain('myfield'); - expect(input.type).to.contain('radio'); - expect(input.name).to.contain('myname'); - expect(input.value).to.contain('myvalue'); + const label = document.querySelector("label")!!; + const input = document.querySelector("input")!!; + expect(label.textContent).to.contain("myfield"); + expect(input.type).to.contain("radio"); + expect(input.name).to.contain("myname"); + expect(input.value).to.contain("myvalue"); }); - it('invoke onChange', (done) => { + it("invoke onChange", (done) => { ReactTestUtils.act(() => { - ReactDOM.render(<Input type='text' name='radio' label='myfield' value='myvalue' onChange={(e) => { - expect(e.target.checked).to.be.true; - done(); - }}/>, - container); + ReactDOM.render( + <Input + type="text" + name="radio" + label="myfield" + value="myvalue" + onChange={(e) => { + expect((e.target as HTMLInputElement).checked).to.be.true; + done(); + }} + />, + container + ); }); - const input = document.querySelector('input'); + const input = document.querySelector("input") as HTMLInputElement; input.checked = true; ReactTestUtils.Simulate.change(input); }); }); context("type=textarea", () => { - it('renders textarea button', () => { + it("renders textarea button", () => { ReactTestUtils.act(() => { ReactDOM.render( - <Input type='textarea' name='myname' label='myfield' value='myvalue' error='myerror' />, - container); + <Input + type="textarea" + name="myname" + label="myfield" + value="myvalue" + error="myerror" + />, + container + ); }); - const label = document.querySelector('label'); - const textarea = document.querySelector('textarea'); - const error = document.querySelector('.settings-ui-input-error'); - expect(label.textContent).to.contain('myfield'); - expect(textarea.nodeName).to.contain('TEXTAREA'); - expect(textarea.name).to.contain('myname'); - expect(textarea.value).to.contain('myvalue'); - expect(error.textContent).to.contain('myerror'); + const label = document.querySelector("label")!!; + const textarea = document.querySelector("textarea")!!; + const error = document.querySelector(".settings-ui-input-error")!!; + expect(label.textContent).to.contain("myfield"); + expect(textarea.nodeName).to.contain("TEXTAREA"); + expect(textarea.name).to.contain("myname"); + expect(textarea.value).to.contain("myvalue"); + expect(error.textContent).to.contain("myerror"); }); - it('invoke onChange', (done) => { + it("invoke onChange", (done) => { ReactTestUtils.act(() => { - ReactDOM.render(<Input type='textarea' name='myname' label='myfield' value='myvalue' onChange={(e) => { - expect(e.target.value).to.equal('newvalue'); - done(); - }}/>, container); + ReactDOM.render( + <Input + type="textarea" + name="myname" + label="myfield" + value="myvalue" + onChange={(e) => { + expect((e.target as HTMLInputElement).value).to.equal("newvalue"); + done(); + }} + />, + container + ); }); - const input = document.querySelector('textarea'); - input.value = 'newvalue' + const input = document.querySelector("textarea")!!; + input.value = "newvalue"; ReactTestUtils.Simulate.change(input); }); }); |