Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/forms / src / __tests__ / toggle.test.tsx
Size: Mime:
import './_setup'
import * as React from 'react'
import { render, cleanup, fireEvent } from 'react-testing-library'
import { OneFormState, OneObserverForm } from '../new-forms/OneForm/OneForm'
import { PluginsContext } from '../new-forms/plugins/PluginsContext'
import { TogglePlugin } from '../new-forms/plugins/TogglePlugin'
import { SerializedObj } from '../new-forms/typings'

describe('@skava/forms - toggle', () => {
  afterEach(cleanup)

  it('toggle/radio/checkbox', () => {
    const inputsList = [
      {
        propertyName: 'eh',
        type: 'toggle',
        label: 'eh!',
        isSelected: false,
      },
    ]
    const formState = new OneFormState().setInputsList(inputsList)
    const ehState = formState.inputsList[0]

    const handleSubmit = (serialized: SerializedObj) => {
      expect(serialized.eh).toEqual(true)
    }

    const view = (
      <PluginsContext.Provider value={[TogglePlugin]}>
        <OneObserverForm state={formState} onSubmit={handleSubmit} />
      </PluginsContext.Provider>
    )

    expect(ehState.isSelected).toEqual(false)
    const { container, getByText } = render(view)
    fireEvent.click(getByText('eh!'))
    expect(ehState.isSelected).toEqual(true)
  })
})