File tree Expand file tree Collapse file tree 3 files changed +49
-1
lines changed
packages/crates-io-msw/handlers Expand file tree Collapse file tree 3 files changed +49
-1
lines changed Original file line number Diff line number Diff line change 11import getUser from './users/get.js' ;
2+ import resend from './users/resend.js' ;
23import updateUser from './users/update.js' ;
34
4- export default [ getUser , updateUser ] ;
5+ export default [ getUser , updateUser , resend ] ;
Original file line number Diff line number Diff line change 1+ import { http , HttpResponse } from 'msw' ;
2+
3+ import { getSession } from '../../utils/session.js' ;
4+
5+ export default http . put ( '/api/v1/users/:user_id/resend' , ( { params } ) => {
6+ let { user } = getSession ( ) ;
7+ if ( ! user ) {
8+ return HttpResponse . json ( { errors : [ { detail : 'must be logged in to perform that action' } ] } , { status : 403 } ) ;
9+ }
10+
11+ if ( user . id . toString ( ) !== params . user_id ) {
12+ return HttpResponse . json ( { errors : [ { detail : 'current user does not match requested user' } ] } , { status : 400 } ) ;
13+ }
14+
15+ // let's pretend that we're sending an email here... :D
16+
17+ return HttpResponse . json ( { ok : true } ) ;
18+ } ) ;
Original file line number Diff line number Diff line change 1+ import { assert , test } from 'vitest' ;
2+
3+ import { db } from '../../index.js' ;
4+
5+ test ( 'returns `ok`' , async function ( ) {
6+ let user = db . user . create ( ) ;
7+ db . mswSession . create ( { user } ) ;
8+
9+ let response = await fetch ( `/api/v1/users/${ user . id } /resend` , { method : 'PUT' } ) ;
10+ assert . strictEqual ( response . status , 200 ) ;
11+ assert . deepEqual ( await response . json ( ) , { ok : true } ) ;
12+ } ) ;
13+
14+ test ( 'returns 403 when not logged in' , async function ( ) {
15+ let user = db . user . create ( ) ;
16+
17+ let response = await fetch ( `/api/v1/users/${ user . id } /resend` , { method : 'PUT' } ) ;
18+ assert . strictEqual ( response . status , 403 ) ;
19+ assert . deepEqual ( await response . json ( ) , { errors : [ { detail : 'must be logged in to perform that action' } ] } ) ;
20+ } ) ;
21+
22+ test ( 'returns 400 when requesting the wrong user id' , async function ( ) {
23+ let user = db . user . create ( ) ;
24+ db . mswSession . create ( { user } ) ;
25+
26+ let response = await fetch ( `/api/v1/users/wrong-id/resend` , { method : 'PUT' } ) ;
27+ assert . strictEqual ( response . status , 400 ) ;
28+ assert . deepEqual ( await response . json ( ) , { errors : [ { detail : 'current user does not match requested user' } ] } ) ;
29+ } ) ;
You can’t perform that action at this time.
0 commit comments