diff --git a/src/handlers/users.test.ts b/src/handlers/users.test.ts index cb86e11..b15b354 100644 --- a/src/handlers/users.test.ts +++ b/src/handlers/users.test.ts @@ -33,15 +33,14 @@ const matrixUser: MatrixUser = { } const nonce = 'test-nonce' +const mac = 'be0537407ab3c82de908c5763185556e98a7211c' test('mapping users', () => { expect(mapUser(rcUser)).toStrictEqual(matrixUser) }) test('generating correct hmac', () => { - expect(generateHmac({ ...matrixUser, nonce })).toStrictEqual( - 'be0537407ab3c82de908c5763185556e98a7211c' - ) + expect(generateHmac({ ...matrixUser, nonce })).toStrictEqual(mac) }) test('creating users', async () => { @@ -61,14 +60,11 @@ test('creating users', async () => { }) expect(mockedAxios.get).toHaveBeenCalledWith('/_synapse/admin/v1/register') - expect(mockedAxios.post).toHaveBeenCalled() - // The following test fails with an incorrect return value, for whatever reason. - // Probably because of mutated call logs in jest due to the `delete` or sth. - // expect(mockedAxios.post).toHaveBeenCalledWith('/_synapse/admin/v1/register', { - // ...matrixUser, - // nonce, - // mac: 'be0537407ab3c82de908c5763185556e98a7211c', - // }) + expect(mockedAxios.post).toHaveBeenCalledWith('/_synapse/admin/v1/register', { + ...matrixUser, + nonce, + mac, + }) expect(mockedStorage.createMembership).toHaveBeenCalledWith( rcUser.__rooms[0], diff --git a/src/handlers/users.ts b/src/handlers/users.ts index b6a59bc..85680fb 100644 --- a/src/handlers/users.ts +++ b/src/handlers/users.ts @@ -76,16 +76,13 @@ async function parseUserMemberships(rcUser: RcUser): Promise { export async function createUser(rcUser: RcUser): Promise { const user = mapUser(rcUser) - user.nonce = await getUserRegistrationNonce() - user.mac = generateHmac(user) - const accessToken = await registerUser(user) + const nonce = await getUserRegistrationNonce() + const mac = generateHmac({ ...user, nonce }) + const accessToken = await registerUser({ ...user, nonce, mac }) user.user_id = accessToken.user_id user.access_token = accessToken.access_token log.info(`User ${rcUser.username} created:`, user) - delete user.nonce - delete user.mac - await parseUserMemberships(rcUser) return user