0
Fork 0
mirror of https://github.com/logto-io/logto.git synced 2025-01-27 21:39:16 -05:00

chore(test): fix integration tests

This commit is contained in:
Gao Sun 2023-10-23 13:06:55 +08:00
parent 613c0222f8
commit fbe9f7e89a
No known key found for this signature in database
GPG key ID: 13EBE123E4773688
3 changed files with 12 additions and 16 deletions

View file

@ -68,7 +68,7 @@ class UserRelationQueries extends TwoRelationsQueries<typeof Organizations, type
return this.pool.any<UserWithOrganizationRoles>(sql`
select
${users.table}.*,
${this.#aggregateRoles('organization_roles')}
${this.#aggregateRoles()}
from ${this.table}
left join ${users.table}
on ${fields.userId} = ${users.fields.id}
@ -87,9 +87,9 @@ class UserRelationQueries extends TwoRelationsQueries<typeof Organizations, type
* Build the SQL for aggregating the organization roles with basic information (id and name)
* into a JSON array.
*
* @param as The alias of the aggregated roles. Defaults to `roles`.
* @param as The alias of the aggregated roles. Defaults to `organizationRoles`.
*/
#aggregateRoles(as = 'roles') {
#aggregateRoles(as = 'organizationRoles') {
const roles = convertToIdentifiers(OrganizationRoles, true);
return sql`

View file

@ -1,14 +1,8 @@
import { type Role, type Organization } from '@logto/schemas';
import { type Role, type Organization, type OrganizationWithRoles } from '@logto/schemas';
import { authedAdminApi } from './api.js';
import { ApiFactory } from './factory.js';
type RoleEntity = {
id: string;
name: string;
};
type OrganizationWithRoles = Organization & { roles: RoleEntity[] };
class OrganizationApi extends ApiFactory<Organization, { name: string; description?: string }> {
constructor() {
super('organizations');
@ -26,8 +20,10 @@ class OrganizationApi extends ApiFactory<Organization, { name: string; descripti
await authedAdminApi.delete(`${this.path}/${id}/users/${userId}`);
}
async addUserRoles(id: string, userId: string, roleIds: string[]): Promise<void> {
await authedAdminApi.post(`${this.path}/${id}/users/${userId}/roles`, { json: { roleIds } });
async addUserRoles(id: string, userId: string, organizationRoleIds: string[]): Promise<void> {
await authedAdminApi.post(`${this.path}/${id}/users/${userId}/roles`, {
json: { organizationRoleIds },
});
}
async getUserRoles(id: string, userId: string): Promise<Role[]> {

View file

@ -205,10 +205,10 @@ describe('organization APIs', () => {
const organization1WithRoles = organizations.find((org) => org.id === organization1.id);
assert(organization1WithRoles);
expect(organization1WithRoles.id).toBe(organization1.id);
expect(organization1WithRoles.roles).toContainEqual(
expect(organization1WithRoles.organizationRoles).toContainEqual(
expect.objectContaining({ id: role1.id })
);
expect(organization1WithRoles.roles).not.toContainEqual(
expect(organization1WithRoles.organizationRoles).not.toContainEqual(
expect.objectContaining({ id: role2.id })
);
@ -216,10 +216,10 @@ describe('organization APIs', () => {
const organization2WithRoles = organizations.find((org) => org.id === organization2.id);
assert(organization2WithRoles);
expect(organization2WithRoles.id).toBe(organization2.id);
expect(organization2WithRoles.roles).toContainEqual(
expect(organization2WithRoles.organizationRoles).toContainEqual(
expect.objectContaining({ id: role1.id })
);
expect(organization2WithRoles.roles).toContainEqual(
expect(organization2WithRoles.organizationRoles).toContainEqual(
expect.objectContaining({ id: role2.id })
);