bemusic/bemuse

View on GitHub
bemuse/src/app/entities/MusicSearchText.spec.js

Summary

Maintainability
A
3 hrs
Test Coverage
import * as MusicSearchText from './MusicSearchText'
import { given, shouldEqual } from 'circumstance'

describe('MusicSearchText', function () {
  it('is initially blank', () =>
    given(MusicSearchText.initialState)
      .then(MusicSearchText.searchText, shouldEqual(''))
      .and(MusicSearchText.inputText, shouldEqual('')))

  it('should set inputText when typing', () =>
    given(MusicSearchText.initialState)
      .when(MusicSearchText.handleTextType('hello'))
      .then(MusicSearchText.searchText, shouldEqual(''))
      .and(MusicSearchText.inputText, shouldEqual('hello')))

  it('should copy inputText to searchText when debounced', () =>
    given(MusicSearchText.initialState)
      .and(MusicSearchText.handleTextType('hello'))
      .when(MusicSearchText.handleDebounce)
      .then(MusicSearchText.searchText, shouldEqual('hello'))
      .and(MusicSearchText.inputText, shouldEqual('hello')))

  it('should allow setting text, changing both', () =>
    given(MusicSearchText.initialState)
      .when(MusicSearchText.setText('meow'))
      .then(MusicSearchText.searchText, shouldEqual('meow'))
      .and(MusicSearchText.inputText, shouldEqual('meow')))
})