@@ -26,6 +26,8 @@ describe('The cascaded persist of a resource', () => {
2626
2727 const productResource = Resource . create ( 1 , 'product' , { price : 2300 } ) ;
2828 const image = Resource . create ( null , 'image' , { src : 'some/image.png' } ) ;
29+ const thumb = Resource . create ( '2' , 'image' , { src : 'some/image2.png' } ) ;
30+ const author = Resource . create ( 2 , 'person' , { name : 'A great author' } ) ;
2931
3032 const coverStory = Resource . create ( null , 'text' , {
3133 text : 'A tale of mystery and wonder.' ,
@@ -41,6 +43,8 @@ describe('The cascaded persist of a resource', () => {
4143 const book = Resource . create ( 1 , 'book' , {
4244 title : 'A great book' ,
4345 product : productResource ,
46+ thumb,
47+ author,
4448 } , {
4549 product : {
4650 resource : 'product' ,
@@ -52,6 +56,16 @@ describe('The cascaded persist of a resource', () => {
5256 cardinality : 'one-to-one' ,
5357 many : false ,
5458 } ,
59+ thumb : {
60+ cardinality : 'one-to-one' ,
61+ many : false ,
62+ resource : 'image' ,
63+ } ,
64+ author : {
65+ cardinality : 'many-to-one' ,
66+ many : false ,
67+ resource : 'person' ,
68+ } ,
5569 } ) ;
5670
5771 book . data = {
@@ -66,11 +80,11 @@ describe('The cascaded persist of a resource', () => {
6680
6781 set . persistCascadeResource ( book ) ;
6882
69- expect ( set . tasks ) . toHaveLength ( 6 ) ;
83+ expect ( set . tasks ) . toHaveLength ( 9 ) ;
7084
7185 expect ( set . tasks [ 0 ] . payload ) . toBe ( book ) ;
7286 expect ( set . tasks [ 0 ] . type ) . toEqual ( 'update' ) ;
73- expect ( set . tasks [ 0 ] . related ) . toHaveLength ( 1 ) ;
87+ expect ( set . tasks [ 0 ] . related ) . toHaveLength ( 3 ) ;
7488 expect ( set . tasks [ 0 ] . dependencies ) . toHaveLength ( 1 ) ;
7589 expect ( set . tasks [ 0 ] . dependencies [ 0 ] . type ) . toEqual ( 'create' ) ;
7690 expect ( set . tasks [ 0 ] . dependencies [ 0 ] . payload ) . toEqual ( coverStory ) ;
@@ -85,33 +99,52 @@ describe('The cascaded persist of a resource', () => {
8599 expect ( set . tasks [ 1 ] . dependencies [ 0 ] . type ) . toEqual ( 'create' ) ;
86100 expect ( set . tasks [ 1 ] . dependencies [ 0 ] . payload ) . toEqual ( coverStory ) ;
87101
88- expect ( set . tasks [ 2 ] . payload ) . toBe ( productResource ) ;
89- expect ( set . tasks [ 2 ] . type ) . toEqual ( 'update' ) ;
90- expect ( set . tasks [ 2 ] . related ) . toHaveLength ( 0 ) ;
102+ expect ( set . tasks [ 2 ] . context ) . toBe ( book ) ;
103+ expect ( set . tasks [ 2 ] . type ) . toEqual ( 'relation' ) ;
91104 expect ( set . tasks [ 2 ] . dependencies ) . toHaveLength ( 0 ) ;
105+ expect ( set . tasks [ 2 ] . related ) . toHaveLength ( 0 ) ;
106+ expect ( set . tasks [ 2 ] . payload . relation ) . toEqual ( 'thumb' ) ;
107+ expect ( set . tasks [ 2 ] . payload . resources ) . toHaveLength ( 0 ) ;
108+
109+ expect ( set . tasks [ 3 ] . context ) . toBe ( book ) ;
110+ expect ( set . tasks [ 3 ] . type ) . toEqual ( 'relation' ) ;
111+ expect ( set . tasks [ 3 ] . dependencies ) . toHaveLength ( 0 ) ;
112+ expect ( set . tasks [ 3 ] . related ) . toHaveLength ( 0 ) ;
113+ expect ( set . tasks [ 3 ] . payload . relation ) . toEqual ( 'author' ) ;
114+ expect ( set . tasks [ 3 ] . payload . resources ) . toHaveLength ( 0 ) ;
92115
93- expect ( set . tasks [ 3 ] . payload ) . toBe ( coverStory ) ;
94- expect ( set . tasks [ 3 ] . type ) . toEqual ( 'create' ) ;
95- expect ( set . tasks [ 3 ] . related ) . toHaveLength ( 1 ) ;
96- expect ( set . tasks [ 3 ] . related [ 0 ] . type ) . toEqual ( 'relation' ) ;
97- expect ( set . tasks [ 3 ] . related [ 0 ] . payload . relation ) . toEqual ( 'image' ) ;
98- expect ( set . tasks [ 3 ] . related [ 0 ] . payload . resources [ 0 ] ) . toBe ( image ) ;
99- expect ( set . tasks [ 3 ] . dependencies ) . toHaveLength ( 1 ) ;
100- expect ( set . tasks [ 3 ] . dependencies [ 0 ] . type ) . toEqual ( 'create' ) ;
101- expect ( set . tasks [ 3 ] . dependencies [ 0 ] . payload ) . toEqual ( image ) ;
102-
103- expect ( set . tasks [ 4 ] . context ) . toBe ( coverStory ) ;
104- expect ( set . tasks [ 4 ] . type ) . toEqual ( 'relation' ) ;
105- expect ( set . tasks [ 4 ] . dependencies ) . toHaveLength ( 2 ) ;
106- expect ( set . tasks [ 4 ] . dependencies [ 0 ] . type ) . toEqual ( 'create' ) ;
107- expect ( set . tasks [ 4 ] . dependencies [ 0 ] . payload ) . toEqual ( coverStory ) ;
108- expect ( set . tasks [ 4 ] . dependencies [ 1 ] . type ) . toEqual ( 'create' ) ;
109- expect ( set . tasks [ 4 ] . dependencies [ 1 ] . payload ) . toEqual ( image ) ;
116+ expect ( set . tasks [ 4 ] . payload ) . toBe ( productResource ) ;
117+ expect ( set . tasks [ 4 ] . type ) . toEqual ( 'update' ) ;
110118 expect ( set . tasks [ 4 ] . related ) . toHaveLength ( 0 ) ;
119+ expect ( set . tasks [ 4 ] . dependencies ) . toHaveLength ( 0 ) ;
111120
112- expect ( set . tasks [ 5 ] . payload ) . toBe ( image ) ;
121+ expect ( set . tasks [ 5 ] . payload ) . toBe ( coverStory ) ;
113122 expect ( set . tasks [ 5 ] . type ) . toEqual ( 'create' ) ;
114- expect ( set . tasks [ 5 ] . related ) . toHaveLength ( 0 ) ;
115- expect ( set . tasks [ 5 ] . dependencies ) . toHaveLength ( 0 ) ;
123+ expect ( set . tasks [ 5 ] . related ) . toHaveLength ( 1 ) ;
124+ expect ( set . tasks [ 5 ] . related [ 0 ] . type ) . toEqual ( 'relation' ) ;
125+ expect ( set . tasks [ 5 ] . related [ 0 ] . payload . relation ) . toEqual ( 'image' ) ;
126+ expect ( set . tasks [ 5 ] . related [ 0 ] . payload . resources [ 0 ] ) . toBe ( image ) ;
127+ expect ( set . tasks [ 5 ] . dependencies ) . toHaveLength ( 1 ) ;
128+ expect ( set . tasks [ 5 ] . dependencies [ 0 ] . type ) . toEqual ( 'create' ) ;
129+ expect ( set . tasks [ 5 ] . dependencies [ 0 ] . payload ) . toEqual ( image ) ;
130+
131+ expect ( set . tasks [ 6 ] . context ) . toBe ( coverStory ) ;
132+ expect ( set . tasks [ 6 ] . type ) . toEqual ( 'relation' ) ;
133+ expect ( set . tasks [ 6 ] . dependencies ) . toHaveLength ( 2 ) ;
134+ expect ( set . tasks [ 6 ] . dependencies [ 0 ] . type ) . toEqual ( 'create' ) ;
135+ expect ( set . tasks [ 6 ] . dependencies [ 0 ] . payload ) . toEqual ( coverStory ) ;
136+ expect ( set . tasks [ 6 ] . dependencies [ 1 ] . type ) . toEqual ( 'create' ) ;
137+ expect ( set . tasks [ 6 ] . dependencies [ 1 ] . payload ) . toEqual ( image ) ;
138+ expect ( set . tasks [ 6 ] . related ) . toHaveLength ( 0 ) ;
139+
140+ expect ( set . tasks [ 7 ] . payload ) . toBe ( image ) ;
141+ expect ( set . tasks [ 7 ] . type ) . toEqual ( 'create' ) ;
142+ expect ( set . tasks [ 7 ] . related ) . toHaveLength ( 0 ) ;
143+ expect ( set . tasks [ 7 ] . dependencies ) . toHaveLength ( 0 ) ;
144+
145+ expect ( set . tasks [ 8 ] . payload ) . toBe ( thumb ) ;
146+ expect ( set . tasks [ 8 ] . type ) . toEqual ( 'delete' ) ;
147+ expect ( set . tasks [ 8 ] . related ) . toHaveLength ( 0 ) ;
148+ expect ( set . tasks [ 8 ] . dependencies ) . toHaveLength ( 0 ) ;
116149 } ) ;
117150} ) ;
0 commit comments