mirror of
https://github.com/tusen-ai/naive-ui.git
synced 2024-12-21 04:50:14 +08:00
feat(input): add test (#1177)
This commit is contained in:
parent
94f9545056
commit
5fa436b6a0
@ -5,6 +5,7 @@ describe('n-input', () => {
|
|||||||
it('should work with import on demand', () => {
|
it('should work with import on demand', () => {
|
||||||
mount(NInput)
|
mount(NInput)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('should call input callbacks', async () => {
|
it('should call input callbacks', async () => {
|
||||||
const onUpdateValue = jest.fn()
|
const onUpdateValue = jest.fn()
|
||||||
const wrapper = mount(NInput, {
|
const wrapper = mount(NInput, {
|
||||||
@ -16,6 +17,7 @@ describe('n-input', () => {
|
|||||||
await wrapper.find('input').trigger('input')
|
await wrapper.find('input').trigger('input')
|
||||||
expect(onUpdateValue).toHaveBeenCalledWith('cool')
|
expect(onUpdateValue).toHaveBeenCalledWith('cool')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('`loading` prop', async () => {
|
it('`loading` prop', async () => {
|
||||||
const wrapper = mount(NInput)
|
const wrapper = mount(NInput)
|
||||||
expect(wrapper.find('.n-input__suffix').exists()).toBe(false)
|
expect(wrapper.find('.n-input__suffix').exists()).toBe(false)
|
||||||
@ -27,6 +29,67 @@ describe('n-input', () => {
|
|||||||
expect(wrapper.find('.n-base-loading__icon').exists()).toBe(true)
|
expect(wrapper.find('.n-base-loading__icon').exists()).toBe(true)
|
||||||
wrapper.unmount()
|
wrapper.unmount()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('should work with `clearable` prop', async () => {
|
||||||
|
const wrapper = mount(NInput)
|
||||||
|
expect(wrapper.find('.n-base-clear').exists()).not.toBe(true)
|
||||||
|
await wrapper.setProps({
|
||||||
|
clearable: true
|
||||||
|
})
|
||||||
|
expect(wrapper.find('.n-base-clear').exists()).toBe(true)
|
||||||
|
wrapper.unmount()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should work with `disabled` prop', async () => {
|
||||||
|
const wrapper = mount(NInput)
|
||||||
|
expect(wrapper.find('.n-input').classes()).not.toContain(
|
||||||
|
'n-input--disabled'
|
||||||
|
)
|
||||||
|
await wrapper.setProps({
|
||||||
|
disabled: true
|
||||||
|
})
|
||||||
|
expect(wrapper.find('.n-input').classes()).toContain('n-input--disabled')
|
||||||
|
wrapper.unmount()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should work with `placeholder` prop', async () => {
|
||||||
|
const wrapper = mount(NInput)
|
||||||
|
expect(wrapper.find('input').attributes('placeholder')).toBe('Please Input')
|
||||||
|
await wrapper.setProps({
|
||||||
|
placeholder: 'test-placeholder'
|
||||||
|
})
|
||||||
|
expect(wrapper.find('input').attributes('placeholder')).toBe(
|
||||||
|
'test-placeholder'
|
||||||
|
)
|
||||||
|
wrapper.unmount()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should work with `readonly` prop', async () => {
|
||||||
|
const wrapper = mount(NInput)
|
||||||
|
expect(wrapper.find('input').attributes('readonly')).not.toBe('')
|
||||||
|
|
||||||
|
await wrapper.setProps({ readonly: true })
|
||||||
|
expect(wrapper.find('input').attributes('readonly')).toBe('')
|
||||||
|
wrapper.unmount()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should work with `round` prop', async () => {
|
||||||
|
const wrapper = mount(NInput)
|
||||||
|
expect(wrapper.find('.n-input').classes()).not.toContain('n-input--round')
|
||||||
|
|
||||||
|
await wrapper.setProps({ round: true })
|
||||||
|
expect(wrapper.find('.n-input').classes()).toContain('n-input--round')
|
||||||
|
wrapper.unmount()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should work with `size` prop', async () => {
|
||||||
|
;(['small', 'medium', 'large'] as const).forEach((size) => {
|
||||||
|
const wrapper = mount(NInput, { props: { size: size } })
|
||||||
|
expect(wrapper.find('.n-input').attributes('style')).toMatchSnapshot()
|
||||||
|
wrapper.unmount()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
it('should work with `type` prop', async () => {
|
it('should work with `type` prop', async () => {
|
||||||
const wrapper = mount(NInput)
|
const wrapper = mount(NInput)
|
||||||
await wrapper.setProps({ type: 'text' })
|
await wrapper.setProps({ type: 'text' })
|
||||||
|
7
src/input/tests/__snapshots__/Input.spec.tsx.snap
Normal file
7
src/input/tests/__snapshots__/Input.spec.tsx.snap
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
|
exports[`n-input should work with \`size\` prop 1`] = `"--bezier: cubic-bezier(.4, 0, .2, 1); --count-text-color: rgb(158, 164, 170); --color: rgba(255, 255, 255, 1); --font-size: 14px; --border-radius: 3px; --height: 28px; --padding-left: 10px; --padding-right: 10px; --text-color: rgb(51, 54, 57); --caret-color: #18a058; --text-decoration-color: rgb(51, 54, 57); --border: 1px solid rgb(224, 224, 230); --border-disabled: 1px solid rgb(224, 224, 230); --border-hover: 1px solid #36ad6a; --border-focus: 1px solid #36ad6a; --placeholder-color: rgba(194, 194, 194, 1); --placeholder-color-disabled: rgba(209, 209, 209, 1); --icon-size: 16px; --line-height-textarea: 1.6; --color-disabled: rgb(250, 250, 252); --color-focus: rgba(255, 255, 255, 1); --text-color-disabled: rgba(194, 194, 194, 1); --box-shadow-focus: 0 0 0 2px rgba(24, 160, 88, 0.2); --loading-color: #18a058; --caret-color-warning: #f0a020; --color-focus-warning: rgba(255, 255, 255, 1); --box-shadow-focus-warning: 0 0 0 2px rgba(240, 160, 32, 0.2); --border-warning: 1px solid #f0a020; --border-focus-warning: 1px solid #fcb040; --border-hover-warning: 1px solid #fcb040; --loading-color-warning: #f0a020; --caret-color-error: #d03050; --color-focus-error: rgba(255, 255, 255, 1); --box-shadow-focus-error: 0 0 0 2px rgba(208, 48, 80, 0.2); --border-error: 1px solid #d03050; --border-focus-error: 1px solid #de576d; --border-hover-error: 1px solid #de576d; --loading-color-error: #d03050; --clear-color: rgba(194, 194, 194, 1); --clear-size: 16px; --clear-color-hover: rgba(146, 146, 146, 1); --clear-color-pressed: rgba(175, 175, 175, 1); --icon-color: rgba(194, 194, 194, 1); --icon-color-hover: rgba(146, 146, 146, 1); --icon-color-pressed: rgba(175, 175, 175, 1); --icon-color-disabled: rgba(209, 209, 209, 1); --suffix-text-color: rgb(51, 54, 57);"`;
|
||||||
|
|
||||||
|
exports[`n-input should work with \`size\` prop 2`] = `"--bezier: cubic-bezier(.4, 0, .2, 1); --count-text-color: rgb(158, 164, 170); --color: rgba(255, 255, 255, 1); --font-size: 14px; --border-radius: 3px; --height: 34px; --padding-left: 12px; --padding-right: 12px; --text-color: rgb(51, 54, 57); --caret-color: #18a058; --text-decoration-color: rgb(51, 54, 57); --border: 1px solid rgb(224, 224, 230); --border-disabled: 1px solid rgb(224, 224, 230); --border-hover: 1px solid #36ad6a; --border-focus: 1px solid #36ad6a; --placeholder-color: rgba(194, 194, 194, 1); --placeholder-color-disabled: rgba(209, 209, 209, 1); --icon-size: 16px; --line-height-textarea: 1.6; --color-disabled: rgb(250, 250, 252); --color-focus: rgba(255, 255, 255, 1); --text-color-disabled: rgba(194, 194, 194, 1); --box-shadow-focus: 0 0 0 2px rgba(24, 160, 88, 0.2); --loading-color: #18a058; --caret-color-warning: #f0a020; --color-focus-warning: rgba(255, 255, 255, 1); --box-shadow-focus-warning: 0 0 0 2px rgba(240, 160, 32, 0.2); --border-warning: 1px solid #f0a020; --border-focus-warning: 1px solid #fcb040; --border-hover-warning: 1px solid #fcb040; --loading-color-warning: #f0a020; --caret-color-error: #d03050; --color-focus-error: rgba(255, 255, 255, 1); --box-shadow-focus-error: 0 0 0 2px rgba(208, 48, 80, 0.2); --border-error: 1px solid #d03050; --border-focus-error: 1px solid #de576d; --border-hover-error: 1px solid #de576d; --loading-color-error: #d03050; --clear-color: rgba(194, 194, 194, 1); --clear-size: 16px; --clear-color-hover: rgba(146, 146, 146, 1); --clear-color-pressed: rgba(175, 175, 175, 1); --icon-color: rgba(194, 194, 194, 1); --icon-color-hover: rgba(146, 146, 146, 1); --icon-color-pressed: rgba(175, 175, 175, 1); --icon-color-disabled: rgba(209, 209, 209, 1); --suffix-text-color: rgb(51, 54, 57);"`;
|
||||||
|
|
||||||
|
exports[`n-input should work with \`size\` prop 3`] = `"--bezier: cubic-bezier(.4, 0, .2, 1); --count-text-color: rgb(158, 164, 170); --color: rgba(255, 255, 255, 1); --font-size: 15px; --border-radius: 3px; --height: 40px; --padding-left: 14px; --padding-right: 14px; --text-color: rgb(51, 54, 57); --caret-color: #18a058; --text-decoration-color: rgb(51, 54, 57); --border: 1px solid rgb(224, 224, 230); --border-disabled: 1px solid rgb(224, 224, 230); --border-hover: 1px solid #36ad6a; --border-focus: 1px solid #36ad6a; --placeholder-color: rgba(194, 194, 194, 1); --placeholder-color-disabled: rgba(209, 209, 209, 1); --icon-size: 16px; --line-height-textarea: 1.6; --color-disabled: rgb(250, 250, 252); --color-focus: rgba(255, 255, 255, 1); --text-color-disabled: rgba(194, 194, 194, 1); --box-shadow-focus: 0 0 0 2px rgba(24, 160, 88, 0.2); --loading-color: #18a058; --caret-color-warning: #f0a020; --color-focus-warning: rgba(255, 255, 255, 1); --box-shadow-focus-warning: 0 0 0 2px rgba(240, 160, 32, 0.2); --border-warning: 1px solid #f0a020; --border-focus-warning: 1px solid #fcb040; --border-hover-warning: 1px solid #fcb040; --loading-color-warning: #f0a020; --caret-color-error: #d03050; --color-focus-error: rgba(255, 255, 255, 1); --box-shadow-focus-error: 0 0 0 2px rgba(208, 48, 80, 0.2); --border-error: 1px solid #d03050; --border-focus-error: 1px solid #de576d; --border-hover-error: 1px solid #de576d; --loading-color-error: #d03050; --clear-color: rgba(194, 194, 194, 1); --clear-size: 16px; --clear-color-hover: rgba(146, 146, 146, 1); --clear-color-pressed: rgba(175, 175, 175, 1); --icon-color: rgba(194, 194, 194, 1); --icon-color-hover: rgba(146, 146, 146, 1); --icon-color-pressed: rgba(175, 175, 175, 1); --icon-color-disabled: rgba(209, 209, 209, 1); --suffix-text-color: rgb(51, 54, 57);"`;
|
Loading…
Reference in New Issue
Block a user