@@ -8,7 +8,15 @@ import type {
88import { http , HttpResponse , type JsonBodyType } from 'msw' ;
99import { setupWorker } from 'msw/browser' ;
1010
11- import { fapiClient , type FapiEnvironment , fapiEnvironment , fapiPage , fapiToken } from './fapi' ;
11+ import {
12+ fapiClient ,
13+ type FapiEnvironment ,
14+ fapiEnvironment ,
15+ fapiMembership ,
16+ fapiOrganization ,
17+ fapiPage ,
18+ fapiToken ,
19+ } from './fapi' ;
1220
1321export const PUBLISHABLE_KEY = 'pk_live_Y2xlcmsuYWJjZWYuMTIzNDUucHJvZC5sY2xjbGVyay5jb20k' ;
1422const FAPI = 'https://clerk.abcef.12345.prod.lclclerk.com' ;
@@ -141,6 +149,7 @@ export function serveFapi(seed: FakeFapiSeed = {}): FakeFapiState {
141149 }
142150 const accepted = { ...invitation , status : 'accepted' as const } ;
143151 state . invitations = state . invitations . map ( i => ( i . id === accepted . id ? accepted : i ) ) ;
152+ state . memberships = [ ...state . memberships , fapiMembership ( fapiOrganization ( invitation . public_organization_data ) ) ] ;
144153 return envelope ( accepted , state . client ) ;
145154 } ) ,
146155 http . post ( fapiUrl ( '/v1/me/organization_suggestions/:id/accept' ) , ( { params } ) => {
@@ -163,12 +172,26 @@ export interface HeldRequests {
163172 fail : ( code ?: string ) => void ;
164173}
165174
175+ const unsettledHolds = new Set < string > ( ) ;
176+
177+ export function takeUnsettledHolds ( ) : string [ ] {
178+ const holds = [ ...unsettledHolds ] ;
179+ unsettledHolds . clear ( ) ;
180+ return holds ;
181+ }
182+
166183export function holdRequests ( method : 'get' | 'post' , path : string ) : HeldRequests {
167184 const requests : Request [ ] = [ ] ;
168- let settle : ( response : Response | undefined ) => void = ( ) => { } ;
185+ const hold = `${ method . toUpperCase ( ) } ${ path } ` ;
186+ let resolveGate : ( response : Response | undefined ) => void = ( ) => { } ;
169187 const gate = new Promise < Response | undefined > ( resolve => {
170- settle = resolve ;
188+ resolveGate = resolve ;
171189 } ) ;
190+ const settle = ( response : Response | undefined ) => {
191+ unsettledHolds . delete ( hold ) ;
192+ resolveGate ( response ) ;
193+ } ;
194+ unsettledHolds . add ( hold ) ;
172195
173196 worker . use (
174197 http [ method ] ( fapiUrl ( path ) , ( { request } ) => {
0 commit comments