UNPKG

@reduxjs/toolkit

Version:

The official, opinionated, batteries-included toolset for efficient Redux development

38 lines (29 loc) 1.12 kB
import { createSelector } from 'reselect' import { createDraftSafeSelector } from './createDraftSafeSelector' import { produce } from 'immer' type State = { value: number } const selectSelf = (state: State) => state test('handles normal values correctly', () => { const unsafeSelector = createSelector(selectSelf, x => x.value) const draftSafeSelector = createDraftSafeSelector(selectSelf, x => x.value) let state = { value: 1 } expect(unsafeSelector(state)).toBe(1) expect(draftSafeSelector(state)).toBe(1) state = { value: 2 } expect(unsafeSelector(state)).toBe(2) expect(draftSafeSelector(state)).toBe(2) }) test('handles drafts correctly', () => { const unsafeSelector = createSelector(selectSelf, state => state.value) const draftSafeSelector = createDraftSafeSelector( selectSelf, state => state.value ) produce({ value: 1 }, state => { expect(unsafeSelector(state)).toBe(1) expect(draftSafeSelector(state)).toBe(1) state.value = 2 expect(unsafeSelector(state)).toBe(1) expect(draftSafeSelector(state)).toBe(2) }) })