scratch-www/test/integration-cypress/cypress/smoke-tests/test-footer-links.js

298 lines
7.2 KiB
JavaScript

const baseUrl = Cypress.config('baseUrl');
describe('test About links in footer', function () {
beforeEach(function (){
cy.visit('/');
});
after(function (){
// this is here to fix the problem with the statistics page causing
// the next test to fail. Since it is a before each it makes the rest
// of all the tests fail. If it happens in an after, the beforeEach is fine
cy.visit('/');
});
it('click About Scratch', function (){
cy
.get('.lists :first-child :nth-child(2) :first-child :first-child')
.click();
cy
.url()
.should('eq', baseUrl + '/about');
});
it('click For Parents', function (){
cy
.get('.lists :first-child :nth-child(3) :first-child :first-child')
.click();
cy
.url()
.should('eq', baseUrl + '/parents/');
});
it('click For Educators', function (){
cy
.get('.lists :first-child :nth-child(4) :first-child :first-child')
.click();
cy
.url()
.should('eq', baseUrl + '/educators');
});
it('click For Developers', function (){
cy
.get('.lists :first-child :nth-child(5) :first-child :first-child')
.click();
cy
.url()
.should('eq', baseUrl + '/developers');
});
it('click Credits', function (){
cy
.get('.lists :first-child :nth-child(6) :first-child :first-child')
.click();
cy
.url()
.should('eq', baseUrl + '/info/credits');
});
it('click Jobs', function (){
cy
.get('.lists :first-child :nth-child(7) :first-child :first-child')
.click();
cy
.url()
.should('eq', baseUrl + '/jobs');
});
it('click Press', function (){
cy
.get('.lists :first-child :nth-child(8) :first-child :first-child')
.click();
cy
.url()
.should('match', /https:\/\/www\.scratchfoundation\.org\/media-kit\/?$/);
});
});
describe('test Community links in footer', function () {
beforeEach(function (){
cy.visit('/');
});
after(function (){
cy.visit('/');
});
it('click Community Guidelines', function (){
cy
.get('.lists :nth-child(2) :nth-child(2) :first-child :first-child')
.click();
cy
.url()
.should('eq', baseUrl + '/community_guidelines');
});
it('click Discussion Forums', function (){
cy
.get('.lists :nth-child(2) :nth-child(3) :first-child :first-child')
.click();
cy
.url()
.should('eq', baseUrl + '/discuss/');
});
it('click Scratch Wiki', function (){
cy
.get('.lists :nth-child(2) :nth-child(4) :first-child :first-child')
.click();
cy
.url()
.should('match', /https:\/\/wiki\.scratch\.mit\.edu\/wiki\/Scratch_Wiki_Home\/?$/);
});
it('click Statistics', function (){
cy
.get('.lists :nth-child(2) :nth-child(5) :first-child :first-child')
.click();
cy
.url()
.should('eq', baseUrl + '/statistics/');
});
});
describe('test Support links in footer', function () {
beforeEach(function (){
cy.visit('/');
});
after(function (){
cy.visit('/');
});
it('click Tips', function (){
cy
.get('.lists :nth-child(3) :nth-child(2) :first-child :first-child')
.click();
cy
.url()
.should('eq', baseUrl + '/tips');
});
it('click For FAQ', function (){
cy
.get('.lists :nth-child(3) :nth-child(3) :first-child :first-child')
.click();
cy
.url()
.should('eq', baseUrl + '/info/faq');
});
it('click Offline Editor', function (){
cy
.get('.lists :nth-child(3) :nth-child(4) :first-child :first-child')
.click();
cy
.url()
.should('eq', baseUrl + '/download');
});
it('click Contact Us', function (){
cy
.get('.lists :nth-child(3) :nth-child(5) :first-child :first-child')
.click();
cy
.url()
.should('eq', baseUrl + '/contact-us/');
});
it('click Scratch Store', function (){
cy
.get('.lists :nth-child(3) :nth-child(6) :first-child :first-child')
.click();
cy
.url()
.should('match', /^https:\/\/scratch-foundation\.myshopify\.com\/?$/);
});
it('click Donate', function (){
cy
.get('.lists :nth-child(3) :nth-child(7) :first-child :first-child')
.click();
cy
.url()
.should('match', /^https:\/\/secure\.donationpay\.org\/scratchfoundation\/?/);
});
});
describe('test Legal links in footer', function () {
beforeEach(function (){
cy.visit('/');
});
after(function (){
cy.visit('/');
});
it('click Terms of Use', function (){
cy
.get('.lists :nth-child(4) :nth-child(2) :first-child :first-child')
.click();
cy
.url()
.should('eq', baseUrl + '/terms_of_use');
});
it('click For Privacy Policy', function (){
cy
.get('.lists :nth-child(4) :nth-child(3) :first-child :first-child')
.click();
cy
.url()
.should('eq', baseUrl + '/privacy_policy');
});
it('click DMCA', function (){
cy
.get('.lists :nth-child(4) :nth-child(4) :first-child :first-child')
.click();
cy
.url()
.should('eq', baseUrl + '/DMCA');
});
});
describe('test Scratch Family links in footer', function () {
beforeEach(function (){
cy.visit('/');
});
it('click ScratchEd', function (){
cy
.get('.lists :nth-child(5) :nth-child(2) a')
.click();
cy
.url()
.should('match', /^http:\/\/scratched\.gse\.harvard\.edu\/?$/);
});
it('click For ScratchJr', function (){
cy
.get('.lists :nth-child(5) :nth-child(3) a')
.click();
cy
.url()
.should('match', /^http:\/\/www\.scratchjr\.org\/?$/);
});
it.skip('click Scratch Day', function (){
cy
.get('.lists :nth-child(5) :nth-child(4) a')
.click();
cy
.url()
.should('match', /^https:\/\/day\.scratch\.mit\.edu\/?$/);
});
it('click Scratch Conference', function (){
cy
.get('.lists :nth-child(5) :nth-child(5) :first-child :first-child')
.click();
cy
.url()
.should('eq', baseUrl + '/conference');
});
it('click Scratch Foundation', function (){
cy
.get('.lists :nth-child(5) :nth-child(6) :first-child :first-child')
.click();
cy
.url()
.should('match', /^https:\/\/www\.scratchfoundation\.org\/?$/);
});
});