From 91e02b6c9b8750c3caea2c023c3fc6d538837546 Mon Sep 17 00:00:00 2001 From: Khaled FERJANI Date: Fri, 31 Jan 2025 11:53:14 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=A7=AA=20chore:=20add=20store-invite=20te?= =?UTF-8?q?sts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../matrix-identity-server/src/index.test.ts | 44 ++++++++++++++++++- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/packages/matrix-identity-server/src/index.test.ts b/packages/matrix-identity-server/src/index.test.ts index 0d2472f1..05c5345f 100644 --- a/packages/matrix-identity-server/src/index.test.ts +++ b/packages/matrix-identity-server/src/index.test.ts @@ -14,6 +14,8 @@ import defaultConfig from './__testData__/registerConf.json' import IdServer from './index' import { type Config } from './types' import { fillPoliciesDB } from './terms/index.post' +import { SmsService } from './utils/sms-service' + jest.mock('node-fetch', () => jest.fn()) const sendMailMock = jest.fn() jest.mock('nodemailer', () => ({ @@ -22,6 +24,16 @@ jest.mock('nodemailer', () => ({ })) })) +const mockSend = jest.fn().mockResolvedValue(undefined) +const mockSmsService = { + send: mockSend +} as unknown as jest.Mocked + +// 2. Mock the SMS service class +jest.mock('./utils/sms-service', () => ({ + SmsService: jest.fn().mockImplementation(() => mockSmsService) +})) + process.env.TWAKE_IDENTITY_SERVER_CONF = './src/__testData__/registerConf.json' let idServer: IdServer @@ -1388,15 +1400,43 @@ describe.skip('Use configuration file', () => { room_id: '!room:matrix.org', sender: '@dwho:matrix.org' }) - console.log(response.body) expect(response.statusCode).toBe(200) - // TODO : add call to smsMock when it will be implemented + expect(mockSend).toHaveBeenCalled() expect(response.body).toHaveProperty('display_name') expect(response.body.display_name).not.toBe('33612345678') expect(response.body).toHaveProperty('public_keys') expect(response.body).toHaveProperty('token') expect(response.body.token).toMatch(/^[a-zA-Z0-9]{64}$/) }) + + it('should accept invitation link', async () => { + const mockResponse = Promise.resolve({ + ok: false, + status: 400, + json: () => { + return { + errcode: 'M_INVALID_PEPPER', + error: 'Unknown or invalid pepper - has it been rotated?' + } + } + }) + // @ts-expect-error mock is unknown + fetch.mockImplementation(async () => await mockResponse) + await mockResponse + const response = await request(app) + .post('/_matrix/identity/v2/store-invite') + .set('Authorization', `Bearer ${validToken}`) + .set('Accept', 'application/json') + .send({ + phone: '33612345678', + medium: 'msisdn', + room_id: '!room:matrix.org', + sender: '@dwho:matrix.org', + invitation_link: 'https://example.com' + }) + + expect(mockSend).toHaveBeenCalledWith('33612345678', expect.anything()) + }) }) describe.skip('/_matrix/identity/v2/sign-ed25519 ', () => {