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 () {