feat: expand cypress tests to include some cert claiming (#40422)
This commit is contained in:
103
cypress/integration/settings/certifications.js
Normal file
103
cypress/integration/settings/certifications.js
Normal file
@ -0,0 +1,103 @@
|
||||
/* global cy expect */
|
||||
|
||||
import '@testing-library/cypress/add-commands';
|
||||
|
||||
describe('Settings certifications area', () => {
|
||||
before(() => {
|
||||
cy.exec('npm run seed');
|
||||
cy.visit('/');
|
||||
cy.contains("Get started (it's free)").click({ force: true });
|
||||
cy.contains('Update my account settings').click({ force: true });
|
||||
});
|
||||
|
||||
describe('initially', () => {
|
||||
it('Should render 11 "Claim Certification" buttons', () => {
|
||||
cy.findAllByText('Claim Certification').should($btns => {
|
||||
expect($btns).to.have.length(11);
|
||||
});
|
||||
});
|
||||
|
||||
it('Should render zero "Show Certification" buttons', () => {
|
||||
cy.contains('Show Certification').should('not.exist');
|
||||
});
|
||||
|
||||
it('Should render one "Agree" button', () => {
|
||||
cy.contains('Agree').should('exist');
|
||||
});
|
||||
|
||||
describe('before isHonest', () => {
|
||||
it('Should show "must agree" message when trying to claim a cert', () => {
|
||||
cy.contains('Claim Certification').click();
|
||||
cy.contains(
|
||||
'To claim a certification, you must first accept our academic honesty policy'
|
||||
).should('exist');
|
||||
});
|
||||
});
|
||||
|
||||
describe('after isHonest', () => {
|
||||
beforeEach(() => {
|
||||
cy.visit('/');
|
||||
cy.contains("Get started (it's free)").click({ force: true });
|
||||
cy.contains('Update my account settings').click({ force: true });
|
||||
});
|
||||
|
||||
it('Should render "You have accepted our Academic Honesty Policy." button after clicking "Agree"', () => {
|
||||
cy.contains('Agree').click({ force: true });
|
||||
cy.contains('You have accepted our Academic Honesty Policy.').should(
|
||||
'exist'
|
||||
);
|
||||
});
|
||||
|
||||
it('Should show "incompleted projects" message when clicking "Claim Certification"', () => {
|
||||
cy.contains('Claim Certification').click({ force: true });
|
||||
|
||||
cy.contains(
|
||||
'It looks like you have not completed the necessary steps. Please complete the required projects to claim the Responsive Web Design Certification'
|
||||
).should('exist');
|
||||
});
|
||||
|
||||
it('Should show "Your projects have been updated." message after submitting projects', () => {
|
||||
cy.get(
|
||||
'#dynamic-information-security-and-quality-assurance input'
|
||||
).each(el => {
|
||||
cy.wrap(el)
|
||||
.clear({ force: true })
|
||||
.type('https://nhl.com', { force: true, delay: 0 });
|
||||
});
|
||||
|
||||
cy.get('#dynamic-information-security-and-quality-assurance').then(
|
||||
form => {
|
||||
if (form[0][5] && form[0][5].innerHTML === 'Save Progress') {
|
||||
form[0][5].click({ force: true });
|
||||
cy.wait(1000);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
cy.contains('Your projects have been updated.').should('exist');
|
||||
});
|
||||
|
||||
it('Should render 12 "Claim Certification" buttons after submitting legacy projects', () => {
|
||||
cy.findAllByText('Claim Certification').should($btns => {
|
||||
expect($btns).to.have.length(12);
|
||||
});
|
||||
});
|
||||
|
||||
it('Should show "congrats" message after claiming a cert', () => {
|
||||
cy.get(
|
||||
'#dynamic-information-security-and-quality-assurance button'
|
||||
).click();
|
||||
|
||||
cy.contains(
|
||||
'@developmentuser, you have successfully claimed the Legacy Information Security and Quality Assurance Certification! Congratulations on behalf of the freeCodeCamp.org team!'
|
||||
).should('exist');
|
||||
});
|
||||
|
||||
it('Should render a "Show Certification" button after submitting enough projects', () => {
|
||||
cy.findAllByText('Show Certification').should($btns => {
|
||||
expect($btns).to.have.length(1);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
Reference in New Issue
Block a user