diff --git a/components/input/__tests__/__snapshots__/index.test.tsx.snap b/components/input/__tests__/__snapshots__/index.test.tsx.snap
new file mode 100644
index 0000000..9c907be
--- /dev/null
+++ b/components/input/__tests__/__snapshots__/index.test.tsx.snap
@@ -0,0 +1,1031 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Input should be work with icon 1`] = `
+"
test-icon
test-icon
"
+`;
+
+exports[`Input should be work with label 1`] = `
+"
label
label
"
+`;
+
+exports[`Input should work with different sizes 1`] = `
+"
"
+`;
+
+exports[`Input should work with different status 1`] = `
+"
"
+`;
diff --git a/components/input/__tests__/index.test.tsx b/components/input/__tests__/index.test.tsx
new file mode 100644
index 0000000..5220bf7
--- /dev/null
+++ b/components/input/__tests__/index.test.tsx
@@ -0,0 +1,125 @@
+import React from 'react'
+import { mount } from 'enzyme'
+import { Input } from 'components'
+import { nativeEvent } from 'tests/utils'
+
+describe('Input', () => {
+ it('should render correctly', () => {
+ const wrapper = mount()
+ expect(() => wrapper.unmount()).not.toThrow()
+ })
+
+ it('should work with different sizes', () => {
+ const wrapper = mount(
+
+
+
+
+
+
+ )
+ expect(wrapper.html()).toMatchSnapshot()
+ })
+
+ it('should work with different status', () => {
+ const wrapper = mount(
+
+
+
+
+
+ )
+ expect(wrapper.html()).toMatchSnapshot()
+ })
+
+ it('should be work with label', () => {
+ const wrapper = mount(
+
+
+
+ Block Label
+
+ )
+ expect(wrapper.html()).toMatchSnapshot()
+ })
+ it('should be work with icon', () => {
+ const wrapper = mount(
+