mirror of
https://github.com/jambonz/next-static-site.git
synced 2025-12-19 04:47:44 +00:00
* 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>
88 lines
1.9 KiB
JavaScript
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');
|
|
});
|
|
});
|