67 lines
1.8 KiB
JavaScript
Raw Normal View History

2019-10-05 23:38:38 +01:00
/* global cy */
const selectors = {
heading: "[data-test-label='landing-header']",
callToAction: "[data-test-label='landing-big-cta']",
certifications: "[data-test-label='certifications']",
testimonials: "[data-test-label='testimonial-cards']",
landingPageImage: '.landing-page-image'
2019-10-05 23:38:38 +01:00
};
describe('Landing page', () => {
it('Should render', () => {
2019-10-05 23:38:38 +01:00
cy.visit('/');
cy.title().should('eq', 'Learn to code at home | freeCodeCamp.org');
cy.contains(selectors.callToAction, "Get started (it's free)");
cy.get(selectors.callToAction).should('have.length', 2);
});
it('Has visible header and sub-header', () => {
cy.contains(selectors.heading, 'Learn to code at home.');
cy.contains('Build projects.').should('be.visible');
cy.contains('Earn certifications.').should('be.visible');
cy.contains(
'Since 2014, more than 40,000 freeCodeCamp.org ' +
'graduates have gotten jobs at tech companies including:'
).should('be.visible');
});
it('Has 5 brand logos', () => {
cy.get('.logo-row')
.children()
.its('length')
.should('eq', 5);
});
it('Has `as seens as` section', () => {
cy.contains('Build projects.').should('be.visible');
cy.get('.big-heading')
.siblings()
.get('svg');
});
it('Has a visible large image on large viewports', function() {
cy.viewport(1200, 660)
.get(selectors.landingPageImage)
.should('be.visible');
cy.viewport(1199, 660)
.get(selectors.landingPageImage)
.should('not.be.visible');
});
it('Has 10 certifications', function() {
cy.get(selectors.certifications)
.children()
.its('length')
.should('eq', 10);
});
it('Has 3 testimonial cards', function() {
cy.get(selectors.testimonials)
.children()
.its('length')
.should('eq', 3);
2019-10-05 23:38:38 +01:00
});
});