代码之家  ›  专栏  ›  技术社区  ›  Felipe Augusto Ak S

无法使用react+jest+datepicker+textmask读取空的属性'selectionend'

  •  6
  • Felipe Augusto Ak S  · 技术社区  · 7 年前

    我有一个正在运行的单元测试,但现在我向我的 react-datepicker ,调用 react-text-mask 我试着模仿它,但它在我跑的时候收到了下面的信息 npm run test 以下内容:

    类型错误:无法读取空的“SelectionEnd”属性

    在object.update(node_modules/react text mask/dist/reacttextmask.js:1:9205)

    at t.value(node_modules/react text mask/dist/reacttextmask.js:1:2431)

    在t.value(node_modules/react text mask/dist/reacttextmask.js:1:2490)

    在commitLifecycles(node_modules/react test renderer/cjs/react test renderer.development.js:6427:22)

    在CommitalLifecycles(node_modules/react test renderer/cjs/react test renderer.development.js:7516:7)

    我的 反应日期选取器 具有 响应文本掩码 以下内容:

    <RCDatePicker
            {...rest}
            locale="pt-BR"
            selected={value}
            onChange={onChange}
            readOnly={readOnly}
            dateFormat={dateFormat}
            minDate={minDays ? moment(baseDate).subtract(minDays, 'days') : undefined}
            maxDate={maxDays ? moment(baseDate).add(maxDays, 'days') : undefined}
            disabled={disabled}
            customInput={<MaskedInput
              mask={[/[0-3]/, /\d/, '/', /[0-1]/, /\d/, '/', /[1-2]/, /\d/, /\d/, /\d/]}
            />}
          >
    

    我的单元测试:

    describe('<DatePicker />', () => {
      it('should have default props', () => {
        const mock = jest.mock('react-text-mask', () => props => <input type="text" {...{ ...props }} />);
        const tree = renderer.create(<DatePicker onChange={Function} />).toJSON()
        jest.spyOn(mock)
    
        expect(tree).toMatchSnapshot()
      })
    })
    
    1 回复  |  直到 7 年前
        1
  •  6
  •   Felipe Augusto Ak S    7 年前

    import React from 'react'
    import renderer from 'react-test-renderer'
    import { DatePicker } from './DatePicker'
    
    jest.mock('react-text-mask', () => props => <input type="text" {...{ ...props }} />)
    
    describe('<DatePicker />', () => {
      it('should have default props', () => {
        const tree = renderer.create(<DatePicker onChange={Function} />).toJSON()
    
        expect(tree).toMatchSnapshot()
      })
    })