UNPKG

violet-paginator

Version:

Display, paginate, sort, filter, and update items from the server. violet-paginator is a complete list management library for react/redux applications.

93 lines (74 loc) 2.42 kB
import React from 'react' import expect from 'expect' import { mount } from 'enzyme' import configureMockStore from 'redux-mock-store' import { defaultPaginator } from '../../src/reducer' const mockStore = configureMockStore() export function decorate(decorator, initialSettings = {}) { const Component = () => false const Decorated = decorator(Component) const store = mockStore({ recipes: defaultPaginator.merge(initialSettings) }) const wrapper = mount( <Decorated store={store} listId="recipes" /> ) before(function () { this.component = wrapper.find(Component) }) } export function behavesLikeADataRow() { it('injects the record', function () { expect(this.component.props().record).toBeA('object') }) it('injects updating', function () { expect(this.component.props().updating).toBeA('boolean') }) it('injects removing', function () { expect(this.component.props().removing).toBeA('boolean') }) } export function behavesLikeAFlipper() { it('injects hasPreviousPage', function () { expect(this.component.props().hasPreviousPage).toBeA('boolean') }) it('injects hasNextPage', function () { expect(this.component.props().hasNextPage).toBeA('boolean') }) } export function behavesLikeAPaginator() { behavesLikeAFlipper() it('injects currentPage', function () { expect(this.component.props().currentPage).toBeA('number') }) it('injects totalPages', function () { expect(this.component.props().totalPages).toBeA('number') }) } export function behavesLikeADataGrid() { it('injects results', function () { expect(this.component.props().results).toBeA(Array) }) it('injects isLoading', function () { expect(this.component.props().isLoading).toBeA('boolean') }) } export function behavesLikeALeanDataGrid() { it('injects ids', function () { expect(this.component.props().ids).toBeA(Array) }) it('injects isLoading', function () { expect(this.component.props().isLoading).toBeA('boolean') }) } export function behavesLikeAPageSizer() { it('injects pageSize', function () { expect(this.component.props().pageSize).toBeA('number') }) } export function behavesLikeASorter() { it('injects sort', function () { expect(this.component.props().sort).toBeA('string') }) it('injects sortReverse', function () { expect(this.component.props().sortReverse).toBeA('boolean') }) }