From 776a789f116d5086209f883ce8c316cb1364b28f Mon Sep 17 00:00:00 2001 From: barbagalloemanuele Date: Fri, 13 Nov 2026 18:55:11 +0100 Subject: [PATCH] feat: implemented ex contact_email and implemented their tests --- pages/contact_page.py | 12 ++++++++++++ tests/features/contact_email.feature | 7 +++++++ tests/test_contact_email.py | 14 ++++++++++++++ tests/test_contact_email_bdd.py | 18 ++++++++++++++++++ 4 files changed, 51 insertions(+) create mode 100644 pages/contact_page.py create mode 100644 tests/features/contact_email.feature create mode 100644 tests/test_contact_email.py create mode 100644 tests/test_contact_email_bdd.py diff --git a/pages/contact_page.py b/pages/contact_page.py new file mode 100644 index 0000000..330664b --- /dev/null +++ b/pages/contact_page.py @@ -0,0 +1,12 @@ +from playwright.sync_api import Page + + +class ContactPage: + def __init__(self, page: Page) -> None: + self.page = page + self.email = page.get_by_test_id("contact-email") + self.phone = page.get_by_test_id("contact-phone") + self.address = page.get_by_test_id("contact-address") + + def goto(self) -> None: + self.page.goto("/contact") \ No newline at end of file diff --git a/tests/features/contact_email.feature b/tests/features/contact_email.feature new file mode 100644 index 0000000..f57e59b --- /dev/null +++ b/tests/features/contact_email.feature @@ -0,0 +1,7 @@ +Feature: Contact + + Background: + Given I am on the contact page + + Scenario: Correct Email + Then I see the contact email "student.office@example.com" \ No newline at end of file diff --git a/tests/test_contact_email.py b/tests/test_contact_email.py new file mode 100644 index 0000000..33ab9ce --- /dev/null +++ b/tests/test_contact_email.py @@ -0,0 +1,14 @@ +import re + +from playwright.sync_api import Page, expect + +from pages.contact_page import ContactPage + + +def test_contact_email(page: Page) -> None: + # arrange + contact_page = ContactPage(page) + contact_page.goto() + + # assert + expect(contact_page.email).to_have_text("student.office@example.com") \ No newline at end of file diff --git a/tests/test_contact_email_bdd.py b/tests/test_contact_email_bdd.py new file mode 100644 index 0000000..50d2076 --- /dev/null +++ b/tests/test_contact_email_bdd.py @@ -0,0 +1,18 @@ +from playwright.sync_api import Page, expect +from pytest_bdd import scenarios, given, when, then, parsers + +from pages.contact_page import ContactPage + +scenarios("features/contact_email.feature") + + +@given("I am on the contact page", target_fixture="contact_page") +def open_contact_page(page: Page) -> ContactPage: + contact_page = ContactPage(page) + contact_page.goto() + return contact_page + + +@then(parsers.parse('I see the contact email "{email}"')) +def see_contact_email(contact_page: ContactPage, email: str) -> None: + expect(contact_page.email).to_have_text(email) \ No newline at end of file