@@ -108,7 +108,6 @@ describe("OpenAPI client_credentials OAuth", () => {
108108 openApiPlugin ( { httpClientLayer : clientLayer } ) ,
109109 memorySecretsPlugin ( ) ,
110110 ] as const ;
111- const config = makeTestConfig ( { plugins } ) ;
112111
113112 const now = new Date ( ) ;
114113 const orgScope = Scope . make ( {
@@ -121,6 +120,7 @@ describe("OpenAPI client_credentials OAuth", () => {
121120 name : "alice" ,
122121 createdAt : now ,
123122 } ) ;
123+ const config = makeTestConfig ( { plugins, scopes : [ userScope , orgScope ] } ) ;
124124
125125 const adminExec = yield * createExecutor ( {
126126 ...config ,
@@ -214,6 +214,62 @@ describe("OpenAPI client_credentials OAuth", () => {
214214 namespace : "petstore" ,
215215 oauth2,
216216 } ) ;
217+ const storedSourceRow = yield * Effect . promise ( ( ) =>
218+ config . db . findFirst ( "plugin_storage" , {
219+ where : ( b ) =>
220+ b . and (
221+ b ( "scope_id" , "=" , String ( userScope . id ) ) ,
222+ b ( "plugin_id" , "=" , "openapi" ) ,
223+ b ( "collection" , "=" , "source" ) ,
224+ b ( "key" , "=" , "petstore" ) ,
225+ ) ,
226+ } ) ,
227+ ) ;
228+ const storedData = storedSourceRow ?. data as
229+ | {
230+ readonly config ?: Record < string , unknown > ;
231+ }
232+ | undefined ;
233+ const storedOAuth2 = storedData ?. config ?. oauth2 ;
234+ if (
235+ ! storedSourceRow ||
236+ ! storedData ?. config ||
237+ typeof storedOAuth2 !== "object" ||
238+ storedOAuth2 === null ||
239+ Array . isArray ( storedOAuth2 )
240+ ) {
241+ return yield * new OpenApiClientCredentialsTestSetupError ( {
242+ message : "Expected stored OpenAPI source OAuth config" ,
243+ } ) ;
244+ }
245+ const { authorizationUrl : _authorizationUrl , ...oauth2WithoutAuthorizationUrl } =
246+ storedOAuth2 as Record < string , unknown > ;
247+ yield * Effect . promise ( ( ) =>
248+ config . db . updateMany ( "plugin_storage" , {
249+ where : ( b ) =>
250+ b . and (
251+ b ( "scope_id" , "=" , String ( userScope . id ) ) ,
252+ b ( "plugin_id" , "=" , "openapi" ) ,
253+ b ( "collection" , "=" , "source" ) ,
254+ b ( "key" , "=" , "petstore" ) ,
255+ ) ,
256+ set : {
257+ data : {
258+ ...storedData ,
259+ config : {
260+ ...storedData . config ,
261+ oauth2 : oauth2WithoutAuthorizationUrl ,
262+ } ,
263+ } ,
264+ } ,
265+ } ) ,
266+ ) ;
267+ const sourceAfterLegacyShape = yield * userExec . openapi . getSource (
268+ "petstore" ,
269+ String ( userScope . id ) ,
270+ ) ;
271+ expect ( sourceAfterLegacyShape ?. config . oauth2 ?. authorizationUrl ) . toBeNull ( ) ;
272+
217273 yield * userExec . sources . setBinding (
218274 SetSourceCredentialBindingInput . make ( {
219275 source : { id : "petstore" , scope : userScope . id } ,
0 commit comments