klarna/ui-react-components

View on GitHub
tests/Preview.spec.jsx

Summary

Maintainability
B
4 hrs
Test Coverage
import Preview, { PreviewTitle, PreviewLink } from '../components/Preview'
import { equal } from 'assert'
import { renderer } from './helpers'

describe('Preview', () => {
  const render = renderer(Preview)

  describe('default', () => {
    const preview = render()

    it("renders tag 'div'", () => {
      equal('div', preview.type)
    })

    it("has className 'cui__preview'", () => {
      equal('cui__preview', preview.props.className)
    })

    it("contains a div with className 'cui__preview__content'", () => {
      equal('cui__preview__content', preview.props.children.props.className)
    })
  })

  it("allows passing custom 'className' without overriding defaults", () => {
    const preview = render({ className: 'custom' })

    equal('cui__preview custom', preview.props.className)
  })

  it('allows passing children', () => {
    const preview = render({}, 'Test')

    equal('Test', preview.props.children.props.children)
  })
})

describe('PreviewTitle', () => {
  const render = renderer(PreviewTitle)

  describe('default', () => {
    const previewTitle = render()

    it("renders tag 'h2'", () => {
      equal('h2', previewTitle.type)
    })

    it("has className 'cui__preview__title'", () => {
      equal('cui__preview__title', previewTitle.props.className)
    })
  })

  it("allows passing custom 'className' without overriding defaults", () => {
    const previewTitle = render({ className: 'custom' })

    equal('cui__preview__title custom', previewTitle.props.className)
  })

  it('allows passing children', () => {
    const previewTitle = render({}, 'Test')

    equal('Test', previewTitle.props.children)
  })
})

describe('PreviewLink', () => {
  const render = renderer(PreviewLink)
  const link = (component) => component.props.children

  describe('default', () => {
    const previewLink = render()

    it("renders tag 'div'", () => {
      equal('div', previewLink.type)
    })

    it("has className 'cui__preview__footer'", () => {
      equal('cui__preview__footer', previewLink.props.className)
    })

    it('contains link', () => {
      equal('a', link(previewLink).type)
      equal('cui__preview__footer__link', link(previewLink).props.className)
    })
  })

  it("allows passing custom 'className' without overriding link defaults", () => {
    const previewLink = render({ className: 'custom' })

    equal('cui__preview__footer__link custom', link(previewLink).props.className)
  })

  it('allows passing other props to link', () => {
    const previewLink = render({ href: '#test', rel: 'test' })

    equal('#test', link(previewLink).props.href)
    equal('test', link(previewLink).props.rel)
  })

  it('allows passing children', () => {
    const previewLink = render({}, 'Test')

    equal('Test', previewLink.props.children.props.children)
  })
})