Merge pull request #3718 from overleaf/jel-emailHasLicence

Update emailHasLicence for reconfirmation and SAML

GitOrigin-RevId: 58daf538d9f0a7db46bb3c1e21f8ca04df095446
This commit is contained in:
Thomas
2021-03-16 03:04:36 +00:00
committed by Copybot
parent 18eea6d024
commit 1c54a15e42
4 changed files with 44 additions and 50 deletions
@@ -1025,11 +1025,12 @@ describe('UserEmails', function() {
password: userHelper.getDefaultPassword()
})
const institutionId = MockV1Api.createInstitution({
commonsAccount: true,
ssoEnabled: false,
maxConfirmationMonths
})
const domain = 'example-affiliation.com'
MockV1Api.addInstitutionDomain(institutionId, domain)
MockV1Api.addInstitutionDomain(institutionId, domain, { confirmed: true })
email1 = `leonard@${domain}`
email2 = `mccoy@${domain}`
@@ -1053,24 +1054,37 @@ describe('UserEmails', function() {
)
})
it('should flag inReconfirmNotificationPeriod for all affiliations in period', async function() {
const response = await userHelper.request.get('/user/emails')
expect(response.statusCode).to.equal(200)
const fullEmails = JSON.parse(response.body)
expect(fullEmails.length).to.equal(4)
expect(fullEmails[0].affiliation).to.not.exist
expect(
fullEmails[1].affiliation.inReconfirmNotificationPeriod
).to.equal(true)
expect(fullEmails[1].affiliation.pastReconfirmDate).to.equal(false)
expect(
fullEmails[2].affiliation.inReconfirmNotificationPeriod
).to.equal(true)
expect(fullEmails[2].affiliation.pastReconfirmDate).to.equal(false)
expect(
fullEmails[3].affiliation.inReconfirmNotificationPeriod
).to.equal(true)
expect(fullEmails[3].affiliation.pastReconfirmDate).to.equal(true)
describe('when all affiliations in notification period or past reconfirm date', function() {
it('should flag inReconfirmNotificationPeriod for all affiliations in period', async function() {
const response = await userHelper.request.get('/user/emails')
expect(response.statusCode).to.equal(200)
const fullEmails = JSON.parse(response.body)
expect(fullEmails.length).to.equal(4)
expect(fullEmails[0].affiliation).to.not.exist
expect(
fullEmails[1].affiliation.inReconfirmNotificationPeriod
).to.equal(true)
expect(
fullEmails[2].affiliation.inReconfirmNotificationPeriod
).to.equal(true)
expect(
fullEmails[3].affiliation.inReconfirmNotificationPeriod
).to.equal(true)
})
it('should set pastReconfirmDate and emailHasInstitutionLicence:false for lapsed confirmations', async function() {
const response = await userHelper.request.get('/user/emails')
expect(response.statusCode).to.equal(200)
const fullEmails = JSON.parse(response.body)
expect(fullEmails.length).to.equal(4)
expect(fullEmails[0].affiliation).to.not.exist
expect(fullEmails[1].affiliation.pastReconfirmDate).to.equal(false)
expect(fullEmails[1].emailHasInstitutionLicence).to.equal(true)
expect(fullEmails[2].affiliation.pastReconfirmDate).to.equal(false)
expect(fullEmails[2].emailHasInstitutionLicence).to.equal(true)
expect(fullEmails[3].affiliation.pastReconfirmDate).to.equal(true)
expect(fullEmails[3].emailHasInstitutionLicence).to.equal(false)
})
})
describe('should flag emails before their confirmation expires, but within the notification period', function() {
@@ -212,7 +212,13 @@ class MockV1Api extends AbstractMockApi {
affiliation.institution.confirmed = !!domainData.confirmed
if (institutionData.commonsAccount) {
affiliation.licence = 'free'
if (
institutionData.commonsAccount &&
(!institutionData.sso_enabled ||
(institutionData.sso_enabled &&
affiliation.cached_entitlement === true))
) {
affiliation.licence = 'pro_plus'
}
return affiliation