Files
next-static-site/cypress/integration/navi.spec.js
Brandon Lee Kitajchuk db94b17829 Latest news + banner, cypress tests, open source copy, general style tweaks (#13)
* Adding latest news and banners

* Adding first draft of cypress specs and github actions workflow

* Adding sticky position for top banner

* Tweak styles for new latest news section

* Tweak styles for text__layout innerHTML

* Fix Cypress homepage test spec

* Fix mobile navi z-index with sticky top banner

* Fix sticky banner z-index bug with mobile navi

* Refactor markdown tools to support pages beyond developer docs

* Adjust TADHACK text max-widths for small mobile

* initial changes for open source copy

* more copy

* more copy

* updated open source structure

* minor

* typo

* more copy

* Adjust styles for Open Source markdown small text

* Update readme and remove floats from docs webhooks markdown

* Add readme notes on Cypress and flesh out navi spec tests

* Fix main navi highlight when on sub-sections of markdown pages

Co-authored-by: Dave Horton <daveh@beachdognet.com>
2021-07-22 12:34:01 -04:00

88 lines
1.9 KiB
JavaScript

describe('Navigation', () => {
beforeEach(() => {
cy.fixture('site.json').as('site');
});
it('Has jambonz logo', () => {
cy.get('@site').then((site) => {
cy.visit('/');
cy.get('.navi__logo')
.should('have.attr', 'href', site.navi.home.link);
});
});
it('Has page links', () => {
cy.get('@site').then((site) => {
cy.visit('/');
site.navi.links.forEach((item, i) => {
cy.get(`.navi__links li:nth-child(${i + 1}) .navi__link`)
.contains(item.label)
.should('have.attr', 'href', item.link);
});
});
});
it('Has login button', () => {
cy.get('@site').then((site) => {
cy.visit('/');
cy.get('.navi__login .btn')
.contains(site.navi.login.label)
.should('have.attr', 'href', site.navi.login.link)
.should('have.attr', 'target', '_blank');
});
});
it('Has no mobile navi above max-width', () => {
cy.visit('/');
cy.viewport('macbook-15');
cy.get('.navi__mobile')
.should('have.length', 0);
cy.get('.navi__links')
.should('be.visible');
cy.get('.navi__logo')
.should('be.visible');
cy.get('.navi__icon')
.should('not.be.visible');
});
it('Has mobile navi below max-width', () => {
cy.visit('/');
cy.viewport('ipad-2');
cy.get('.navi')
.should('have.class', 'mobile');
cy.get('.navi__links')
.should('not.be.visible');
cy.get('.navi__mobile')
.should('have.length', 1);
cy.get('.navi__icon')
.should('be.visible')
.click();
cy.get('.navi')
.should('have.class', 'active');
cy.get('.navi__mobile')
.should('have.class', 'active');
cy.get('.navi__mobile__icon')
.click();
cy.get('.navi')
.should('not.have.class', 'active');
cy.get('.navi__mobile')
.should('not.have.class', 'active');
});
});