70 lines
2.1 KiB
JavaScript
70 lines
2.1 KiB
JavaScript
describe('The admin nav link', () => {
|
|
beforeEach(() => {
|
|
cy.exec('npm run db:seed')
|
|
})
|
|
afterEach(() => {
|
|
cy.exec('npm run db:wipe')
|
|
})
|
|
|
|
describe('when logged in as an admin', () => {
|
|
beforeEach(() => {
|
|
cy.loginAsAdmin()
|
|
})
|
|
|
|
it('shows the admin link on the home page', () => {
|
|
cy.visit('/home')
|
|
cy.get('#admin-link')
|
|
.should('be.visible')
|
|
.and('have.attr', 'href', '/admin')
|
|
})
|
|
|
|
it('shows the admin link on the today page', () => {
|
|
cy.visit('/today')
|
|
cy.get('#admin-link')
|
|
.should('be.visible')
|
|
.and('have.attr', 'href', '/admin')
|
|
})
|
|
|
|
it('shows the admin link on the user texts page', () => {
|
|
cy.visit('/texts')
|
|
cy.get('#admin-link')
|
|
.should('be.visible')
|
|
.and('have.attr', 'href', '/admin')
|
|
})
|
|
|
|
it('navigates to the admin page when clicked', () => {
|
|
cy.visit('/home')
|
|
cy.get('#admin-link').click()
|
|
cy.url().should('include', '/admin')
|
|
cy.get('h1').should('contain', 'Admin')
|
|
})
|
|
})
|
|
|
|
describe('when logged in as a regular user', () => {
|
|
beforeEach(() => {
|
|
cy.loginAsUser()
|
|
})
|
|
|
|
it('does not show the admin link on the home page', () => {
|
|
cy.visit('/home')
|
|
cy.get('#admin-link').should('not.be.visible')
|
|
})
|
|
|
|
it('does not show the admin link on the today page', () => {
|
|
cy.visit('/today')
|
|
cy.get('#admin-link').should('not.be.visible')
|
|
})
|
|
|
|
it('does not show the admin link on the user texts page', () => {
|
|
cy.visit('/texts')
|
|
cy.get('#admin-link').should('not.be.visible')
|
|
})
|
|
|
|
it('does not show the admin link on a user text page', () => {
|
|
cy.intercept('GET', '/api/texts/0').as('getText')
|
|
cy.visit('/texts/0')
|
|
cy.wait('@getText')
|
|
cy.get('#admin-link').should('not.be.visible')
|
|
})
|
|
})
|
|
})
|