blob: de288a01b16c0db17bc4ae97e00748f84afd5195 (
plain)
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
|
from playwright.sync_api import Page, expect
from sqlalchemy import select
from fietsboek import models
def test_view_link(page: Page, playwright_helper, dbaccess):
playwright_helper.login()
track = playwright_helper.add_track()
page.goto(f"/track/{track.id}")
page.locator(".btn", has_text="Share").click()
expect(page.locator("a", has_text=track.link_secret)).to_be_visible()
def test_view_with_link(page: Page, playwright_helper, dbaccess):
track = playwright_helper.add_track()
page.goto(f"/track/{track.id}?secret={track.link_secret}")
expect(page.locator("h1")).to_have_text("Another awesome track")
def test_view_wrong_link(page: Page, playwright_helper, dbaccess):
track = playwright_helper.add_track()
with page.expect_response(lambda resp: resp.status == 403):
page.goto(f"/track/{track.id}?secret=foobar")
assert "Forbidden" in page.content()
def test_change_link(page: Page, playwright_helper, dbaccess):
playwright_helper.login()
track = playwright_helper.add_track()
old_secret = track.link_secret
page.goto(f"/track/{track.id}")
page.locator(".btn", has_text="Share").click()
page.get_by_role("button", name="Invalidate link").click()
page.wait_for_load_state()
query = select(models.Track).filter_by(id=track.id)
new_track = dbaccess.execute(query).scalar_one()
assert old_secret != new_track.link_secret
|