96 lines
2.9 KiB
JavaScript
96 lines
2.9 KiB
JavaScript
/// <reference types="cypress" />
|
|
|
|
describe("Top Navigation", () => {
|
|
|
|
const showSubscribeToUpdates = () => {
|
|
cy.contains('Keep JamKazam Improving').should('exist')
|
|
cy.contains('Subscribe').should('exist')
|
|
}
|
|
|
|
const showProfileDropdown = () => {
|
|
cy.get('[data-testid=navbarTopProfileDropdown]').should('exist')
|
|
cy.contains("Peter Pan").should('exist')
|
|
//cy.contains("My Profile").should('exist')
|
|
cy.contains("Sign Out").should('exist')
|
|
}
|
|
|
|
describe("when user has not logged in", () => {
|
|
beforeEach(() => {
|
|
cy.stubUnauthenticate()
|
|
});
|
|
|
|
it('shows homepage', () => {
|
|
cy.visit('/')
|
|
cy.contains('Home').should('exist')
|
|
showSubscribeToUpdates()
|
|
})
|
|
|
|
it("not allowed to protected page", () => {
|
|
cy.visit('/friends')
|
|
cy.url().should('include', '/authentication/basic/login')
|
|
cy.contains("Sign in")
|
|
cy.get('button').should('have.text', 'Sign in')
|
|
cy.get('[data-testid=navbarTopProfileDropdown]').should('not.exist')
|
|
});
|
|
|
|
})
|
|
|
|
describe("when user has logged in", () => {
|
|
|
|
beforeEach(() => {
|
|
cy.stubAuthenticate()
|
|
cy.visit('/')
|
|
});
|
|
|
|
it("shows user dropdown", () => {
|
|
showSubscribeToUpdates()
|
|
showProfileDropdown()
|
|
})
|
|
|
|
it('sign out', () => {
|
|
cy.get('[data-testid=navbarTopProfileDropdown]').contains('Peter Pan').click()
|
|
cy.stubUnauthenticate()
|
|
cy.get('[data-testid=navbarTopProfileDropdown]').contains('Sign Out').click()
|
|
cy.get('[data-testid=navbarTopProfileDropdown]').should('not.exist')
|
|
cy.contains("Home")
|
|
})
|
|
})
|
|
|
|
describe('header notifications', () => {
|
|
beforeEach(() => {
|
|
cy.stubAuthenticate()
|
|
cy.intercept('GET', /\S+\/notifications/, { fixture: 'notifications'} )
|
|
cy.intercept('GET', /\S+\/profile\S+/, { fixture: 'person' });
|
|
cy.visit('/')
|
|
})
|
|
|
|
it('shows notifications', () => {
|
|
cy.get('[data-testid=notificationDropdown]').should('not.be.visible')
|
|
cy.get('.notification-indicator').click()
|
|
cy.get('[data-testid=notificationDropdown]').should('be.visible')
|
|
cy.get('[data-testid=notificationDropdown] .list-group-item').should('have.length', 3)
|
|
cy.get('[data-testid=notificationDropdown]').contains('View all').click() //view all notifications
|
|
cy.url().should('include', '/notifications')
|
|
})
|
|
})
|
|
|
|
describe('locale switch', () => {
|
|
beforeEach(() => {
|
|
cy.stubAuthenticate()
|
|
cy.visit('/')
|
|
})
|
|
|
|
it("translate", () => {
|
|
cy.get('.card-header').contains('Home')
|
|
cy.get('[data-testid=langSwitch]').contains('ES').click()
|
|
cy.get('.card-header').contains('Página de inicio')
|
|
cy.get('.card-header').should('not.contain', 'Home')
|
|
cy.get('[data-testid=langSwitch]').contains('EN').click()
|
|
cy.get('.card-header').contains('Home')
|
|
cy.get('.card-header').should('not.contain', 'Página de inicio')
|
|
})
|
|
})
|
|
|
|
});
|
|
|