diff --git a/client/src/pages/email-sign-up.tsx b/client/src/pages/email-sign-up.tsx
index 7df6f055e1..91c9a032a0 100644
--- a/client/src/pages/email-sign-up.tsx
+++ b/client/src/pages/email-sign-up.tsx
@@ -64,7 +64,10 @@ function AcceptPrivacyTerms({
{t('misc.email-signup')} | freeCodeCamp.org
-
+
{t('misc.email-signup')}
diff --git a/cypress/integration/user/privacy-terms.js b/cypress/integration/user/privacy-terms.js
new file mode 100644
index 0000000000..5ab7c8c094
--- /dev/null
+++ b/cypress/integration/user/privacy-terms.js
@@ -0,0 +1,30 @@
+describe('Privacy terms', () => {
+ it('should not redirect away from email sign up page on login', () => {
+ // Flag used to identify if the `/update-privacy-terms` have been called
+ let privacyTermsUpdated = false;
+ cy.intercept('PUT', '/update-privacy-terms', () => {
+ privacyTermsUpdated = true;
+ }).as('updatePrivacyTerms');
+
+ // Seed dev user with `acceptedPrivacyTerms` unset
+ cy.exec('npm run seed -- --unset-privacy-terms');
+ // Go to the homepage and log in manually so we can assert the following:
+ // 1. Redirection to /email-sign-up works properly
+ // 2. The /update-privacy-terms has not been requested
+ cy.visit('/');
+ cy.get('[data-test-label="landing-small-cta"]').click();
+ cy.location('pathname').should('contain', '/email-sign-up');
+ cy.wrap(privacyTermsUpdated).should('eq', false);
+ // Assert email sign up elements and make sure we don't get redirected somewhere else
+ cy.title().should('contain', 'Email Sign Up');
+ cy.get('[data-cy="email-sign-up"]').should('exist');
+ // Navigate away from this page via quincy emails which should unmount the component
+ // and request /update-privacy-terms
+ cy.get('button:contains("Yes please")').click();
+ cy.wait('@updatePrivacyTerms').then(() => {
+ expect(privacyTermsUpdated).to.eq(true);
+ cy.contains('Welcome back');
+ cy.location('pathname').should('contain', '/learn');
+ });
+ });
+});
diff --git a/tools/scripts/seed/seedAuthUser.js b/tools/scripts/seed/seedAuthUser.js
index 5f9c5fa87b..aa23504a69 100644
--- a/tools/scripts/seed/seedAuthUser.js
+++ b/tools/scripts/seed/seedAuthUser.js
@@ -25,7 +25,6 @@ function handleError(err, client) {
}
}
-/* eslint-disable max-len */
const authUser = {
_id: ObjectId('5bd30e0f1caf6ac3ddddddb5'),
email: 'foo@bar.com',
@@ -38,7 +37,9 @@ const authUser = {
name: 'Development User',
location: '',
picture: defaultUserImage,
- acceptedPrivacyTerms: true,
+ acceptedPrivacyTerms: envVariables.includes('--unset-privacy-terms')
+ ? null
+ : true,
sendQuincyEmail: false,
currentChallengeId: '',
isHonest: false,
@@ -84,6 +85,7 @@ const authUser = {
emailAuthLinkTTL: null,
emailVerifyTTL: null
};
+
const blankUser = {
_id: ObjectId('5bd30e0f1caf6ac3ddddddb9'),
email: 'bar@bar.com',