@@ -22,6 +22,7 @@ describe('areas API', () => {
2222 let usa : AreaType
2323 let ca : AreaType
2424 let wa : AreaType
25+ let ak : AreaType
2526
2627 beforeAll ( async ( ) => {
2728 ( { server, inMemoryDB } = await setUpServer ( ) )
@@ -38,13 +39,65 @@ describe('areas API', () => {
3839 usa = await areas . addCountry ( 'usa' )
3940 ca = await areas . addArea ( user , 'CA' , usa . metadata . area_id )
4041 wa = await areas . addArea ( user , 'WA' , usa . metadata . area_id )
42+ ak = await areas . addArea ( user , 'AK' , usa . metadata . area_id )
4143 } )
4244
4345 afterAll ( async ( ) => {
4446 await server . stop ( )
4547 await inMemoryDB . close ( )
4648 } )
4749
50+ describe ( 'mutations' , ( ) => {
51+ it ( 'updates sorting order and returns children in order' , async ( ) => {
52+ const updateSortingOrderQuery = `
53+ mutation ($input: [AreaSortingInput]) {
54+ updateAreasSortingOrder(input: $input)
55+ }
56+ `
57+ const updateResponse = await queryAPI ( {
58+ query : updateSortingOrderQuery ,
59+ variables : {
60+ input : [
61+ { areaId : wa . metadata . area_id , leftRightIndex : 3 } ,
62+ { areaId : ca . metadata . area_id , leftRightIndex : 0 } ,
63+ { areaId : ak . metadata . area_id , leftRightIndex : 10 }
64+ ]
65+ } ,
66+ userUuid
67+ } )
68+
69+ expect ( updateResponse . statusCode ) . toBe ( 200 )
70+ const sortingOrderResult = updateResponse . body . data . updateAreasSortingOrder
71+ expect ( sortingOrderResult ) . toHaveLength ( 3 )
72+
73+ const areaChildrenQuery = `
74+ query area($input: ID) {
75+ area(uuid: $input) {
76+ children {
77+ uuid
78+ metadata {
79+ leftRightIndex
80+ }
81+ }
82+ }
83+ }
84+ `
85+
86+ const areaChildrenResponse = await queryAPI ( {
87+ query : areaChildrenQuery ,
88+ variables : { input : usa . metadata . area_id } ,
89+ userUuid
90+ } )
91+
92+ expect ( areaChildrenResponse . statusCode ) . toBe ( 200 )
93+ const areaResult = areaChildrenResponse . body . data . area
94+ // In leftRightIndex order
95+ expect ( areaResult . children [ 0 ] ) . toMatchObject ( { uuid : muuidToString ( ca . metadata . area_id ) , metadata : { leftRightIndex : 0 } } )
96+ expect ( areaResult . children [ 1 ] ) . toMatchObject ( { uuid : muuidToString ( wa . metadata . area_id ) , metadata : { leftRightIndex : 3 } } )
97+ expect ( areaResult . children [ 2 ] ) . toMatchObject ( { uuid : muuidToString ( ak . metadata . area_id ) , metadata : { leftRightIndex : 10 } } )
98+ } )
99+ } )
100+
48101 describe ( 'queries' , ( ) => {
49102 const areaQuery = `
50103 query area($input: ID) {
0 commit comments