Adding e2e testing

This commit is contained in:
2026-06-20 10:43:08 -04:00
parent 10ab215396
commit 5e33c1d47b
14 changed files with 506 additions and 1 deletions
+56
View File
@@ -0,0 +1,56 @@
from datetime import datetime
import pytest
from playwright.sync_api import expect
from helpers import app_url, login_as_admin, skip_without_admin_credentials
def local_flight_row(page, registration):
return page.locator("#local-flights-table-body tr").filter(has_text=registration)
def confirm_timestamp(page, button_text):
expect(page.locator("#timestampModal")).to_be_visible()
expect(page.locator("#timestamp-submit-btn")).to_contain_text(button_text)
page.locator("#timestamp-submit-btn").click()
expect(page.locator("#timestampModal")).to_be_hidden()
def test_operator_books_out_local_flight_records_touch_and_go_and_lands(page):
skip_without_admin_credentials(pytest)
registration = f"GE2E{datetime.utcnow().strftime('%H%M%S')}"
page.goto(app_url("/admin"))
login_as_admin(page)
page.locator("#actionsDropdownBtn").click()
page.locator("#actionsDropdownMenu").get_by_role("link", name="🛫 Book Out (L)").click()
expect(page.locator("#localFlightModal")).to_be_visible()
page.locator("#local_registration").fill(registration)
page.locator("#local_type").fill("PA28")
page.locator("#local_pob").fill("1")
page.locator("#local_flight_type").select_option("LOCAL")
page.locator("#local_duration").fill("45")
page.locator("#local_notes").fill("E2E local flight lifecycle")
page.locator("#local-flight-form").get_by_role("button", name="🛫 Book Out").click()
expect(page.locator("#localFlightModal")).to_be_hidden()
row = local_flight_row(page, registration)
expect(row).to_be_visible()
expect(row).to_contain_text("GROUND")
row.get_by_role("button", name="TAKE OFF").click()
confirm_timestamp(page, "Confirm Takeoff")
expect(row).to_contain_text("LOCAL")
row.get_by_role("button", name="T&G").click()
expect(page.locator("#circuitModal")).to_be_visible()
page.locator("#circuit-form").get_by_role("button", name="Record Circuit").click()
expect(page.locator("#circuitModal")).to_be_hidden()
expect(row.locator("td").nth(7)).to_have_text("1")
row.get_by_role("button", name="LAND").click()
confirm_timestamp(page, "Confirm Landing")
expect(local_flight_row(page, registration)).to_have_count(0)