@@ -14,6 +14,7 @@ import {
1414 workspace ,
1515} from '@sim/db/schema'
1616import { deleteWorkspaceFixture , insertWorkspaceFixture } from '@sim/db/testing/workspace-fixtures'
17+ import { createSessionPrincipal } from '@sim/testing/factories/principal.factory'
1718import { jsonResponse } from '@sim/testing/helpers/http'
1819import { posthogServerMock } from '@sim/testing/mocks/posthog-server.mock'
1920import { generateId } from '@sim/utils/id'
@@ -52,6 +53,7 @@ vi.mock('@/lib/core/security/input-validation.server', async (importOriginal) =>
5253 }
5354} )
5455
56+ import { prepareWorkloadIdentity } from '@/lib/credentials/application/prepare-workload-identity'
5557import { updateCredentialRecord } from '@/lib/credentials/orchestration'
5658import { createCredentialRecord } from '@/lib/credentials/orchestration/credential-create'
5759import {
@@ -174,14 +176,29 @@ describe('holding an unsaved keyless subject', () => {
174176 const held = await resolvePendingWorkloadIdentitySubject ( issuer , { kind : 'new' } , tenDaysAgo )
175177 pinnedSubjects . add ( held . subject )
176178
177- const renewed = await resolvePendingWorkloadIdentitySubject ( issuer , {
178- kind : 'renew' ,
179- subject : held . subject ,
179+ const renewed = await prepareWorkloadIdentity . execute ( {
180+ principal : createSessionPrincipal ( { userId } ) ,
181+ input : {
182+ workspaceId,
183+ provider : 'databricks' ,
184+ subjectRequest : { kind : 'renew' , subject : held . subject } ,
185+ } ,
180186 } )
181- const saved = await create ( 'Renewed lakehouse' , keyless ( renewed . subject ) )
187+ if ( ! renewed . available ) throw new Error ( 'Keyless signing should be available in this suite' )
188+ const saved = await create (
189+ 'Renewed lakehouse' ,
190+ JSON . stringify ( {
191+ authType : 'oidc_federation' ,
192+ host : HOST ,
193+ clientId : CLIENT_ID ,
194+ subject : renewed . subject ,
195+ subjectProof : renewed . subjectProof ,
196+ } )
197+ )
182198
183- expect ( renewed . issuedAt . getTime ( ) ) . toBe ( tenDaysAgo . getTime ( ) )
184- expect ( renewed . heldUntil . getTime ( ) ) . toBeGreaterThan (
199+ expect ( renewed . subject ) . toBe ( held . subject )
200+ expect ( renewed . subjectIssuedAt ) . toBe ( tenDaysAgo . toISOString ( ) )
201+ expect ( Date . parse ( renewed . subjectHeldUntil ) ) . toBeGreaterThan (
185202 Date . now ( ) + PENDING_SUBJECT_HOLD_MS - DAY_MS
186203 )
187204 expect ( saved . success ) . toBe ( true )
0 commit comments