Skip to content

Commit

Permalink
[#19] Add test for homepage test for existing or missing token
Browse files Browse the repository at this point in the history
  • Loading branch information
liamstevens111 committed Mar 22, 2023
1 parent e73941c commit 0886516
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 2 deletions.
7 changes: 5 additions & 2 deletions cypress/integration/Authentication/login.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ describe('User Authentication', () => {
});

context('login with email and password', () => {
it('given correct credentials, redirects to the home page', () => {
it('given correct credentials, redirects to the home page, shows user header', () => {
cy.intercept('POST', 'api/v1/oauth/token', {
statusCode: 200,
fixture: 'Authentication/valid-credentials.json',
Expand All @@ -27,9 +27,11 @@ describe('User Authentication', () => {
});

cy.findByTestId('app-main-heading').should('be.visible');

cy.findByTestId('header-avatar').should('have.attr', 'src', 'valid_avatar_url');
});

it('given INCORRECT credentials, shows login error', () => {
it('given INCORRECT credentials, shows login error, does NOT show user header', () => {
cy.intercept('POST', 'api/v1/oauth/token', {
statusCode: 400,
fixture: 'Authentication/invalid-credentials.json',
Expand All @@ -52,6 +54,7 @@ describe('User Authentication', () => {
});

cy.findByTestId('app-main-heading').should('not.exist');
cy.findByTestId('header-avatar').should('not.exist');
});

it('given NO credentials entered, shows field validation errors', () => {
Expand Down
47 changes: 47 additions & 0 deletions cypress/integration/Surveys/home.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
import { setItem } from '../../../src/helpers/localStorage';
/* eslint-disable camelcase */
const mockTokenData = {
access_token: 'test_access_token',
refresh_token: 'test_refresh_token',
token_type: 'Bearer',
expires_in: 7200,
created_at: 1677045997,
};

const mockUserProfileData = {
email: '[email protected]',
name: 'TestName',
avatar_url: 'https://secure.gravatar.com/avatar/6733d09432e89459dba795de8312ac2d',
};

// TODO: Add re-fetching auth token and calling endpoint when
describe('Home', () => {
context('Authentication token', () => {
it('with user tokens, displays home page and user header', () => {
setItem('UserProfile', { auth: mockTokenData, user: mockUserProfileData });

cy.visit('/');

cy.location().should((location) => {
expect(location.pathname).to.eq('/');
});

cy.findByTestId('app-main-heading').should('be.visible');

cy.findByText('Home Screen').should('exist');
cy.findByText('Home Screen').should('be.visible');
});

it('WITHOUT user tokens, redirects to the login page', () => {
cy.visit('/');

cy.location().should((location) => {
expect(location.pathname).to.eq('/login');
});

cy.findByTestId('app-main-heading').should('not.exist');

cy.findByText('Home Screen').should('not.exist');
});
});
});

0 comments on commit 0886516

Please sign in to comment.