diff options
| author | Shin'ya Ueoka <ueokande@i-beam.org> | 2020-09-22 11:03:07 +0900 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-09-22 11:03:07 +0900 | 
| commit | d956b9e976c01db3944643e2260cb23e23b08221 (patch) | |
| tree | d953d4d629bd31f5ba1b248133ee1f77cdf470ac /test/settings/components/ui | |
| parent | 5d82441ce3d12301bb8f04b78b79fffb04121a37 (diff) | |
| parent | 7257406df196a29c0f172ee68ca8dbe50a72d21f (diff) | |
Merge pull request #838 from ueokande/form-styled-components
Use styled-components instead of vanilla CSS/SCSS in option
Diffstat (limited to 'test/settings/components/ui')
| -rw-r--r-- | test/settings/components/ui/Radio.test.tsx | 56 | ||||
| -rw-r--r-- | test/settings/components/ui/Text.test.tsx | 55 | ||||
| -rw-r--r-- | test/settings/components/ui/TextArea.test.tsx | 63 | ||||
| -rw-r--r-- | test/settings/components/ui/input.test.tsx | 146 | 
4 files changed, 174 insertions, 146 deletions
| diff --git a/test/settings/components/ui/Radio.test.tsx b/test/settings/components/ui/Radio.test.tsx new file mode 100644 index 0000000..f929ee3 --- /dev/null +++ b/test/settings/components/ui/Radio.test.tsx @@ -0,0 +1,56 @@ +import React from "react"; +import ReactDOM from "react-dom"; +import ReactTestUtils from "react-dom/test-utils"; +import Radio from "../../../../src/settings/components/ui/Radio"; +import { expect } from "chai"; + +describe("settings/ui/Radio", () => { +  let container: HTMLDivElement; + +  beforeEach(() => { +    container = document.createElement("div"); +    document.body.appendChild(container); +  }); + +  afterEach(() => { +    document.body.removeChild(container); +  }); + +  it("renders radio button", () => { +    ReactTestUtils.act(() => { +      ReactDOM.render( +        <Radio name="myradio" 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("myradio"); +    expect(input.value).to.contain("myvalue"); +  }); + +  it("invoke onChange", (done) => { +    ReactTestUtils.act(() => { +      ReactDOM.render( +        <Radio +          name="myradio" +          type="text" +          label="myfield" +          value="myvalue" +          onChange={(e) => { +            expect((e.target as HTMLInputElement).checked).to.be.true; +            done(); +          }} +        />, +        container +      ); +    }); + +    const input = document.querySelector("input") as HTMLInputElement; +    input.checked = true; +    ReactTestUtils.Simulate.change(input); +  }); +}); diff --git a/test/settings/components/ui/Text.test.tsx b/test/settings/components/ui/Text.test.tsx new file mode 100644 index 0000000..d5451bb --- /dev/null +++ b/test/settings/components/ui/Text.test.tsx @@ -0,0 +1,55 @@ +import React from "react"; +import ReactDOM from "react-dom"; +import ReactTestUtils from "react-dom/test-utils"; +import Text from "../../../../src/settings/components/ui/Text"; +import { expect } from "chai"; + +describe("settings/ui/Text", () => { +  let container: HTMLDivElement; + +  beforeEach(() => { +    container = document.createElement("div"); +    document.body.appendChild(container); +  }); + +  afterEach(() => { +    document.body.removeChild(container); +  }); + +  it("renders text input", () => { +    ReactTestUtils.act(() => { +      ReactDOM.render( +        <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"); +  }); + +  it("invoke onChange", (done) => { +    ReactTestUtils.act(() => { +      ReactDOM.render( +        <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"; +    ReactTestUtils.Simulate.change(input); +  }); +}); diff --git a/test/settings/components/ui/TextArea.test.tsx b/test/settings/components/ui/TextArea.test.tsx new file mode 100644 index 0000000..232c7c0 --- /dev/null +++ b/test/settings/components/ui/TextArea.test.tsx @@ -0,0 +1,63 @@ +import React from "react"; +import ReactDOM from "react-dom"; +import ReactTestUtils from "react-dom/test-utils"; +import TextArea from "../../../../src/settings/components/ui/TextArea"; +import { expect } from "chai"; + +describe("settings/ui/TextArea", () => { +  let container: HTMLDivElement; + +  beforeEach(() => { +    container = document.createElement("div"); +    document.body.appendChild(container); +  }); + +  afterEach(() => { +    document.body.removeChild(container); +  }); + +  it("renders textarea", () => { +    ReactTestUtils.act(() => { +      ReactDOM.render( +        <TextArea +          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("[role=alert]")!; +    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) => { +    ReactTestUtils.act(() => { +      ReactDOM.render( +        <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"; +    ReactTestUtils.Simulate.change(input); +  }); +}); diff --git a/test/settings/components/ui/input.test.tsx b/test/settings/components/ui/input.test.tsx deleted file mode 100644 index d244d8f..0000000 --- a/test/settings/components/ui/input.test.tsx +++ /dev/null @@ -1,146 +0,0 @@ -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: HTMLDivElement; - -  beforeEach(() => { -    container = document.createElement("div"); -    document.body.appendChild(container); -  }); - -  afterEach(() => { -    document.body.removeChild(container); -  }); - -  context("type=text", () => { -    it("renders text input", () => { -      ReactTestUtils.act(() => { -        ReactDOM.render( -          <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"); -    }); - -    it("invoke onChange", (done) => { -      ReactTestUtils.act(() => { -        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"; -      ReactTestUtils.Simulate.change(input); -    }); -  }); - -  context("type=radio", () => { -    it("renders radio button", () => { -      ReactTestUtils.act(() => { -        ReactDOM.render( -          <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"); -    }); - -    it("invoke onChange", (done) => { -      ReactTestUtils.act(() => { -        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") as HTMLInputElement; -      input.checked = true; -      ReactTestUtils.Simulate.change(input); -    }); -  }); - -  context("type=textarea", () => { -    it("renders textarea button", () => { -      ReactTestUtils.act(() => { -        ReactDOM.render( -          <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"); -    }); - -    it("invoke onChange", (done) => { -      ReactTestUtils.act(() => { -        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"; -      ReactTestUtils.Simulate.change(input); -    }); -  }); -}); | 
