File tree Expand file tree Collapse file tree 3 files changed +33
-1
lines changed Expand file tree Collapse file tree 3 files changed +33
-1
lines changed Original file line number Diff line number Diff line change @@ -168,6 +168,22 @@ describe('updateById() ->', () => {
168168 expect ( result ) . have . deep . property ( 'record.someDynamic' , '1.1.1.1' ) ;
169169 expect ( beforeMutationId ) . to . equal ( user1 . id ) ;
170170 } ) ;
171+
172+ it ( '`beforeRecordMutate` may reject operation' , async ( ) => {
173+ const result = updateById ( UserModel , UserTypeComposer ) . resolve ( {
174+ args : { record : { _id : user1 . id , name : 'new name' } } ,
175+ context : { readOnly : true } ,
176+ beforeRecordMutate : ( record , rp ) => {
177+ if ( rp . context . readOnly ) {
178+ return Promise . reject ( new Error ( 'Denied due context ReadOnly' ) ) ;
179+ }
180+ return record ;
181+ } ,
182+ } ) ;
183+ await expect ( result ) . be . rejectedWith ( Error , 'Denied due context ReadOnly' ) ;
184+ const exist = await UserModel . collection . findOne ( { _id : user1 . _id } ) ;
185+ expect ( exist . name ) . to . equal ( user1 . name ) ;
186+ } ) ;
171187 } ) ;
172188
173189 describe ( 'Resolver.getOutputType()' , ( ) => {
Original file line number Diff line number Diff line change @@ -193,6 +193,22 @@ describe('updateOne() ->', () => {
193193 expect ( result ) . have . deep . property ( 'record.someDynamic' , '1.1.1.1' ) ;
194194 expect ( beforeMutationId ) . to . equal ( user1 . id ) ;
195195 } ) ;
196+
197+ it ( '`beforeRecordMutate` may reject operation' , async ( ) => {
198+ const result = updateOne ( UserModel , UserTypeComposer ) . resolve ( {
199+ args : { filter : { _id : user1 . id } , record : { name : 'new name' } } ,
200+ context : { readOnly : true } ,
201+ beforeRecordMutate : ( record , rp ) => {
202+ if ( rp . context . readOnly ) {
203+ return Promise . reject ( new Error ( 'Denied due context ReadOnly' ) ) ;
204+ }
205+ return record ;
206+ } ,
207+ } ) ;
208+ await expect ( result ) . be . rejectedWith ( Error , 'Denied due context ReadOnly' ) ;
209+ const exist = await UserModel . collection . findOne ( { _id : user1 . _id } ) ;
210+ expect ( exist . name ) . to . equal ( user1 . name ) ;
211+ } ) ;
196212 } ) ;
197213
198214 describe ( 'Resolver.getOutputType()' , ( ) => {
Original file line number Diff line number Diff line change @@ -107,7 +107,7 @@ export default function updateById(
107107 // save changes to DB
108108 . then ( ( doc ) => {
109109 if ( ! doc ) {
110- return Promise . reject ( 'Document not found' ) ;
110+ return Promise . reject ( new Error ( 'Document not found' ) ) ;
111111 }
112112 if ( recordData ) {
113113 doc . set ( recordData ) ;
You can’t perform that action at this time.
0 commit comments