Skip to content

Commit f265ea9

Browse files
authored
feat(test): add test cases for PAT organization token (#7438)
1 parent a7e9257 commit f265ea9

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

packages/integration-tests/src/tests/api/oidc/token-exchange/personal-access-token.test.ts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { buildOrganizationUrn } from '@logto/core-kit';
12
import { ApplicationType, GrantType, type Resource } from '@logto/schemas';
23
import { formUrlEncodedHeaders } from '@logto/shared';
34

@@ -10,6 +11,7 @@ import {
1011
} from '#src/api/application.js';
1112
import { createResource, deleteResource } from '#src/api/resource.js';
1213
import { createUserByAdmin } from '#src/helpers/index.js';
14+
import { OrganizationApiTest } from '#src/helpers/organization.js';
1315
import { generatePassword, generateUsername, getAccessTokenPayload } from '#src/utils.js';
1416

1517
const tokenType = 'urn:logto:token-type:personal_access_token';
@@ -201,4 +203,29 @@ describe('Token Exchange (Personal Access Token)', () => {
201203
})
202204
).rejects.toThrow();
203205
});
206+
207+
it('should be able to exchange an organization token', async () => {
208+
const organizationApi = new OrganizationApiTest();
209+
const organization = await organizationApi.create({ name: 'foo' });
210+
await organizationApi.addUsers(organization.id, [testUserId]);
211+
212+
const body = await oidcApi
213+
.post('token', {
214+
headers: {
215+
...formUrlEncodedHeaders,
216+
Authorization: authorizationHeader,
217+
},
218+
body: new URLSearchParams({
219+
grant_type: GrantType.TokenExchange,
220+
subject_token: testToken,
221+
subject_token_type: tokenType,
222+
organization_id: organization.id,
223+
}),
224+
})
225+
.json<{ access_token: string }>();
226+
227+
const payload = getAccessTokenPayload(body.access_token);
228+
expect(payload).toHaveProperty('aud', buildOrganizationUrn(organization.id));
229+
expect(payload).toHaveProperty('sub', testUserId);
230+
});
204231
});

0 commit comments

Comments
 (0)