From 476f79444595c6a3e1c4f05053c1dcaa4a3a9fa0 Mon Sep 17 00:00:00 2001 From: Hammad1007 Date: Fri, 15 Dec 2023 11:29:21 +0500 Subject: [PATCH 1/7] e2e testing for the project_starter --- _project_starter_/cypress.config.js | 9 +++++++ .../cypress/e2e/test1.spec.cy.js | 23 +++++++++++++++++ .../cypress/fixtures/example.json | 5 ++++ _project_starter_/cypress/support/commands.js | 25 +++++++++++++++++++ _project_starter_/cypress/support/e2e.js | 20 +++++++++++++++ _project_starter_/index.html | 2 +- 6 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 _project_starter_/cypress.config.js create mode 100644 _project_starter_/cypress/e2e/test1.spec.cy.js create mode 100644 _project_starter_/cypress/fixtures/example.json create mode 100644 _project_starter_/cypress/support/commands.js create mode 100644 _project_starter_/cypress/support/e2e.js diff --git a/_project_starter_/cypress.config.js b/_project_starter_/cypress.config.js new file mode 100644 index 0000000..97f47c4 --- /dev/null +++ b/_project_starter_/cypress.config.js @@ -0,0 +1,9 @@ +const { defineConfig } = require("cypress"); + +module.exports = defineConfig({ + e2e: { + setupNodeEvents(on, config) { + // implement node event listeners here + }, + }, +}); diff --git a/_project_starter_/cypress/e2e/test1.spec.cy.js b/_project_starter_/cypress/e2e/test1.spec.cy.js new file mode 100644 index 0000000..deb9a39 --- /dev/null +++ b/_project_starter_/cypress/e2e/test1.spec.cy.js @@ -0,0 +1,23 @@ +describe('Project 1: Project Starter', () => { + + beforeEach(() => { + cy.visit('http://127.0.0.1:5500/_project_starter_/') + }) + + it('Opens the Home Page', () => { + + }) + + it('White Background color', () => { + cy.get('body').should('have.css', 'background-color', 'rgba(0, 0, 0, 0)') + }) + + it('Screen is visible', () => { + cy.get('body').should('be.visible') + }) + + it('Text is visible', () => { + cy.get('h1').should('have.text', 'Project Starter') + }) + +}) \ No newline at end of file diff --git a/_project_starter_/cypress/fixtures/example.json b/_project_starter_/cypress/fixtures/example.json new file mode 100644 index 0000000..02e4254 --- /dev/null +++ b/_project_starter_/cypress/fixtures/example.json @@ -0,0 +1,5 @@ +{ + "name": "Using fixtures to represent data", + "email": "hello@cypress.io", + "body": "Fixtures are a great way to mock data for responses to routes" +} diff --git a/_project_starter_/cypress/support/commands.js b/_project_starter_/cypress/support/commands.js new file mode 100644 index 0000000..66ea16e --- /dev/null +++ b/_project_starter_/cypress/support/commands.js @@ -0,0 +1,25 @@ +// *********************************************** +// This example commands.js shows you how to +// create various custom commands and overwrite +// existing commands. +// +// For more comprehensive examples of custom +// commands please read more here: +// https://on.cypress.io/custom-commands +// *********************************************** +// +// +// -- This is a parent command -- +// Cypress.Commands.add('login', (email, password) => { ... }) +// +// +// -- This is a child command -- +// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... }) +// +// +// -- This is a dual command -- +// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... }) +// +// +// -- This will overwrite an existing command -- +// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) \ No newline at end of file diff --git a/_project_starter_/cypress/support/e2e.js b/_project_starter_/cypress/support/e2e.js new file mode 100644 index 0000000..0e7290a --- /dev/null +++ b/_project_starter_/cypress/support/e2e.js @@ -0,0 +1,20 @@ +// *********************************************************** +// This example support/e2e.js is processed and +// loaded automatically before your test files. +// +// This is a great place to put global configuration and +// behavior that modifies Cypress. +// +// You can change the location of this file or turn off +// automatically serving support files with the +// 'supportFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/configuration +// *********************************************************** + +// Import commands.js using ES2015 syntax: +import './commands' + +// Alternatively you can use CommonJS syntax: +// require('./commands') \ No newline at end of file diff --git a/_project_starter_/index.html b/_project_starter_/index.html index 4783501..7f7705b 100644 --- a/_project_starter_/index.html +++ b/_project_starter_/index.html @@ -8,6 +8,6 @@

Project Starter

- + From 5827588ddebe422f0a829b4878977fa48055c3f7 Mon Sep 17 00:00:00 2001 From: Hammad1007 Date: Fri, 15 Dec 2023 13:26:09 +0500 Subject: [PATCH 2/7] Update the code for 3d boxes background testing --- 3d-boxes-background/cypress.config.js | 9 +++++++ .../cypress/e2e/test1.spec.cy.js | 20 +++++++++++++++ .../cypress/fixtures/example.json | 5 ++++ .../cypress/support/commands.js | 25 +++++++++++++++++++ 3d-boxes-background/cypress/support/e2e.js | 20 +++++++++++++++ 5 files changed, 79 insertions(+) create mode 100644 3d-boxes-background/cypress.config.js create mode 100644 3d-boxes-background/cypress/e2e/test1.spec.cy.js create mode 100644 3d-boxes-background/cypress/fixtures/example.json create mode 100644 3d-boxes-background/cypress/support/commands.js create mode 100644 3d-boxes-background/cypress/support/e2e.js diff --git a/3d-boxes-background/cypress.config.js b/3d-boxes-background/cypress.config.js new file mode 100644 index 0000000..97f47c4 --- /dev/null +++ b/3d-boxes-background/cypress.config.js @@ -0,0 +1,9 @@ +const { defineConfig } = require("cypress"); + +module.exports = defineConfig({ + e2e: { + setupNodeEvents(on, config) { + // implement node event listeners here + }, + }, +}); diff --git a/3d-boxes-background/cypress/e2e/test1.spec.cy.js b/3d-boxes-background/cypress/e2e/test1.spec.cy.js new file mode 100644 index 0000000..faefef7 --- /dev/null +++ b/3d-boxes-background/cypress/e2e/test1.spec.cy.js @@ -0,0 +1,20 @@ +describe('Project 2: 3d-Boxes-Background', () => { + + beforeEach(() => { + cy.visit('http://127.0.0.1:5500/3d-boxes-background/') + }) + + it('Opens the Home Page', () => { + + }) + + it('White Background color', () => { + cy.get('body').should('have.css', 'background-color', 'rgb(250, 250, 250)') + }) + + it('Screen is visible', () => { + cy.get('body').should('be.visible') + }) + + +}) \ No newline at end of file diff --git a/3d-boxes-background/cypress/fixtures/example.json b/3d-boxes-background/cypress/fixtures/example.json new file mode 100644 index 0000000..02e4254 --- /dev/null +++ b/3d-boxes-background/cypress/fixtures/example.json @@ -0,0 +1,5 @@ +{ + "name": "Using fixtures to represent data", + "email": "hello@cypress.io", + "body": "Fixtures are a great way to mock data for responses to routes" +} diff --git a/3d-boxes-background/cypress/support/commands.js b/3d-boxes-background/cypress/support/commands.js new file mode 100644 index 0000000..66ea16e --- /dev/null +++ b/3d-boxes-background/cypress/support/commands.js @@ -0,0 +1,25 @@ +// *********************************************** +// This example commands.js shows you how to +// create various custom commands and overwrite +// existing commands. +// +// For more comprehensive examples of custom +// commands please read more here: +// https://on.cypress.io/custom-commands +// *********************************************** +// +// +// -- This is a parent command -- +// Cypress.Commands.add('login', (email, password) => { ... }) +// +// +// -- This is a child command -- +// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... }) +// +// +// -- This is a dual command -- +// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... }) +// +// +// -- This will overwrite an existing command -- +// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) \ No newline at end of file diff --git a/3d-boxes-background/cypress/support/e2e.js b/3d-boxes-background/cypress/support/e2e.js new file mode 100644 index 0000000..0e7290a --- /dev/null +++ b/3d-boxes-background/cypress/support/e2e.js @@ -0,0 +1,20 @@ +// *********************************************************** +// This example support/e2e.js is processed and +// loaded automatically before your test files. +// +// This is a great place to put global configuration and +// behavior that modifies Cypress. +// +// You can change the location of this file or turn off +// automatically serving support files with the +// 'supportFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/configuration +// *********************************************************** + +// Import commands.js using ES2015 syntax: +import './commands' + +// Alternatively you can use CommonJS syntax: +// require('./commands') \ No newline at end of file From 25b5825ce18a091788fdc128aaf348ed6d42aad4 Mon Sep 17 00:00:00 2001 From: Hammad1007 Date: Fri, 15 Dec 2023 14:53:13 +0500 Subject: [PATCH 3/7] Update the tests --- .../cypress/e2e/test1.spec.cy.js | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/3d-boxes-background/cypress/e2e/test1.spec.cy.js b/3d-boxes-background/cypress/e2e/test1.spec.cy.js index faefef7..8fc611b 100644 --- a/3d-boxes-background/cypress/e2e/test1.spec.cy.js +++ b/3d-boxes-background/cypress/e2e/test1.spec.cy.js @@ -16,5 +16,43 @@ describe('Project 2: 3d-Boxes-Background', () => { cy.get('body').should('be.visible') }) + it('Magic Button is visible', () => { + cy.get('.magic').should('be.visible') + }) + + it('Magic Button is clickable', () => { + cy.get('.magic').should('be.visible').click() + }) + + it('Small Boxes are visible on the screen', () => { + cy.get('.boxes').should('be.visible') + }) + + it('Magic button when clicked, the boxes merge into one box', () => { + cy.get('.magic').should('be.visible').click() + cy.get('.box').should('be.visible') + }) + context('Magic Button toggle', () => { + before(() => { + cy.visit('http://127.0.0.1:5500/3d-boxes-background/') + cy.get('.magic').should('be.visible').click() + cy.get('.box').should('be.visible') + + }) + + it('If Magic button is toggled, then the box changes to small boxes', () => { + cy.get('.magic').should('be.visible').click() + cy.get('.boxes').should('be.visible') + }) + + it('The GIF in the image is working or not', () => { + cy.get('.magic').should('be.visible').click() + cy.get('.box').should('be.visible') + cy.get('image').should('have.data', 'background-image', 'https://media.giphy.com/media/EZqwsBSPlvSda/giphy.gif') + }) + }) + + + }) \ No newline at end of file From d16a91a2b09b9caa669bf196ff269566801cbceb Mon Sep 17 00:00:00 2001 From: Hammad1007 Date: Fri, 15 Dec 2023 14:58:10 +0500 Subject: [PATCH 4/7] Update teh code for 3d boxes background --- 3d-boxes-background/cypress/e2e/test1.spec.cy.js | 8 -------- 1 file changed, 8 deletions(-) diff --git a/3d-boxes-background/cypress/e2e/test1.spec.cy.js b/3d-boxes-background/cypress/e2e/test1.spec.cy.js index 8fc611b..96580b4 100644 --- a/3d-boxes-background/cypress/e2e/test1.spec.cy.js +++ b/3d-boxes-background/cypress/e2e/test1.spec.cy.js @@ -45,14 +45,6 @@ describe('Project 2: 3d-Boxes-Background', () => { cy.get('.magic').should('be.visible').click() cy.get('.boxes').should('be.visible') }) - - it('The GIF in the image is working or not', () => { - cy.get('.magic').should('be.visible').click() - cy.get('.box').should('be.visible') - cy.get('image').should('have.data', 'background-image', 'https://media.giphy.com/media/EZqwsBSPlvSda/giphy.gif') - }) }) - - }) \ No newline at end of file From 0fe400af3ca72e48cd0a13d2c7466ef536274a59 Mon Sep 17 00:00:00 2001 From: Hammad1007 Date: Fri, 15 Dec 2023 17:15:10 +0500 Subject: [PATCH 5/7] Update the code --- animated-countdown/cypress.config.js | 9 +++++ .../cypress/e2e/test1.spec.cy.js | 34 +++++++++++++++++++ .../cypress/fixtures/example.json | 5 +++ .../cypress/support/commands.js | 25 ++++++++++++++ animated-countdown/cypress/support/e2e.js | 20 +++++++++++ 5 files changed, 93 insertions(+) create mode 100644 animated-countdown/cypress.config.js create mode 100644 animated-countdown/cypress/e2e/test1.spec.cy.js create mode 100644 animated-countdown/cypress/fixtures/example.json create mode 100644 animated-countdown/cypress/support/commands.js create mode 100644 animated-countdown/cypress/support/e2e.js diff --git a/animated-countdown/cypress.config.js b/animated-countdown/cypress.config.js new file mode 100644 index 0000000..97f47c4 --- /dev/null +++ b/animated-countdown/cypress.config.js @@ -0,0 +1,9 @@ +const { defineConfig } = require("cypress"); + +module.exports = defineConfig({ + e2e: { + setupNodeEvents(on, config) { + // implement node event listeners here + }, + }, +}); diff --git a/animated-countdown/cypress/e2e/test1.spec.cy.js b/animated-countdown/cypress/e2e/test1.spec.cy.js new file mode 100644 index 0000000..b9fa534 --- /dev/null +++ b/animated-countdown/cypress/e2e/test1.spec.cy.js @@ -0,0 +1,34 @@ +describe('Project 3: Animated Countdown', () => { + + beforeEach(() => { + cy.visit('http://127.0.0.1:5500/animated-countdown/index.html') + }) + it('Open the homepage', () => { + + }) + + it('White Background color', () => { + cy.get('body').should('have.css', 'background-color', 'rgba(0, 0, 0, 0)') + }) + + it('Screen is visible', () => { + cy.get('body').should('be.visible') + }) + + it('Get Ready text is visible', () => { + cy.get('.counter').get('h4').should('have.text', 'Get Ready') + }) + + it('The countdown is visible', () => { + + }) + + it('Go word is visible', () => { + cy.get('.final').get('h1').should('have.text', 'GO') + }) + + it('Replay button', () => { + cy.get('body').get('.counter').get('.nums').get('span').should('contain', 'Replay') + }) + +}) \ No newline at end of file diff --git a/animated-countdown/cypress/fixtures/example.json b/animated-countdown/cypress/fixtures/example.json new file mode 100644 index 0000000..02e4254 --- /dev/null +++ b/animated-countdown/cypress/fixtures/example.json @@ -0,0 +1,5 @@ +{ + "name": "Using fixtures to represent data", + "email": "hello@cypress.io", + "body": "Fixtures are a great way to mock data for responses to routes" +} diff --git a/animated-countdown/cypress/support/commands.js b/animated-countdown/cypress/support/commands.js new file mode 100644 index 0000000..66ea16e --- /dev/null +++ b/animated-countdown/cypress/support/commands.js @@ -0,0 +1,25 @@ +// *********************************************** +// This example commands.js shows you how to +// create various custom commands and overwrite +// existing commands. +// +// For more comprehensive examples of custom +// commands please read more here: +// https://on.cypress.io/custom-commands +// *********************************************** +// +// +// -- This is a parent command -- +// Cypress.Commands.add('login', (email, password) => { ... }) +// +// +// -- This is a child command -- +// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... }) +// +// +// -- This is a dual command -- +// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... }) +// +// +// -- This will overwrite an existing command -- +// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) \ No newline at end of file diff --git a/animated-countdown/cypress/support/e2e.js b/animated-countdown/cypress/support/e2e.js new file mode 100644 index 0000000..0e7290a --- /dev/null +++ b/animated-countdown/cypress/support/e2e.js @@ -0,0 +1,20 @@ +// *********************************************************** +// This example support/e2e.js is processed and +// loaded automatically before your test files. +// +// This is a great place to put global configuration and +// behavior that modifies Cypress. +// +// You can change the location of this file or turn off +// automatically serving support files with the +// 'supportFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/configuration +// *********************************************************** + +// Import commands.js using ES2015 syntax: +import './commands' + +// Alternatively you can use CommonJS syntax: +// require('./commands') \ No newline at end of file From 5a3bd9d68e78be4d69e21a5a45b908bda6dcae0d Mon Sep 17 00:00:00 2001 From: Hammad1007 Date: Fri, 15 Dec 2023 17:57:30 +0500 Subject: [PATCH 6/7] Update the code for testing --- animated-countdown/cypress/e2e/test1.spec.cy.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/animated-countdown/cypress/e2e/test1.spec.cy.js b/animated-countdown/cypress/e2e/test1.spec.cy.js index b9fa534..076dcfa 100644 --- a/animated-countdown/cypress/e2e/test1.spec.cy.js +++ b/animated-countdown/cypress/e2e/test1.spec.cy.js @@ -19,10 +19,6 @@ describe('Project 3: Animated Countdown', () => { cy.get('.counter').get('h4').should('have.text', 'Get Ready') }) - it('The countdown is visible', () => { - - }) - it('Go word is visible', () => { cy.get('.final').get('h1').should('have.text', 'GO') }) From 60ef8c70d432cc75b3db529a6a4956bae70d86cd Mon Sep 17 00:00:00 2001 From: Hammad1007 Date: Mon, 18 Dec 2023 12:32:45 +0500 Subject: [PATCH 7/7] Testing Animated Navigation Project --- animated-navigation/cypress.config.js | 9 +++++++ .../cypress/e2e/test1.spec.cy.js | 5 ++++ .../cypress/fixtures/example.json | 5 ++++ .../cypress/support/commands.js | 25 +++++++++++++++++++ animated-navigation/cypress/support/e2e.js | 20 +++++++++++++++ 5 files changed, 64 insertions(+) create mode 100644 animated-navigation/cypress.config.js create mode 100644 animated-navigation/cypress/e2e/test1.spec.cy.js create mode 100644 animated-navigation/cypress/fixtures/example.json create mode 100644 animated-navigation/cypress/support/commands.js create mode 100644 animated-navigation/cypress/support/e2e.js diff --git a/animated-navigation/cypress.config.js b/animated-navigation/cypress.config.js new file mode 100644 index 0000000..97f47c4 --- /dev/null +++ b/animated-navigation/cypress.config.js @@ -0,0 +1,9 @@ +const { defineConfig } = require("cypress"); + +module.exports = defineConfig({ + e2e: { + setupNodeEvents(on, config) { + // implement node event listeners here + }, + }, +}); diff --git a/animated-navigation/cypress/e2e/test1.spec.cy.js b/animated-navigation/cypress/e2e/test1.spec.cy.js new file mode 100644 index 0000000..322992c --- /dev/null +++ b/animated-navigation/cypress/e2e/test1.spec.cy.js @@ -0,0 +1,5 @@ +describe('template spec', () => { + it('passes', () => { + cy.visit('https://example.cypress.io') + }) +}) \ No newline at end of file diff --git a/animated-navigation/cypress/fixtures/example.json b/animated-navigation/cypress/fixtures/example.json new file mode 100644 index 0000000..02e4254 --- /dev/null +++ b/animated-navigation/cypress/fixtures/example.json @@ -0,0 +1,5 @@ +{ + "name": "Using fixtures to represent data", + "email": "hello@cypress.io", + "body": "Fixtures are a great way to mock data for responses to routes" +} diff --git a/animated-navigation/cypress/support/commands.js b/animated-navigation/cypress/support/commands.js new file mode 100644 index 0000000..66ea16e --- /dev/null +++ b/animated-navigation/cypress/support/commands.js @@ -0,0 +1,25 @@ +// *********************************************** +// This example commands.js shows you how to +// create various custom commands and overwrite +// existing commands. +// +// For more comprehensive examples of custom +// commands please read more here: +// https://on.cypress.io/custom-commands +// *********************************************** +// +// +// -- This is a parent command -- +// Cypress.Commands.add('login', (email, password) => { ... }) +// +// +// -- This is a child command -- +// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... }) +// +// +// -- This is a dual command -- +// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... }) +// +// +// -- This will overwrite an existing command -- +// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) \ No newline at end of file diff --git a/animated-navigation/cypress/support/e2e.js b/animated-navigation/cypress/support/e2e.js new file mode 100644 index 0000000..0e7290a --- /dev/null +++ b/animated-navigation/cypress/support/e2e.js @@ -0,0 +1,20 @@ +// *********************************************************** +// This example support/e2e.js is processed and +// loaded automatically before your test files. +// +// This is a great place to put global configuration and +// behavior that modifies Cypress. +// +// You can change the location of this file or turn off +// automatically serving support files with the +// 'supportFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/configuration +// *********************************************************** + +// Import commands.js using ES2015 syntax: +import './commands' + +// Alternatively you can use CommonJS syntax: +// require('./commands') \ No newline at end of file