From 63ec77d932fda3800ec160d9bcc92e16551b3988 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Alby?= Date: Tue, 24 May 2022 09:48:18 +0200 Subject: [PATCH] Merge pull request #8083 from overleaf/msm-linked-institution-ids-test Add tests for `linkedInstitutionIds` in `user-email-context` GitOrigin-RevId: 9b8830bf61a2a1aecc44a39c1f390629be796d9b --- .../context/user-email-context.test.tsx | 31 ++++++++++++++----- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/services/web/test/frontend/features/settings/context/user-email-context.test.tsx b/services/web/test/frontend/features/settings/context/user-email-context.test.tsx index e84fa7e4b0..2e0ee7ec44 100644 --- a/services/web/test/frontend/features/settings/context/user-email-context.test.tsx +++ b/services/web/test/frontend/features/settings/context/user-email-context.test.tsx @@ -54,6 +54,7 @@ describe('UserEmailContext', function () { 'baz@overleaf.com': unconfirmedUserData, 'foo@overleaf.com': professionalUserData, }) + expect(result.current.state.data.linkedInstitutionIds).to.have.lengthOf(0) expect(result.current.isInitializing).to.equal(false) expect(result.current.isInitializingSuccess).to.equal(true) @@ -96,29 +97,45 @@ describe('UserEmailContext', function () { describe('getEmails()', function () { beforeEach(async function () { fetchMock.reset() + }) + + it('should set `isLoading === true`', function () { fetchMock.get(/\/user\/emails/, [ { email: 'new@email.com', default: true, }, ]) - }) - - it('should set `isLoading === true`', function () { result.current.getEmails() expect(result.current.state.isLoading).to.be.true }) it('requests a new set of emails', async function () { + const emailData = { + email: 'new@email.com', + default: true, + } + fetchMock.get(/\/user\/emails/, [emailData]) result.current.getEmails() await fetchMock.flush(true) expect(result.current.state.data.byId).to.deep.equal({ - 'new@email.com': { - email: 'new@email.com', - default: true, - }, + 'new@email.com': emailData, }) }) + + it('should populate `linkedInstitutionIds`', async function () { + fetchMock.get(/\/user\/emails/, [ + confirmedUserData, + { ...unconfirmedUserData, samlProviderId: 'saml_provider_1' }, + { ...professionalUserData, samlProviderId: 'saml_provider_2' }, + ]) + const { result } = renderUserEmailsContext() + await fetchMock.flush(true) + expect(result.current.state.data.linkedInstitutionIds).to.deep.equal([ + 'saml_provider_1', + 'saml_provider_2', + ]) + }) }) describe('makePrimary()', function () {