@@ -27,67 +27,70 @@ import {
27
27
28
28
describe ( 'reducer' , ( ) => {
29
29
describe ( '#items()' , ( ) => {
30
- it ( 'should default to an empty array ' , ( ) => {
30
+ it ( 'should default to an empty object ' , ( ) => {
31
31
const state = items ( undefined , { } ) ;
32
32
33
- expect ( state ) . to . eql ( [ ] ) ;
33
+ expect ( state ) . to . eql ( { } ) ;
34
34
} ) ;
35
35
36
- it ( 'should add posts to array' , ( ) => {
37
- const posts = deepFreeze ( [
38
- { ID : 841 , site_ID : 2916284 , global_ID : '3d097cb7c5473c169bba0eb8e3c6cb64' , title : 'Hello World' } ,
39
- { ID : 413 , site_ID : 2916284 , global_ID : '6c831c187ffef321eb43a67761a525a3' , title : 'Ribs & Chicken' }
40
- ] ) ;
41
- const state = items ( undefined , {
36
+ it ( 'should index posts by global ID' , ( ) => {
37
+ const state = items ( null , {
42
38
type : POSTS_RECEIVE ,
43
- posts : posts
39
+ posts : [
40
+ { ID : 841 , site_ID : 2916284 , global_ID : '3d097cb7c5473c169bba0eb8e3c6cb64' , title : 'Hello World' } ,
41
+ { ID : 413 , site_ID : 2916284 , global_ID : '6c831c187ffef321eb43a67761a525a3' , title : 'Ribs & Chicken' }
42
+ ]
44
43
} ) ;
45
44
46
- expect ( state ) . to . eql ( posts ) ;
45
+ expect ( state ) . to . eql ( {
46
+ '3d097cb7c5473c169bba0eb8e3c6cb64' : { ID : 841 , site_ID : 2916284 , global_ID : '3d097cb7c5473c169bba0eb8e3c6cb64' , title : 'Hello World' } ,
47
+ '6c831c187ffef321eb43a67761a525a3' : { ID : 413 , site_ID : 2916284 , global_ID : '6c831c187ffef321eb43a67761a525a3' , title : 'Ribs & Chicken' }
48
+ } ) ;
47
49
} ) ;
48
50
49
51
it ( 'should accumulate posts' , ( ) => {
50
- const original = deepFreeze ( [
51
- { ID : 841 , site_ID : 2916284 , global_ID : '3d097cb7c5473c169bba0eb8e3c6cb64' , title : 'Hello World' }
52
- ] ) ;
52
+ const original = deepFreeze ( {
53
+ '3d097cb7c5473c169bba0eb8e3c6cb64' : { ID : 841 , site_ID : 2916284 , global_ID : '3d097cb7c5473c169bba0eb8e3c6cb64' , title : 'Hello World' }
54
+ } ) ;
53
55
const state = items ( original , {
54
56
type : POSTS_RECEIVE ,
55
57
posts : [ { ID : 413 , site_ID : 2916284 , global_ID : '6c831c187ffef321eb43a67761a525a3' , title : 'Ribs & Chicken' } ]
56
58
} ) ;
57
59
58
- expect ( state ) . to . eql ( [
59
- { ID : 841 , site_ID : 2916284 , global_ID : '3d097cb7c5473c169bba0eb8e3c6cb64' , title : 'Hello World' } ,
60
- { ID : 413 , site_ID : 2916284 , global_ID : '6c831c187ffef321eb43a67761a525a3' , title : 'Ribs & Chicken' }
61
- ] ) ;
60
+ expect ( state ) . to . eql ( {
61
+ '3d097cb7c5473c169bba0eb8e3c6cb64' : { ID : 841 , site_ID : 2916284 , global_ID : '3d097cb7c5473c169bba0eb8e3c6cb64' , title : 'Hello World' } ,
62
+ '6c831c187ffef321eb43a67761a525a3' : { ID : 413 , site_ID : 2916284 , global_ID : '6c831c187ffef321eb43a67761a525a3' , title : 'Ribs & Chicken' }
63
+ } ) ;
62
64
} ) ;
63
65
64
66
it ( 'should override previous post of same ID' , ( ) => {
65
- const original = deepFreeze ( [
66
- { ID : 841 , site_ID : 2916284 , global_ID : '3d097cb7c5473c169bba0eb8e3c6cb64' , title : 'Hello World' }
67
- ] ) ;
67
+ const original = deepFreeze ( {
68
+ '3d097cb7c5473c169bba0eb8e3c6cb64' : { ID : 841 , site_ID : 2916284 , global_ID : '3d097cb7c5473c169bba0eb8e3c6cb64' , title : 'Hello World' }
69
+ } ) ;
68
70
const state = items ( original , {
69
71
type : POSTS_RECEIVE ,
70
- posts : [ { ID : 841 , site_ID : 2916284 , global_ID : '3d097cb7c5473c169bba0eb8e3c6cb64' , title : 'Donuts & Coffee' } ]
72
+ posts : [ { ID : 841 , site_ID : 2916284 , global_ID : '3d097cb7c5473c169bba0eb8e3c6cb64' , title : 'Ribs & Chicken' } ]
73
+ } ) ;
74
+
75
+ expect ( state ) . to . eql ( {
76
+ '3d097cb7c5473c169bba0eb8e3c6cb64' : { ID : 841 , site_ID : 2916284 , global_ID : '3d097cb7c5473c169bba0eb8e3c6cb64' , title : 'Ribs & Chicken' }
71
77
} ) ;
72
- expect ( state ) . to . eql ( [
73
- { ID : 841 , site_ID : 2916284 , global_ID : '3d097cb7c5473c169bba0eb8e3c6cb64' , title : 'Donuts & Coffee' }
74
- ] ) ;
75
78
} ) ;
76
79
77
80
it ( 'never persists state because this is not implemented' , ( ) => {
78
- const original = deepFreeze ( [
79
- { ID : 841 , site_ID : 2916284 , global_ID : '3d097cb7c5473c169bba0eb8e3c6cb64' , title : 'Hello World' }
80
- ] ) ;
81
+ const original = deepFreeze ( {
82
+ '3d097cb7c5473c169bba0eb8e3c6cb64' : { ID : 841 , site_ID : 2916284 , global_ID : '3d097cb7c5473c169bba0eb8e3c6cb64' , title : 'Hello World' }
83
+ } ) ;
81
84
const state = items ( original , { type : SERIALIZE } ) ;
82
- expect ( state ) . to . eql ( [ ] ) ;
85
+ expect ( state ) . to . eql ( { } ) ;
83
86
} ) ;
84
87
85
88
it ( 'never loads persisted state because this is not implemented' , ( ) => {
86
- const original = deepFreeze ( [
87
- { ID : 841 , site_ID : 2916284 , global_ID : '3d097cb7c5473c169bba0eb8e3c6cb64' , title : 'Hello World' }
88
- ] ) ;
89
+ const original = deepFreeze ( {
90
+ '3d097cb7c5473c169bba0eb8e3c6cb64' : { ID : 841 , site_ID : 2916284 , global_ID : '3d097cb7c5473c169bba0eb8e3c6cb64' , title : 'Hello World' }
91
+ } ) ;
89
92
const state = items ( original , { type : DESERIALIZE } ) ;
90
- expect ( state ) . to . eql ( [ ] ) ;
93
+ expect ( state ) . to . eql ( { } ) ;
91
94
} ) ;
92
95
} ) ;
93
96
0 commit comments