mirror of
https://github.com/logto-io/logto.git
synced 2025-03-24 22:41:28 -05:00
test: add default resource integration test
This commit is contained in:
parent
c933bf58f7
commit
e8ed876878
4 changed files with 29 additions and 1 deletions
|
@ -40,6 +40,7 @@ export const mockResource: Resource = {
|
|||
name: 'management api',
|
||||
indicator: 'logto.dev/api',
|
||||
accessTokenTtl: 3600,
|
||||
isDefault: false,
|
||||
};
|
||||
|
||||
export const mockResource2: Resource = {
|
||||
|
@ -48,6 +49,7 @@ export const mockResource2: Resource = {
|
|||
name: 'management api',
|
||||
indicator: 'logto.dev/api',
|
||||
accessTokenTtl: 3600,
|
||||
isDefault: false,
|
||||
};
|
||||
|
||||
export const mockResource3: Resource = {
|
||||
|
@ -56,6 +58,7 @@ export const mockResource3: Resource = {
|
|||
name: 'management api',
|
||||
indicator: 'logto.dev/api',
|
||||
accessTokenTtl: 3600,
|
||||
isDefault: false,
|
||||
};
|
||||
|
||||
export const mockScope: Scope = {
|
||||
|
|
|
@ -101,6 +101,7 @@ describe('resource routes', () => {
|
|||
id: 'randomId',
|
||||
name,
|
||||
indicator,
|
||||
isDefault: false,
|
||||
accessTokenTtl,
|
||||
scopes: [],
|
||||
});
|
||||
|
@ -157,7 +158,7 @@ describe('resource routes', () => {
|
|||
});
|
||||
});
|
||||
|
||||
it('PATCH /resources/:id should throw with invalid propreties', async () => {
|
||||
it('PATCH /resources/:id should throw with invalid properties', async () => {
|
||||
const response = await resourceRequest.patch('/resources/foo').send({ name: 12 });
|
||||
expect(response.status).toEqual(400);
|
||||
});
|
||||
|
|
|
@ -34,3 +34,8 @@ export const updateResource = async (
|
|||
|
||||
export const deleteResource = async (resourceId: string) =>
|
||||
authedAdminApi.delete(`resources/${resourceId}`);
|
||||
|
||||
export const setDefaultResource = async (resourceId: string, isDefault = true) =>
|
||||
authedAdminApi
|
||||
.patch(`resources/${resourceId}/is-default`, { json: { isDefault } })
|
||||
.json<Resource>();
|
||||
|
|
|
@ -7,6 +7,7 @@ import {
|
|||
getResources,
|
||||
updateResource,
|
||||
deleteResource,
|
||||
setDefaultResource,
|
||||
} from '#src/api/index.js';
|
||||
import { createResponseWithCode } from '#src/helpers/admin-tenant.js';
|
||||
import { generateResourceIndicator, generateResourceName } from '#src/utils.js';
|
||||
|
@ -124,4 +125,22 @@ describe('admin console api resources', () => {
|
|||
const response = await deleteResource('dummy_id').catch((error: unknown) => error);
|
||||
expect(response instanceof HTTPError && response.response.statusCode === 404).toBe(true);
|
||||
});
|
||||
|
||||
it('be able to set only one default api resource', async () => {
|
||||
const [resource1, resource2] = await Promise.all([
|
||||
createResource(generateResourceName(), generateResourceIndicator()),
|
||||
createResource(generateResourceName(), generateResourceIndicator()),
|
||||
]);
|
||||
|
||||
await setDefaultResource(resource1.id);
|
||||
await setDefaultResource(resource2.id);
|
||||
|
||||
const resources = await getResources();
|
||||
const defaultData = resources.filter(({ isDefault }) => isDefault);
|
||||
|
||||
expect(defaultData).toHaveLength(1);
|
||||
expect(defaultData[0]?.id).toBe(resource2.id);
|
||||
|
||||
await Promise.all([deleteResource(resource1.id), deleteResource(resource2.id)]);
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Add table
Reference in a new issue