@@ -7,8 +7,6 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'
77
88const mocks = vi . hoisted ( ( ) => ( {
99 coalesceLocally : vi . fn ( ) ,
10- clientCredentialMinter : vi . fn ( ) ,
11- decryptSecret : vi . fn ( ) ,
1210 getFreshestSlackChain : vi . fn ( ) ,
1311 getRecentTerminalError : vi . fn ( ) ,
1412 logger : {
@@ -35,15 +33,6 @@ vi.mock('@/lib/concurrency/leader-lock', () => ({
3533 withLeaderLock : mocks . withLeaderLock ,
3634} ) )
3735
38- vi . mock ( '@/lib/core/security/encryption' , ( ) => ( {
39- decryptSecret : mocks . decryptSecret ,
40- } ) )
41-
42- vi . mock ( '@/lib/credentials/client-credential-accounts/server' , ( ) => ( {
43- getClientCredentialAccountMinter : ( ) => mocks . clientCredentialMinter ,
44- parseClientCredentialAccountSecretBlob : ( decrypted : string ) => JSON . parse ( decrypted ) ,
45- } ) )
46-
4736vi . mock ( '@/lib/oauth/instagram' , ( ) => ( {
4837 isInstagramProvider : vi . fn ( ( ) => false ) ,
4938 shouldProactivelyRefreshInstagramToken : vi . fn ( ( ) => false ) ,
@@ -75,10 +64,7 @@ vi.mock('@/lib/oauth/terminal-errors', () => ({
7564 markCredentialDead : vi . fn ( ) ,
7665} ) )
7766
78- import {
79- resolveCredentialTokenBundle ,
80- resolveServiceAccountToken ,
81- } from '@/lib/oauth/credential-service'
67+ import { resolveCredentialTokenBundle } from '@/lib/oauth/credential-service'
8268
8369const RAW_CREDENTIAL_ID = 'credential-raw-secret-id'
8470const RAW_ACCOUNT_ID = 'account-raw-secret-id'
@@ -214,51 +200,3 @@ describe('resolveCredentialTokenBundle selector privacy', () => {
214200 expect ( slack . logs ) . toContain ( RAW_PROVIDER_ERROR )
215201 } )
216202} )
217-
218- describe ( 'resolveServiceAccountToken Oracle Fusion cache' , ( ) => {
219- beforeEach ( ( ) => {
220- vi . clearAllMocks ( )
221- resetDbChainMock ( )
222- mocks . coalesceLocally . mockImplementation (
223- async ( _key : string , producer : ( ) => Promise < unknown > ) => producer ( )
224- )
225- mocks . decryptSecret . mockImplementation ( async ( encrypted : string ) => ( {
226- decrypted : JSON . stringify ( {
227- type : 'client_credential_account' ,
228- providerId : 'oracle-fusion-service-account' ,
229- clientId : 'integration-user' ,
230- clientSecret : encrypted ,
231- orgId : 'https://vision.fa.us2.oraclecloud.com' ,
232- } ) ,
233- } ) )
234- mocks . clientCredentialMinter . mockImplementation ( async ( fields : { clientSecret : string } ) => ( {
235- accessToken : `basic-${ fields . clientSecret } ` ,
236- expiresInSeconds : 300 ,
237- instanceUrl : 'https://vision.fa.us2.oraclecloud.com' ,
238- } ) )
239- } )
240-
241- it ( 'reuses Basic material for five minutes and invalidates it on encrypted-secret rotation' , async ( ) => {
242- const credentialId = 'oracle-fusion-cache-test'
243- const providerId = 'oracle-fusion-service-account'
244- const encryptedV1 = 'encrypted-v1-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
245- const encryptedV2 = 'encrypted-v2-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'
246-
247- queueTableRows ( credential , [ { encryptedServiceAccountKey : encryptedV1 } ] )
248- await expect ( resolveServiceAccountToken ( credentialId , providerId ) ) . resolves . toMatchObject ( {
249- accessToken : `basic-${ encryptedV1 } ` ,
250- } )
251-
252- queueTableRows ( credential , [ { encryptedServiceAccountKey : encryptedV1 } ] )
253- await expect ( resolveServiceAccountToken ( credentialId , providerId ) ) . resolves . toMatchObject ( {
254- accessToken : `basic-${ encryptedV1 } ` ,
255- } )
256- expect ( mocks . clientCredentialMinter ) . toHaveBeenCalledTimes ( 1 )
257-
258- queueTableRows ( credential , [ { encryptedServiceAccountKey : encryptedV2 } ] )
259- await expect ( resolveServiceAccountToken ( credentialId , providerId ) ) . resolves . toMatchObject ( {
260- accessToken : `basic-${ encryptedV2 } ` ,
261- } )
262- expect ( mocks . clientCredentialMinter ) . toHaveBeenCalledTimes ( 2 )
263- } )
264- } )
0 commit comments