77// but it would NOT surface the "msteams.sso" label in the error message.
88import http from "node:http" ;
99import { afterEach , describe , expect , it , vi } from "vitest" ;
10- import { createMSTeamsSsoTokenStoreMemory } from "./sso-token-store.js" ;
10+ import {
11+ makeMSTeamsSsoTokenStoreKey ,
12+ type MSTeamsSsoStoredToken ,
13+ type MSTeamsSsoTokenStore ,
14+ } from "./sso-token-store.js" ;
1115import { type MSTeamsSsoFetch , handleSigninTokenExchangeInvoke } from "./sso.js" ;
1216
1317// ---------------------------------------------------------------------------
@@ -19,6 +23,21 @@ type FakeServer = {
1923 close : ( ) => Promise < void > ;
2024} ;
2125
26+ function createMemorySsoTokenStore ( ) : MSTeamsSsoTokenStore {
27+ const tokens = new Map < string , MSTeamsSsoStoredToken > ( ) ;
28+ return {
29+ async get ( { connectionName, userId } ) {
30+ return tokens . get ( makeMSTeamsSsoTokenStoreKey ( connectionName , userId ) ) ?? null ;
31+ } ,
32+ async save ( token ) {
33+ tokens . set ( makeMSTeamsSsoTokenStoreKey ( token . connectionName , token . userId ) , { ...token } ) ;
34+ } ,
35+ async remove ( { connectionName, userId } ) {
36+ return tokens . delete ( makeMSTeamsSsoTokenStoreKey ( connectionName , userId ) ) ;
37+ } ,
38+ } ;
39+ }
40+
2241/**
2342 * Starts a loopback HTTP server on a random port and returns its base URL.
2443 * The caller is responsible for closing it after each test.
@@ -43,7 +62,7 @@ function startFakeServer(
4362}
4463
4564function createSsoDepsForServer ( baseUrl : string ) {
46- const tokenStore = createMSTeamsSsoTokenStoreMemory ( ) ;
65+ const tokenStore = createMemorySsoTokenStore ( ) ;
4766 const tokenProvider = {
4867 getAccessToken : vi . fn ( async ( ) => "fake-bearer-token" ) ,
4968 } ;
0 commit comments