Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2,222 changes: 1,953 additions & 269 deletions frontend/package-lock.json

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
"@typescript-eslint/parser": "^8.41.0",
"@vitejs/plugin-vue": "^6.0.1",
"@vue/tsconfig": "^0.7.0",
"cypress": "^15.0.0",
"eslint": "^9.34.0",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-prettier": "^5.5.4",
Expand All @@ -44,4 +45,4 @@
"vue-eslint-parser": "^10.2.0",
"vue-tsc": "^3.0.5"
}
}
}
26 changes: 26 additions & 0 deletions tests/cypress_tests/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Cypress Functional Testing

This directory focuses on providing functional testing for the CHEFS application.

# Running Cypress functional test cases

If you'd like to quickly run these Cypress tests and see what they do, please follow the below steps below:

# 1. Navigate to the Cypress tests folder

cd tests/cypress_tests

# 2. Install the Cypress node dependencies

Make sure your package.json is present in this folder:
npm install

# 3. Run the test cases

# CLI Mode

npm run test

# Interactive Mode (Cypress GUI)

npm run start
13 changes: 13 additions & 0 deletions tests/cypress_tests/cypress.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { defineConfig } from "cypress";

export default defineConfig({
e2e: {
baseUrl: "http://localhost:5173", // Vue dev server URL
supportFile: "cypress/support/e2e.js",
specPattern: "cypress/e2e/**/*.cy.js",
setupNodeEvents() {
// implement node event listeners here if needed
// removed unused 'on' and 'config' parameters
},
},
});
26 changes: 26 additions & 0 deletions tests/cypress_tests/cypress/e2e/home.cy.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
describe("CHEFS Vue Template - Home Page", () => {
beforeEach(() => {
cy.visit("/"); // loads Home page
});

it("loads the homepage", () => {
cy.get("#app").should("exist"); // root container
});

it("displays the Vite logo", () => {
cy.get('img[alt="Vite logo"]').should("be.visible");
});

it("displays the Vue logo", () => {
cy.get('img[alt="Vue logo"]').should("be.visible");
});

it("renders HelloWorld component with correct message", () => {
cy.contains("Vite + Vue").should("be.visible");
});

it("increments count when button is clicked", () => {
cy.get("button").contains("count is").click();
cy.get("button").contains("count is 1").should("be.visible");
});
});
12 changes: 12 additions & 0 deletions tests/cypress_tests/cypress/fixtures/home.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"pageTitle": "CHEFS Vue Template Home Page",
"logos": {
"vite": "Vite logo",
"vue": "Vue logo"
},
"helloMessage": "Vite + Vue",
"countButton": {
"initialText": "count is 0",
"afterClickText": "count is 1"
}
}
4 changes: 4 additions & 0 deletions tests/cypress_tests/cypress/support/commands.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
// Example custom command
Cypress.Commands.add("visitHome", () => {
cy.visit("/");
});
3 changes: 3 additions & 0 deletions tests/cypress_tests/cypress/support/e2e.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
// Cypress support file
// Loaded before every test file
import "./commands"; // imports custom commands
1 change: 1 addition & 0 deletions tests/cypress_tests/cypress/support/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
import "./commands";
22 changes: 22 additions & 0 deletions tests/cypress_tests/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import cypress from "eslint-plugin-cypress";

export default [
{
files: ["cypress/**/*.js"],
languageOptions: {
ecmaVersion: 2021,
sourceType: "module",
globals: {
cy: "readonly",
Cypress: "readonly"
}
},
plugins: {
cypress
},
rules: {
"cypress/no-assigning-return-values": "error",
"cypress/no-unnecessary-waiting": "warn"
}
}
];
Loading