aboutsummaryrefslogtreecommitdiff
path: root/test/settings/components/form/BlacklistForm.test.tsx
diff options
context:
space:
mode:
authorShin'ya Ueoka <ueokande@i-beam.org>2019-05-07 21:16:47 +0900
committerGitHub <noreply@github.com>2019-05-07 21:16:47 +0900
commit05ef6a8ca35aaa801c11eb6b4896caa3690058af (patch)
tree2c7708ca91ac2b462cc86aa28612e3d3943496f3 /test/settings/components/form/BlacklistForm.test.tsx
parent457d954e08923b4accd28a919c72d0b61db1bb98 (diff)
parent27d0a7f37d24a0ad68a8ccb7dee18fc1d00eea58 (diff)
Merge pull request #578 from ueokande/move-to-typescript
Move to TypeScript
Diffstat (limited to 'test/settings/components/form/BlacklistForm.test.tsx')
-rw-r--r--test/settings/components/form/BlacklistForm.test.tsx92
1 files changed, 92 insertions, 0 deletions
diff --git a/test/settings/components/form/BlacklistForm.test.tsx b/test/settings/components/form/BlacklistForm.test.tsx
new file mode 100644
index 0000000..2be5d96
--- /dev/null
+++ b/test/settings/components/form/BlacklistForm.test.tsx
@@ -0,0 +1,92 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import ReactTestRenderer from 'react-test-renderer';
+import ReactTestUtils from 'react-dom/test-utils';
+import BlacklistForm from 'settings/components/form/BlacklistForm'
+
+describe("settings/form/BlacklistForm", () => {
+ describe('render', () => {
+ it('renders BlacklistForm', () => {
+ let root = ReactTestRenderer.create(
+ <BlacklistForm value={['*.slack.com', 'www.google.com/maps']} />,
+ ).root;
+
+ let children = root.children[0].children;
+ expect(children).to.have.lengthOf(3);
+ expect(children[0].children[0].props.value).to.equal('*.slack.com');
+ expect(children[1].children[0].props.value).to.equal('www.google.com/maps');
+ expect(children[2].props.name).to.equal('add');
+ });
+
+ it('renders blank value', () => {
+ let root = ReactTestRenderer.create(<BlacklistForm />).root;
+
+ let children = root.children[0].children;
+ expect(children).to.have.lengthOf(1);
+ expect(children[0].props.name).to.equal('add');
+ });
+ });
+
+ describe('onChange', () => {
+ let container;
+
+ beforeEach(() => {
+ container = document.createElement('div');
+ document.body.appendChild(container);
+ });
+
+ afterEach(() => {
+ document.body.removeChild(container);
+ container = null;
+ });
+
+ it('invokes onChange event on edit', (done) => {
+ ReactTestUtils.act(() => {
+ ReactDOM.render(<BlacklistForm
+ value={['*.slack.com', 'www.google.com/maps*']}
+ onChange={value => {
+ expect(value).to.have.lengthOf(2);
+ expect(value).to.have.members(['gitter.im', 'www.google.com/maps*']);
+ done();
+ }}
+ />, container)
+ });
+
+ let input = document.querySelectorAll('input[type=text]')[0];
+ input.value = 'gitter.im';
+ ReactTestUtils.Simulate.change(input);
+ });
+
+ it('invokes onChange event on delete', (done) => {
+ ReactTestUtils.act(() => {
+ ReactDOM.render(<BlacklistForm
+ value={['*.slack.com', 'www.google.com/maps*']}
+ onChange={value => {
+ expect(value).to.have.lengthOf(1);
+ expect(value).to.have.members(['www.google.com/maps*']);
+ done();
+ }}
+ />, container)
+ });
+
+ let button = document.querySelectorAll('input[type=button]')[0];
+ ReactTestUtils.Simulate.click(button);
+ });
+
+ it('invokes onChange event on add', (done) => {
+ ReactTestUtils.act(() => {
+ ReactDOM.render(<BlacklistForm
+ value={['*.slack.com']}
+ onChange={value => {
+ expect(value).to.have.lengthOf(2);
+ expect(value).to.have.members(['*.slack.com', '']);
+ done();
+ }}
+ />, container);
+ });
+
+ let button = document.querySelector('input[type=button].ui-add-button');
+ ReactTestUtils.Simulate.click(button);
+ });
+ });
+});