mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-10 18:22:37 -04:00
increase debug
This commit is contained in:
@@ -17,50 +17,9 @@ def login_for_end_to_end_testing(browser):
|
|||||||
# Test trying to sign in.
|
# Test trying to sign in.
|
||||||
#sign_in_button.click()
|
#sign_in_button.click()
|
||||||
|
|
||||||
# Wait for the next page to fully load.
|
|
||||||
page.wait_for_load_state("domcontentloaded")
|
|
||||||
|
|
||||||
# Check for the sign in form elements.
|
|
||||||
# NOTE: Playwright cannot find input elements by role and recommends using
|
|
||||||
# get_by_label() instead; however, hidden form elements do not have
|
|
||||||
# labels associated with them, hence the XPath!
|
|
||||||
# See https://playwright.dev/python/docs/api/class-page#page-get-by-label
|
|
||||||
# and https://playwright.dev/python/docs/locators#locate-by-css-or-xpath
|
|
||||||
# for more information.
|
|
||||||
#email_address_input = page.get_by_label("Email address")
|
|
||||||
#password_input = page.get_by_label("Password")
|
|
||||||
#continue_button = page.get_by_role("button", name=re.compile("Continue"))
|
|
||||||
|
|
||||||
# Sign in to the site.
|
|
||||||
#email_address_input.fill(os.getenv("NOTIFY_E2E_TEST_EMAIL"))
|
|
||||||
#password_input.fill(os.getenv("NOTIFY_E2E_TEST_PASSWORD"))
|
|
||||||
#continue_button.click()
|
|
||||||
|
|
||||||
# Wait for the next page to fully load.
|
# Wait for the next page to fully load.
|
||||||
page.wait_for_load_state("domcontentloaded")
|
page.wait_for_load_state("domcontentloaded")
|
||||||
print(f"PAGE ON CONFTEST AFTER SIGNIN IS {page}")
|
print(f"PAGE ON CONFTEST AFTER SIGNIN IS {page}")
|
||||||
# Check for the sign in form elements.
|
|
||||||
# NOTE: Playwright cannot find input elements by role and recommends using
|
|
||||||
# get_by_label() instead; however, hidden form elements do not have
|
|
||||||
# labels associated with them, hence the XPath!
|
|
||||||
# See https://playwright.dev/python/docs/api/class-page#page-get-by-label
|
|
||||||
# and https://playwright.dev/python/docs/locators#locate-by-css-or-xpath
|
|
||||||
# for more information.
|
|
||||||
# mfa_input = page.get_by_label('Text message code')
|
|
||||||
# continue_button = page.get_by_role('button', name=re.compile('Continue'))
|
|
||||||
|
|
||||||
# # Enter MFA code and continue.
|
|
||||||
# TODO: Revisit this at a later point in time.
|
|
||||||
# totp = pyotp.TOTP(
|
|
||||||
# os.getenv('MFA_TOTP_SECRET'),
|
|
||||||
# digits=int(os.getenv('MFA_TOTP_LENGTH'))
|
|
||||||
# )
|
|
||||||
|
|
||||||
# mfa_input.fill(totp.now())
|
|
||||||
# continue_button.click()
|
|
||||||
|
|
||||||
# page.wait_for_load_state('domcontentloaded')
|
|
||||||
|
|
||||||
# Save storage state into the file.
|
# Save storage state into the file.
|
||||||
auth_state_path = os.path.join(
|
auth_state_path = os.path.join(
|
||||||
os.getenv("NOTIFY_E2E_AUTH_STATE_PATH"), "state.json"
|
os.getenv("NOTIFY_E2E_AUTH_STATE_PATH"), "state.json"
|
||||||
@@ -102,14 +61,8 @@ def pytest_generate_tests(metafunc):
|
|||||||
def authenticated_page(end_to_end_context):
|
def authenticated_page(end_to_end_context):
|
||||||
# Open a new page and go to the site.
|
# Open a new page and go to the site.
|
||||||
page = end_to_end_context.new_page()
|
page = end_to_end_context.new_page()
|
||||||
page.goto(f"{E2E_TEST_URI}/")
|
page.goto(f"{E2E_TEST_URI}/sign-in")
|
||||||
|
|
||||||
# Wait for the next page to fully load.
|
|
||||||
page.wait_for_load_state("domcontentloaded")
|
|
||||||
|
|
||||||
# Sign in to the site - E2E test accounts are set to flow through.
|
|
||||||
sign_in_button = page.get_by_role("link", name="Sign in")
|
|
||||||
sign_in_button.click()
|
|
||||||
|
|
||||||
# Wait for the next page to fully load.
|
# Wait for the next page to fully load.
|
||||||
page.wait_for_load_state("domcontentloaded")
|
page.wait_for_load_state("domcontentloaded")
|
||||||
|
|||||||
@@ -9,78 +9,6 @@ from playwright.sync_api import expect
|
|||||||
E2E_TEST_URI = os.getenv("NOTIFY_E2E_TEST_URI")
|
E2E_TEST_URI = os.getenv("NOTIFY_E2E_TEST_URI")
|
||||||
|
|
||||||
|
|
||||||
def _setup(page):
|
|
||||||
# Prepare for adding a new service later in the test.
|
|
||||||
|
|
||||||
current_date_time = datetime.datetime.now()
|
|
||||||
new_service_name = "E2E Federal Test Service {now} - {browser_type}".format(
|
|
||||||
now=current_date_time.strftime("%m/%d/%Y %H:%M:%S"),
|
|
||||||
browser_type=page.context.browser.browser_type.name,
|
|
||||||
)
|
|
||||||
print(f"GOING TO {E2E_TEST_URI}/accounts")
|
|
||||||
page.goto(f"{E2E_TEST_URI}/accounts")
|
|
||||||
|
|
||||||
|
|
||||||
# Check to make sure that we've arrived at the next page.
|
|
||||||
page.wait_for_load_state("domcontentloaded")
|
|
||||||
print(page)
|
|
||||||
|
|
||||||
# Check to make sure that we've arrived at the next page.
|
|
||||||
# Check the page title exists and matches what we expect.
|
|
||||||
expect(page).to_have_title(re.compile("Choose service"))
|
|
||||||
|
|
||||||
# Check for the sign in heading.
|
|
||||||
sign_in_heading = page.get_by_role("heading", name="Choose service")
|
|
||||||
expect(sign_in_heading).to_be_visible()
|
|
||||||
|
|
||||||
# Retrieve some prominent elements on the page for testing.
|
|
||||||
add_service_button = page.get_by_role(
|
|
||||||
"button", name=re.compile("Add a new service")
|
|
||||||
)
|
|
||||||
|
|
||||||
expect(add_service_button).to_be_visible()
|
|
||||||
|
|
||||||
existing_service_link = page.get_by_role("link", name=new_service_name)
|
|
||||||
|
|
||||||
# Check to see if the service was already created - if so, we should fail.
|
|
||||||
# TODO: Figure out how to make this truly isolated, and/or work in a
|
|
||||||
# delete service workflow.
|
|
||||||
expect(existing_service_link).to_have_count(0)
|
|
||||||
|
|
||||||
# Click on add a new service.
|
|
||||||
add_service_button.click()
|
|
||||||
|
|
||||||
# Check to make sure that we've arrived at the next page.
|
|
||||||
page.wait_for_load_state("domcontentloaded")
|
|
||||||
|
|
||||||
# Check for the sign in heading.
|
|
||||||
about_heading = page.get_by_role("heading", name="About your service")
|
|
||||||
expect(about_heading).to_be_visible()
|
|
||||||
|
|
||||||
# Retrieve some prominent elements on the page for testing.
|
|
||||||
service_name_input = page.locator('xpath=//input[@name="name"]')
|
|
||||||
add_service_button = page.get_by_role("button", name=re.compile("Add service"))
|
|
||||||
|
|
||||||
expect(service_name_input).to_be_visible()
|
|
||||||
expect(add_service_button).to_be_visible()
|
|
||||||
|
|
||||||
# Fill in the form.
|
|
||||||
service_name_input.fill(new_service_name)
|
|
||||||
|
|
||||||
# Click on add service.
|
|
||||||
add_service_button.click()
|
|
||||||
|
|
||||||
# Check to make sure that we've arrived at the next page.
|
|
||||||
page.wait_for_load_state("domcontentloaded")
|
|
||||||
|
|
||||||
# Check for the service name title and heading.
|
|
||||||
service_heading = page.get_by_text(new_service_name, exact=True)
|
|
||||||
|
|
||||||
expect(service_heading).to_be_visible()
|
|
||||||
expect(page).to_have_title(re.compile(new_service_name))
|
|
||||||
|
|
||||||
return new_service_name
|
|
||||||
|
|
||||||
|
|
||||||
def create_new_template(page):
|
def create_new_template(page):
|
||||||
|
|
||||||
@@ -166,7 +94,73 @@ def test_create_new_template(authenticated_page):
|
|||||||
|
|
||||||
print(f"PAGE ON ENTER TEST_CREATE_NEW_TEMPLATE IS {page}")
|
print(f"PAGE ON ENTER TEST_CREATE_NEW_TEMPLATE IS {page}")
|
||||||
|
|
||||||
_setup(page)
|
current_date_time = datetime.datetime.now()
|
||||||
|
new_service_name = "E2E Federal Test Service {now} - {browser_type}".format(
|
||||||
|
now=current_date_time.strftime("%m/%d/%Y %H:%M:%S"),
|
||||||
|
browser_type=page.context.browser.browser_type.name,
|
||||||
|
)
|
||||||
|
print(f"NEW SERVICE NAME {new_service_name}")
|
||||||
|
print(f"GOING TO {E2E_TEST_URI}/accounts")
|
||||||
|
page.goto(f"{E2E_TEST_URI}/accounts")
|
||||||
|
|
||||||
|
|
||||||
|
# Check to make sure that we've arrived at the next page.
|
||||||
|
page.wait_for_load_state("domcontentloaded")
|
||||||
|
print(page)
|
||||||
|
|
||||||
|
# Check to make sure that we've arrived at the next page.
|
||||||
|
# Check the page title exists and matches what we expect.
|
||||||
|
expect(page).to_have_title(re.compile("Choose service"))
|
||||||
|
|
||||||
|
# Check for the sign in heading.
|
||||||
|
sign_in_heading = page.get_by_role("heading", name="Choose service")
|
||||||
|
expect(sign_in_heading).to_be_visible()
|
||||||
|
|
||||||
|
# Retrieve some prominent elements on the page for testing.
|
||||||
|
add_service_button = page.get_by_role(
|
||||||
|
"button", name=re.compile("Add a new service")
|
||||||
|
)
|
||||||
|
|
||||||
|
expect(add_service_button).to_be_visible()
|
||||||
|
|
||||||
|
existing_service_link = page.get_by_role("link", name=new_service_name)
|
||||||
|
|
||||||
|
# Check to see if the service was already created - if so, we should fail.
|
||||||
|
# TODO: Figure out how to make this truly isolated, and/or work in a
|
||||||
|
# delete service workflow.
|
||||||
|
expect(existing_service_link).to_have_count(0)
|
||||||
|
|
||||||
|
# Click on add a new service.
|
||||||
|
add_service_button.click()
|
||||||
|
|
||||||
|
# Check to make sure that we've arrived at the next page.
|
||||||
|
page.wait_for_load_state("domcontentloaded")
|
||||||
|
|
||||||
|
# Check for the sign in heading.
|
||||||
|
about_heading = page.get_by_role("heading", name="About your service")
|
||||||
|
expect(about_heading).to_be_visible()
|
||||||
|
|
||||||
|
# Retrieve some prominent elements on the page for testing.
|
||||||
|
service_name_input = page.locator('xpath=//input[@name="name"]')
|
||||||
|
add_service_button = page.get_by_role("button", name=re.compile("Add service"))
|
||||||
|
|
||||||
|
expect(service_name_input).to_be_visible()
|
||||||
|
expect(add_service_button).to_be_visible()
|
||||||
|
|
||||||
|
# Fill in the form.
|
||||||
|
service_name_input.fill(new_service_name)
|
||||||
|
|
||||||
|
# Click on add service.
|
||||||
|
add_service_button.click()
|
||||||
|
|
||||||
|
# Check to make sure that we've arrived at the next page.
|
||||||
|
page.wait_for_load_state("domcontentloaded")
|
||||||
|
|
||||||
|
# Check for the service name title and heading.
|
||||||
|
service_heading = page.get_by_text(new_service_name, exact=True)
|
||||||
|
|
||||||
|
expect(service_heading).to_be_visible()
|
||||||
|
expect(page).to_have_title(re.compile(new_service_name))
|
||||||
|
|
||||||
create_new_template(page)
|
create_new_template(page)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user