Files
freeCodeCamp/cypress/integration/learn/index.js
Tom 84c305ab08 feat: release rdbms to production (#45169)
* fix: add cert to email for when all certs are earned

* fix: unhide rdbms from production

* fix: cert project input field

* feat: add cypress tests

* fix: message on project pages to lower expectations

* fix: update instructions

* fix: add quincy's suggestions

* fix: add beta label and reorder

* fix: utils test

* fix: move rdbms to bottom of settings

* fix: cypress tests

* Apply suggestions from code review

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

* fix: only drop seeded users webhook tokens

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2022-03-04 15:38:09 +05:30

84 lines
2.1 KiB
JavaScript

const selectors = {
challengeMap: "[data-test-label='learn-curriculum-map']"
};
const locations = {
index: '/learn'
};
const superBlockNames = [
'Responsive Web Design Certification',
'JavaScript Algorithms and Data Structures Certification',
'Front End Development Libraries Certification',
'Data Visualization Certification',
'Back End Development and APIs Certification',
'Quality Assurance Certification',
'Scientific Computing with Python Certification',
'Data Analysis with Python Certification',
'Information Security Certification',
'Machine Learning with Python Certification',
'Coding Interview Prep (Thousands of hours of challenges)',
'Responsive Web Design (Beta) Certification',
'Relational Database (Beta) Certification'
];
describe('Learn Landing page (not logged in)', () => {
it('Should render', () => {
cy.visit(locations.index);
cy.title().should(
'eq',
'Learn to Code — For Free — Coding Courses for Busy People'
);
});
it('Has the correct heading for an unauthenticated User', () => {
cy.visit(locations.index);
cy.contains('h1', "Welcome to freeCodeCamp's curriculum.");
});
it('Should render a curriculum map', () => {
cy.document().then(document => {
const superBlocks = document.querySelectorAll(
`${selectors.challengeMap} > li > a`
);
expect(superBlocks).to.have.length(13);
superBlocks.forEach((superBlock, idx) => {
expect(superBlock.innerText).to.have.string(superBlockNames[idx]);
});
});
});
});
describe('Quotes', () => {
beforeEach(() => {
cy.login();
});
it('Should show a quote', () => {
cy.get('blockquote').within(() => {
cy.get('q').should('be.visible');
});
});
it('Should show quote author', () => {
cy.get('blockquote').within(() => {
cy.get('cite').should('be.visible');
});
});
});
describe('Superblocks and Blocks', () => {
beforeEach(() => {
cy.login();
});
it('Has all superblocks visible', () => {
cy.wrap(superBlockNames.slice(1)).each(name => {
cy.contains(name).should('be.visible');
});
});
});