updated tests

This commit is contained in:
Owen Rees
2023-06-22 13:39:50 +02:00
parent 6f7b840b54
commit ef08aa3a61
28 changed files with 43 additions and 43 deletions
+1 -1
View File
@@ -9,7 +9,7 @@ export default function Contact() {
<div className="pt-8 pb-32 lg:pt-16 px-4 mx-auto max-w-screen-md"> <div className="pt-8 pb-32 lg:pt-16 px-4 mx-auto max-w-screen-md">
<h2 <h2
className="mb-4 text-4xl tracking-tight font-extrabold text-center text-gray-900 dark:text-white" className="mb-4 text-4xl tracking-tight font-extrabold text-center text-gray-900 dark:text-white"
data-cy="header2" data-test="header2"
> >
Contactez-Nous Contactez-Nous
</h2> </h2>
+1 -1
View File
@@ -16,7 +16,7 @@ export default function Home() {
/> />
</div> </div>
<div className="absolute text-center text-white"> <div className="absolute text-center text-white">
<h1 className="text-5xl p-5" data-cy="header1"> <h1 className="text-5xl p-5" data-test="header1">
Echecs France Echecs France
</h1> </h1>
<h2 className="text-3xl p-5"> <h2 className="text-3xl p-5">
+1 -1
View File
@@ -8,7 +8,7 @@ export default function About() {
<div className="absolute"> <div className="absolute">
<h2 <h2
className="mb-4 text-4xl tracking-tight font-extrabold text-center text-gray-900 dark:text-white" className="mb-4 text-4xl tracking-tight font-extrabold text-center text-gray-900 dark:text-white"
data-cy="header2" data-test="header2"
> >
Qui Sommes-Nous? Qui Sommes-Nous?
</h2> </h2>
+5 -5
View File
@@ -17,7 +17,7 @@ const ContactForm = () => {
className={`${ className={`${
responseMessage.isSuccessful ? "text-green-600" : "text-red-600" responseMessage.isSuccessful ? "text-green-600" : "text-red-600"
} italic`} } italic`}
data-cy="info-message" data-test="info-message"
> >
{responseMessage.message} {responseMessage.message}
</p> </p>
@@ -52,7 +52,7 @@ const ContactForm = () => {
className="shadow-sm bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-primary-500 focus:border-primary-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500 dark:shadow-sm-light" className="shadow-sm bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-primary-500 focus:border-primary-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500 dark:shadow-sm-light"
placeholder="nom@exemple.com" placeholder="nom@exemple.com"
required required
data-cy="email-input" data-test="email-input"
/> />
</div> </div>
<div> <div>
@@ -70,7 +70,7 @@ const ContactForm = () => {
className="block p-3 w-full text-sm text-gray-900 bg-gray-50 rounded-lg border border-gray-300 shadow-sm focus:ring-primary-500 focus:border-primary-500 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500 dark:shadow-sm-light" className="block p-3 w-full text-sm text-gray-900 bg-gray-50 rounded-lg border border-gray-300 shadow-sm focus:ring-primary-500 focus:border-primary-500 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500 dark:shadow-sm-light"
placeholder="Le motif de ma demande" placeholder="Le motif de ma demande"
required required
data-cy="subject-input" data-test="subject-input"
/> />
</div> </div>
<div className="sm:col-span-2"> <div className="sm:col-span-2">
@@ -87,7 +87,7 @@ const ContactForm = () => {
rows={6} rows={6}
className="block p-2.5 w-full text-sm text-gray-900 bg-gray-50 rounded-lg shadow-sm border border-gray-300 focus:ring-primary-500 focus:border-primary-500 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500" className="block p-2.5 w-full text-sm text-gray-900 bg-gray-50 rounded-lg shadow-sm border border-gray-300 focus:ring-primary-500 focus:border-primary-500 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500"
placeholder="Détaillez ici votre demande..." placeholder="Détaillez ici votre demande..."
data-cy="message-input" data-test="message-input"
required required
></textarea> ></textarea>
</div> </div>
@@ -95,7 +95,7 @@ const ContactForm = () => {
disabled={isSending} disabled={isSending}
type="submit" type="submit"
className="py-3 px-5 text-sm font-medium text-center text-white rounded-lg bg-teal-600 sm:w-fit hover:bg-primary-800 focus:ring-4 focus:outline-none focus:ring-primary-300 dark:hover:bg-primary-700 dark:focus:ring-primary-800 dark:text-white disabled:opacity-25" className="py-3 px-5 text-sm font-medium text-center text-white rounded-lg bg-teal-600 sm:w-fit hover:bg-primary-800 focus:ring-4 focus:outline-none focus:ring-primary-300 dark:hover:bg-primary-700 dark:focus:ring-primary-800 dark:text-white disabled:opacity-25"
data-cy="submit-button" data-test="submit-button"
> >
{isSending ? "Sending..." : "Send Message"} {isSending ? "Sending..." : "Send Message"}
</button> </button>
+1 -1
View File
@@ -5,7 +5,7 @@ export default function Footer() {
return ( return (
<footer <footer
className="grid w-full fixed bottom-0 justify-items-center py-2 px-5 text-white bg-teal-600 text-gray-900 dark:bg-gray-700 z-30" className="grid w-full fixed bottom-0 justify-items-center py-2 px-5 text-white bg-teal-600 text-gray-900 dark:bg-gray-700 z-30"
data-cy="footer" data-test="footer"
> >
<div className="p-2"> <div className="p-2">
<p>&copy; {new Date().getFullYear()} - Owen Rees</p> <p>&copy; {new Date().getFullYear()} - Owen Rees</p>
+1 -1
View File
@@ -11,7 +11,7 @@ const Hamburger = () => {
<div <div
ref={hamburgerButtonRef} ref={hamburgerButtonRef}
className="hamburger-button space-y-2 relative z-[99999]" className="hamburger-button space-y-2 relative z-[99999]"
data-cy="hamburger-button" data-test="hamburger-button"
onClick={() => setMenuVisible(!menuVisible)} onClick={() => setMenuVisible(!menuVisible)}
> >
<div <div
+3 -3
View File
@@ -6,7 +6,7 @@ export default function Navbar() {
return ( return (
<nav <nav
className="w-full relative border-b-[1px] pt-5 mt-0 px-5 md:pt-2 bg-white dark:bg-gray-800 dark:border-gray-700 overflow-x-clip" className="w-full relative border-b-[1px] pt-5 mt-0 px-5 md:pt-2 bg-white dark:bg-gray-800 dark:border-gray-700 overflow-x-clip"
data-cy="navbar" data-test="navbar"
> >
<div className="container mx-auto flex items-center"> <div className="container mx-auto flex items-center">
<div className="pb-3 justify-center flex w-full md:w-1/2 md:pb-0 md:justify-start font-extrabold"> <div className="pb-3 justify-center flex w-full md:w-1/2 md:pb-0 md:justify-start font-extrabold">
@@ -17,13 +17,13 @@ export default function Navbar() {
<span className="text-2xl">Echecs France</span> <span className="text-2xl">Echecs France</span>
</Link> </Link>
</div> </div>
<div className="pb-2 md:hidden" data-cy="mobile-menu"> <div className="pb-2 md:hidden" data-test="mobile-menu">
<Hamburger /> <Hamburger />
</div> </div>
<div <div
className="hidden pt-2 justify-center md:flex md:w-1/2 md:justify-end" className="hidden pt-2 justify-center md:flex md:w-1/2 md:justify-end"
data-cy="desktop-menu" data-test="desktop-menu"
> >
<ul className="list-reset text-gray-900 dark:text-white no-underline flex flex-1 justify-around md:flex-none items-center"> <ul className="list-reset text-gray-900 dark:text-white no-underline flex flex-1 justify-around md:flex-none items-center">
<li className="mr-10"> <li className="mr-10">
+1 -1
View File
@@ -36,7 +36,7 @@ const ScrollToTopButton = () => {
return ( return (
<button <button
className={`${scrollToTopButtonClass} z-10 text-2xl text-teal-900 dark:text-white`} className={`${scrollToTopButtonClass} z-10 text-2xl text-teal-900 dark:text-white`}
data-cy="scroll-to-top-button" data-test="scroll-to-top-button"
> >
<FaArrowUp <FaArrowUp
onClick={() => handleScrollToTop(scrollToTopElementRef.current)} onClick={() => handleScrollToTop(scrollToTopElementRef.current)}
+2 -2
View File
@@ -22,7 +22,7 @@ const ThemeSwitcher = () => {
{colorTheme === "light" ? ( {colorTheme === "light" ? (
<div <div
className="toggle-dark" className="toggle-dark"
data-cy="toggle-dark" data-test="toggle-dark"
onClick={() => setTheme("light")} onClick={() => setTheme("light")}
> >
<MdBrightness2 className="theme-icon-dark" /> <MdBrightness2 className="theme-icon-dark" />
@@ -30,7 +30,7 @@ const ThemeSwitcher = () => {
) : ( ) : (
<div <div
className="toggle" className="toggle"
data-cy="toggle" data-test="toggle"
onClick={() => setTheme("dark")} onClick={() => setTheme("dark")}
> >
<MdCircle className="theme-icon" /> <MdCircle className="theme-icon" />
+2 -2
View File
@@ -62,7 +62,7 @@ export default function TournamentTable({
<section <section
className="tournament-table w-full grid auto-rows-max pb-20 lg:h-[calc(100vh-173px)] lg:col-start-2 lg:col-end-3 lg:overflow-y-scroll" className="tournament-table w-full grid auto-rows-max pb-20 lg:h-[calc(100vh-173px)] lg:col-start-2 lg:col-end-3 lg:overflow-y-scroll"
id="tournament-table" id="tournament-table"
data-cy="tournament-table-div" data-test="tournament-table-div"
> >
<div className="flex z-10"> <div className="flex z-10">
<SearchBar <SearchBar
@@ -75,7 +75,7 @@ export default function TournamentTable({
</div> </div>
<table <table
className="relative table-fixed w-full text-center text-xs" className="relative table-fixed w-full text-center text-xs"
data-cy="tournament-table" data-test="tournament-table"
> >
<thead> <thead>
<tr> <tr>
+5 -5
View File
@@ -4,11 +4,11 @@ import Contact from "@/app/contactez-nous/page";
const navbarFooterCheck = () => { const navbarFooterCheck = () => {
it("includes navbar", () => { it("includes navbar", () => {
cy.get("[data-cy='navbar']"); cy.getByData("navbar");
}); });
it("includes footer", () => { it("includes footer", () => {
cy.get("[data-cy='footer']"); cy.getByData("footer");
}); });
}; };
@@ -19,7 +19,7 @@ describe("Verify component mount", () => {
}); });
it("correct h1 tags with website name included", () => { it("correct h1 tags with website name included", () => {
cy.get("[data-cy='header1']").contains("echecs france", { cy.getByData("header1").contains("echecs france", {
matchCase: false, matchCase: false,
}); });
}); });
@@ -33,7 +33,7 @@ describe("Verify component mount", () => {
}); });
it("correct h1 tags with page title included", () => { it("correct h1 tags with page title included", () => {
cy.get("[data-cy='header2']").contains("qui sommes-nous", { cy.getByData("header2").contains("qui sommes-nous", {
matchCase: false, matchCase: false,
}); });
}); });
@@ -47,7 +47,7 @@ describe("Verify component mount", () => {
}); });
it("correct h1 tags with page title included", () => { it("correct h1 tags with page title included", () => {
cy.get("[data-cy='header2']").contains("contactez-nous", { cy.getByData("header2").contains("contactez-nous", {
matchCase: false, matchCase: false,
}); });
}); });
+2 -2
View File
@@ -4,12 +4,12 @@ describe("Scroll to top button", () => {
it("desktop scroll button clickable", () => { it("desktop scroll button clickable", () => {
cy.viewport("macbook-15"); cy.viewport("macbook-15");
cy.mount(<ScrollToTopButton />); cy.mount(<ScrollToTopButton />);
cy.get("[data-cy='scroll-to-top-button']").should("exist").click(); cy.getByData("scroll-to-top-button").should("exist").click();
}); });
it("mobile scroll button clickable", () => { it("mobile scroll button clickable", () => {
cy.viewport(600, 600); cy.viewport(600, 600);
cy.mount(<ScrollToTopButton />); cy.mount(<ScrollToTopButton />);
cy.get("[data-cy='scroll-to-top-button']").should("exist").click(); cy.getByData("scroll-to-top-button").should("exist").click();
}); });
}); });
+5 -5
View File
@@ -7,17 +7,17 @@ describe("ThemeSwitcher component", () => {
cy.mount(<ThemeSwitcher />); cy.mount(<ThemeSwitcher />);
// checking that the toggle is there and light mode is active // checking that the toggle is there and light mode is active
cy.get("[data-cy='toggle']").should("exist"); cy.getByData("toggle").should("exist");
cy.get("[data-cy='toggle']").should(($toggle) => { cy.getByData("toggle").should(($toggle) => {
const backgroundImage = $toggle.css("background-image"); const backgroundImage = $toggle.css("background-image");
expect(backgroundImage).to.include( expect(backgroundImage).to.include(
"linear-gradient(rgb(0, 255, 255), rgb(135, 206, 235)" "linear-gradient(rgb(0, 255, 255), rgb(135, 206, 235)"
); );
}); });
// checking that the toggle is clickable and dark mode is active // checking that the toggle is clickable and dark mode is active
cy.get("[data-cy='toggle']").click(); cy.getByData("toggle").click();
cy.get("[data-cy='toggle-dark']").should("exist"); cy.getByData("toggle-dark").should("exist");
cy.get("[data-cy='toggle-dark']").should(($toggle) => { cy.getByData("toggle-dark").should(($toggle) => {
const backgroundImage = $toggle.css("background-image"); const backgroundImage = $toggle.css("background-image");
expect(backgroundImage).to.include( expect(backgroundImage).to.include(
"linear-gradient(rgb(25, 25, 112), rgb(102, 51, 153)" "linear-gradient(rgb(25, 25, 112), rgb(102, 51, 153)"
+1 -1
View File
@@ -2,7 +2,7 @@ let tableRows: number;
describe("Data fetching for map", () => { describe("Data fetching for map", () => {
it("map markers is equal to table rows", () => { it("map markers is equal to table rows", () => {
cy.visit("/tournois"); cy.visit("/tournois");
cy.get('[data-cy="tournament-table"]') cy.getByData("tournament-table")
.find("tr") .find("tr")
.then((rows) => { .then((rows) => {
tableRows = rows.length - 1; tableRows = rows.length - 1;
+1 -1
View File
@@ -25,7 +25,7 @@ describe("Test links", () => {
cy.viewport(600, 600); cy.viewport(600, 600);
cy.visit("/"); cy.visit("/");
pages.forEach((page) => { pages.forEach((page) => {
cy.get("[data-cy='hamburger-button']").click(); cy.getByData("hamburger-button").click();
cy.contains(page, { matchCase: false }).click(); cy.contains(page, { matchCase: false }).click();
cy.location("pathname").should("eq", `/${navLinkToSlug(page)}`); // url path matches link name, replacing whitespace with hyphens cy.location("pathname").should("eq", `/${navLinkToSlug(page)}`); // url path matches link name, replacing whitespace with hyphens
cy.go("back"); cy.go("back");
+6 -6
View File
@@ -5,12 +5,12 @@ describe("Mobile Navbar", () => {
}); });
it("hamburger menu on mobile screens", () => { it("hamburger menu on mobile screens", () => {
cy.get("[data-cy='mobile-menu']").should("be.visible"); cy.getByData("mobile-menu").should("be.visible");
cy.get("[data-cy='desktop-menu']").should("be.not.visible"); cy.getByData("desktop-menu").should("be.not.visible");
}); });
it("hamburger button available", () => { it("hamburger button available", () => {
cy.get("[data-cy='hamburger-button']").should("be.visible"); cy.getByData("hamburger-button").should("be.visible");
}); });
}); });
@@ -21,11 +21,11 @@ describe("Desktop Navbar", () => {
}); });
it("desktop menu on larger screens", () => { it("desktop menu on larger screens", () => {
cy.get("[data-cy='mobile-menu']").should("be.hidden"); cy.getByData("mobile-menu").should("be.hidden");
cy.get("[data-cy='desktop-menu']").should("be.not.hidden"); cy.getByData("desktop-menu").should("be.not.hidden");
}); });
it("hamburger button hidden", () => { it("hamburger button hidden", () => {
cy.get("[data-cy='hamburger-button']").should("be.not.visible"); cy.getByData("hamburger-button").should("be.not.visible");
}); });
}); });
+3 -3
View File
@@ -5,8 +5,8 @@ describe("Scroll to top button", () => {
it("desktop scroll to top", () => { it("desktop scroll to top", () => {
cy.viewport(1024, 800); cy.viewport(1024, 800);
cy.get("[data-cy='tournament-table-div']").scrollTo("bottom"); cy.getByData("tournament-table-div").scrollTo("bottom");
cy.get("[data-cy='scroll-to-top-button']").click(); cy.getByData("scroll-to-top-button").click();
// cy.get("[data-cy='tournament-table-div']") // cy.get("[data-cy='tournament-table-div']")
// .invoke("scrollTop") // .invoke("scrollTop")
// .should("equal", 0); // .should("equal", 0);
@@ -20,7 +20,7 @@ describe("Scroll to top button", () => {
cy.viewport(600, 600); cy.viewport(600, 600);
cy.scrollTo("bottom"); cy.scrollTo("bottom");
cy.window().its("scrollY").should("not.equal", 0); cy.window().its("scrollY").should("not.equal", 0);
cy.get("[data-cy='scroll-to-top-button']").click(); cy.getByData("scroll-to-top-button").click();
cy.window().its("scrollY").should("equal", 0); cy.window().its("scrollY").should("equal", 0);
}); });
}); });
+1 -1
View File
@@ -5,7 +5,7 @@ declare namespace Cypress {
} }
Cypress.Commands.add("getByData", (selector) => { Cypress.Commands.add("getByData", (selector) => {
return cy.get(`[data-cy=${selector}]`); return cy.get(`[data-test=${selector}]`);
}); });
/// <reference types="cypress" /> /// <reference types="cypress" />
+1 -1
View File
@@ -11,4 +11,4 @@
<body> <body>
<div data-cy-root></div> <div data-cy-root></div>
</body> </body>
</html> </html>
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.