source: node_modules/@reduxjs/toolkit/src/tests/createDraftSafeSelector.test.ts

Last change on this file was a762898, checked in by istevanoska <ilinastevanoska@…>, 5 months ago

Added visualizations

  • Property mode set to 100644
File size: 1.4 KB
Line 
1import { createDraftSafeSelector, createSelector } from '@reduxjs/toolkit'
2import { produce } from 'immer'
3
4type State = { value: number }
5const selectSelf = (state: State) => state
6
7test('handles normal values correctly', () => {
8 const unsafeSelector = createSelector(selectSelf, (x) => x.value)
9 const draftSafeSelector = createDraftSafeSelector(selectSelf, (x) => x.value)
10
11 let state = { value: 1 }
12 expect(unsafeSelector(state)).toBe(1)
13 expect(draftSafeSelector(state)).toBe(1)
14 expect(draftSafeSelector).toHaveProperty('resultFunc')
15 expect(draftSafeSelector).toHaveProperty('memoizedResultFunc')
16 expect(draftSafeSelector).toHaveProperty('lastResult')
17 expect(draftSafeSelector).toHaveProperty('dependencies')
18 expect(draftSafeSelector).toHaveProperty('recomputations')
19 expect(draftSafeSelector).toHaveProperty('resetRecomputations')
20 expect(draftSafeSelector).toHaveProperty('clearCache')
21
22 state = { value: 2 }
23 expect(unsafeSelector(state)).toBe(2)
24 expect(draftSafeSelector(state)).toBe(2)
25})
26
27test('handles drafts correctly', () => {
28 const unsafeSelector = createSelector(selectSelf, (state) => state.value)
29 const draftSafeSelector = createDraftSafeSelector(
30 selectSelf,
31 (state) => state.value,
32 )
33
34 produce({ value: 1 }, (state) => {
35 expect(unsafeSelector(state)).toBe(1)
36 expect(draftSafeSelector(state)).toBe(1)
37
38 state.value = 2
39
40 expect(unsafeSelector(state)).toBe(1)
41 expect(draftSafeSelector(state)).toBe(2)
42 })
43})
Note: See TracBrowser for help on using the repository browser.