31 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 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');
 | |
|     });
 | |
|   });
 | |
| });
 |