энзим mount.find не работал со стилизованными компонентами - PullRequest
0 голосов
/ 09 апреля 2019

У меня есть компонент, как показано ниже.

Когда есть значок с пиктограммой предупреждения, компонент должен отображаться.Я написал тестовый пример для тестирования этого сценария, и он терпит неудачу, так как нет компонента, хотя я пропускаю значок предупреждения.

Мой компонент

    const DefaultAlert = ({
  icon: alertIcon,
  description,
  title,
  dark,
  required = false,
  ...props
}) => {
  const AlertIcon =
    alertIcon &&
    styled(alertIcon).attrs({
      size: ({ theme: { metrics } }) => metrics.font.normal,
      className: 'alertIcon'
    })`
      transition: all ease 0.25s;
      position: relative;
      fill: none;
      top: -1px;
      cursor: pointer;
      ${({ dark, theme: { colors } }) =>
    dark ? `stroke: ${colors.primaryText}` : ''};
    `
  return (
    <AlertCard required={required}>
      <TitleHolder>
        <IconHolder>
          {alertIcon && <AlertIcon name='AlertIcon' required={required} />}
        </IconHolder>
        <AlertTitle uppercase conden bold small required={required}>
          {title}
        </AlertTitle>
      </TitleHolder>
      <P conden tiny compact>
        {description}
      </P>
    </AlertCard>
  )
}

Тестовый код

export function mountWithTheme (component) {
  mountWithTheme
  return mount(<ThemeProvider theme={theme}>{component}</ThemeProvider>)
}

describe('tests for <DefaultAlert />', () => {
  it('should have <AlertIcon/> when there is alertIcon prop', () => {
    let component = mountWithTheme(
      <DefaultAlert theme={theme} alertIcon={FeatherPlus} />
    )
    const value = component.find('[name="AlertIcon"]')
    expect(value.length).toBe(1)
  })
})

Что здесь не так и как я могу написать контрольный пример для этого сценария?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...