-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_ui.py
85 lines (74 loc) · 4.11 KB
/
test_ui.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
"""This test_ui.py file will hold all of the UI tests for this application"""
import random
import string
from faker import Faker
from playwright.sync_api import Page, expect
fake = Faker()
Faker.seed(random.random())
# Update this test when injury form page is created
def test_login_existing_user_ui(page: Page):
"""This test will login in an existing user and confirm the console log shows "Hooray"""
page.goto("http://localhost:4200/")
page.locator('input[name="username-input"]').click()
page.locator('input[name="username-input"]').fill("JohnDoe123")
page.locator('input[name="username-input"]').press("Tab")
page.locator('input[name="password"]').fill("password123")
page.get_by_role("button", name="Sign In!").click()
page.wait_for_url("http://localhost:4200/patient-outcome-reported-measure")
assert (
page.url == "http://localhost:4200/patient-outcome-reported-measure"
) # change url to injury forms page
# Update this test when injury form page is created
def test_login_non_existent_user_ui(page: Page):
"""This test will login in an non-existent user and check console log shows "Boo" """
random_string = "".join(random.choices(string.ascii_letters + string.digits, k=10))
page.goto("http://localhost:4200/")
page.locator('app-login-page input[name="username-input"]').click()
page.locator('app-login-page input[name="username-input"]').fill(random_string)
page.locator('app-login-page input[name="password"]').click()
page.locator('app-login-page input[name="password"]').fill(random_string)
page.get_by_role("button", name="Sign In!").click()
# expect warning to be on login page
# Update this test when injury form page is created
def test_create_new_user(page: Page):
"""This test will create a new random user"""
page.goto("http://localhost:4200/")
page.get_by_role("button", name="New User").first.click()
page.wait_for_url("http://localhost:4200/sign/up")
assert page.url == "http://localhost:4200/sign/up"
page.locator('app-sign-up-page input[name="username-input"]').click()
page.locator('app-sign-up-page input[name="username-input"]').fill(fake.user_name())
page.locator('app-sign-up-page input[name="username-input"]').press("Tab")
page.locator('app-sign-up-page input[name="password"]').fill(fake.password())
page.locator('app-sign-up-page input[name="password"]').press("Tab")
page.locator('input[name="email"]').fill(fake.email())
page.locator('input[name="email"]').press("Tab")
page.locator('input[name="name"]').fill(fake.name())
page.get_by_role("button", name="Create Account!").click()
page.wait_for_url("http://localhost:4200/patient-outcome-reported-measure")
assert (
page.url == "http://localhost:4200/patient-outcome-reported-measure"
) # change to url of form page
# Update this test when injury form page is created
def test_user_already_exists(page: Page):
"""This test will confirm that a user already exists when it is trying to be created"""
page.goto("http://localhost:4200/")
page.get_by_role("button", name="New User").first.click()
page.locator('app-sign-up-page input[name="username-input"]').click()
page.locator('app-sign-up-page input[name="username-input"]').fill("JohnDoe123")
page.locator('app-sign-up-page input[name="username-input"]').press("Tab")
page.locator('app-sign-up-page input[name="password"]').fill("password123")
page.locator('app-sign-up-page input[name="password"]').press("Tab")
page.locator('input[name="email"]').press("Tab")
page.locator('input[name="name"]').fill("John Doe")
page.get_by_role("button", name="Create Account!").click()
# Expect error to appear on screen
# Update tests as more features are created
def test_download_patient_form_ui(page: Page):
"""This test will test download feature of a pdf in the table"""
test_login_existing_user_ui(page)
with page.expect_download() as download_info:
page.get_by_role("link", name="Hello").click()
download = download_info.value
assert download is not None