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);      });    });  | 
