Skip to content

Commit 182991a

Browse files
committed
refactor: rebase master branch
1 parent 1ed8c0a commit 182991a

File tree

2 files changed

+17
-13
lines changed

2 files changed

+17
-13
lines changed

packages/core/src/libraries/user.ts

+9-9
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
/* eslint-disable max-lines */
12
import type { BindMfa, CreateUser, MfaVerification, Scope, User } from '@logto/schemas';
23
import { MfaFactor, RoleType, Users, UsersPasswordEncryptionMethod } from '@logto/schemas';
34
import { generateStandardShortId, generateStandardId } from '@logto/shared';
@@ -122,15 +123,14 @@ export const createUserLibrary = (queries: Queries) => {
122123
set: Partial<OmitAutoSetFields<CreateUser>>,
123124
jsonbMode?: 'replace' | 'merge'
124125
) => {
126+
const { primaryPhone, ...rest } = set;
125127
const validPhoneNumber = conditional(
126-
'primaryPhone' in set &&
127-
typeof set.primaryPhone === 'string' &&
128-
getValidPhoneNumber(set.primaryPhone)
128+
typeof primaryPhone === 'string' && getValidPhoneNumber(primaryPhone)
129129
);
130130

131131
return updateUserByIdQuery(
132132
id,
133-
{ ...set, ...conditional(validPhoneNumber && { primaryPhone: validPhoneNumber }) },
133+
{ ...rest, ...conditional(validPhoneNumber && { primaryPhone: validPhoneNumber }) },
134134
jsonbMode
135135
);
136136
};
@@ -147,10 +147,9 @@ export const createUserLibrary = (queries: Queries) => {
147147

148148
assertThat(parameterRoles.length === roleNames.length, 'role.default_role_missing');
149149

150+
const { primaryPhone, ...rest } = data;
150151
const validPhoneNumber = conditional(
151-
'primaryPhone' in data &&
152-
typeof data.primaryPhone === 'string' &&
153-
getValidPhoneNumber(data.primaryPhone)
152+
typeof primaryPhone === 'string' && getValidPhoneNumber(primaryPhone)
154153
);
155154

156155
return pool.transaction(async (connection) => {
@@ -159,7 +158,7 @@ export const createUserLibrary = (queries: Queries) => {
159158
});
160159

161160
const user = await insertUserQuery({
162-
...data,
161+
...rest,
163162
...conditional(validPhoneNumber && { primaryPhone: validPhoneNumber }),
164163
});
165164
const roles = deduplicateByKey([...parameterRoles, ...defaultRoles], 'id');
@@ -173,7 +172,7 @@ export const createUserLibrary = (queries: Queries) => {
173172

174173
const provisionOrganizations = async (): Promise<readonly string[]> => {
175174
// Just-in-time organization provisioning
176-
const userEmailDomain = data.primaryEmail?.split('@')[1];
175+
const userEmailDomain = rest.primaryEmail?.split('@')[1];
177176
// TODO: Remove this check when launching
178177
if (EnvSet.values.isDevFeaturesEnabled && userEmailDomain) {
179178
const organizationQueries = new OrganizationQueries(connection);
@@ -368,3 +367,4 @@ export const createUserLibrary = (queries: Queries) => {
368367
updateUserById,
369368
};
370369
};
370+
/* eslint-enable max-lines */

packages/core/src/routes/admin-user/mfa-verifications.test.ts

+8-4
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
mockUserTotpMfaVerification,
99
mockUserWithMfaVerifications,
1010
} from '#src/__mocks__/index.js';
11+
import { type InsertUserResult } from '#src/libraries/user.js';
1112
import type Libraries from '#src/tenants/Libraries.js';
1213
import type Queries from '#src/tenants/Queries.js';
1314
import { MockTenant, type Partial2 } from '#src/test-utils/tenant.js';
@@ -44,10 +45,13 @@ const mockLibraries = {
4445
users: {
4546
generateUserId: jest.fn(async () => 'fooId'),
4647
insertUser: jest.fn(
47-
async (user: CreateUser): Promise<User> => ({
48-
...mockUser,
49-
...removeUndefinedKeys(user), // No undefined values will be returned from database
50-
})
48+
async (user: CreateUser): Promise<InsertUserResult> => [
49+
{
50+
...mockUser,
51+
...removeUndefinedKeys(user), // No undefined values will be returned from database
52+
},
53+
{ organizationIds: [] },
54+
]
5155
),
5256
updateUserById: jest.fn(
5357
async (_, data: Partial<CreateUser>): Promise<User> => ({

0 commit comments

Comments
 (0)