aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/integration/test_upload.py4
-rw-r--r--tests/playwright/test_basic.py20
2 files changed, 23 insertions, 1 deletions
diff --git a/tests/integration/test_upload.py b/tests/integration/test_upload.py
index 454785f..f09b468 100644
--- a/tests/integration/test_upload.py
+++ b/tests/integration/test_upload.py
@@ -1,3 +1,5 @@
+import re
+
from sqlalchemy import select, func
from webtest import Upload
@@ -30,7 +32,7 @@ def test_upload(testapp, dbsession, route_path, logged_in):
]
result = finish_form.submit().maybe_follow()
- assert "<h1>FoOoOo Bar&#39;s Testtrack</h1>" in result.text
+ assert re.search("<h1>\\s*FoOoOo Bar&#39;s Testtrack", result.text)
# Step 4: Ensure the track is stored right
track = dbsession.execute(select(models.Track)).scalar_one()
diff --git a/tests/playwright/test_basic.py b/tests/playwright/test_basic.py
index a98e52d..66ec326 100644
--- a/tests/playwright/test_basic.py
+++ b/tests/playwright/test_basic.py
@@ -146,3 +146,23 @@ def test_delete(page: Page, playwright_helper, dbaccess, data_manager):
assert track is None
with pytest.raises(FileNotFoundError):
data_manager.open(track_id)
+
+
+def test_favour(page: Page, playwright_helper, dbaccess, data_manager):
+ john = playwright_helper.john_doe()
+ playwright_helper.login()
+ track_id = playwright_helper.add_track().id
+
+ page.goto(f"/track/{track_id}")
+
+ with page.expect_request_finished(predicate=lambda req: "/toggle-favourite" in req.url):
+ page.locator(".favourite-star").click()
+
+ track = dbaccess.execute(select(models.Track).filter_by(id=track_id)).scalar_one_or_none()
+ assert john.id in [user.id for user in track.favourees]
+
+ with page.expect_request_finished(predicate=lambda req: "/toggle-favourite" in req.url):
+ page.locator(".favourite-star").click()
+
+ dbaccess.refresh(track, ["favourees"])
+ assert john.id not in [user.id for user in track.favourees]