- Updated test functions in various test files to enhance code clarity by formatting long lines and improving indentation. - Adjusted assertions to use multi-line formatting for better readability. - Added new test cases for theme settings API to ensure proper functionality. - Ensured consistent use of line breaks and spacing across test files for uniformity.
64 lines
2.2 KiB
Python
64 lines
2.2 KiB
Python
from uuid import uuid4
|
|
|
|
from playwright.sync_api import Page, expect
|
|
|
|
|
|
def test_costs_form_loads(page: Page):
|
|
"""Verify the costs form page loads correctly."""
|
|
page.goto("/ui/costs")
|
|
expect(page).to_have_title("Costs · CalMiner")
|
|
expect(page.locator("h2:has-text('Add CAPEX Entry')")).to_be_visible()
|
|
|
|
|
|
def test_create_capex_and_opex_items(page: Page):
|
|
"""Test creating new CAPEX and OPEX items through the UI."""
|
|
# First, create a scenario to associate the costs with.
|
|
page.goto("/ui/scenarios")
|
|
scenario_name = f"Cost Test Scenario {uuid4()}"
|
|
page.fill("input[name='name']", scenario_name)
|
|
page.click("button[type='submit']")
|
|
with page.expect_response("**/api/scenarios/"):
|
|
pass # Wait for the scenario to be created
|
|
|
|
# Now, navigate to the costs page and add CAPEX and OPEX items.
|
|
page.goto("/ui/costs")
|
|
|
|
# Create a CAPEX item.
|
|
capex_desc = "Initial drilling equipment"
|
|
page.select_option("#capex-form-scenario", label=scenario_name)
|
|
page.fill("#capex-form-description", capex_desc)
|
|
page.fill("#capex-form-amount", "150000")
|
|
page.click("#capex-form button[type='submit']")
|
|
|
|
with page.expect_response("**/api/costs/capex") as response_info:
|
|
pass
|
|
assert response_info.value.status == 200
|
|
|
|
# Create an OPEX item.
|
|
opex_desc = "Monthly fuel costs"
|
|
page.select_option("#opex-form-scenario", label=scenario_name)
|
|
page.fill("#opex-form-description", opex_desc)
|
|
page.fill("#opex-form-amount", "25000")
|
|
page.click("#opex-form button[type='submit']")
|
|
|
|
with page.expect_response("**/api/costs/opex") as response_info:
|
|
pass
|
|
assert response_info.value.status == 200
|
|
|
|
# Verify the new items appear in their respective tables.
|
|
page.select_option("#costs-scenario-filter", label=scenario_name)
|
|
expect(
|
|
page.locator("#capex-table-body tr").filter(has_text=capex_desc)
|
|
).to_be_visible()
|
|
expect(
|
|
page.locator("#opex-table-body tr").filter(has_text=opex_desc)
|
|
).to_be_visible()
|
|
|
|
# Verify the feedback messages.
|
|
expect(page.locator("#capex-feedback")).to_have_text(
|
|
"Entry saved successfully."
|
|
)
|
|
expect(page.locator("#opex-feedback")).to_have_text(
|
|
"Entry saved successfully."
|
|
)
|