Fix formatting on new tests
This commit is contained in:
@@ -35,41 +35,43 @@ def radicale_server(tmp_path: pathlib.Path) -> Generator[str, Any, None]:
|
||||
def test_delete_wrong_confirmation(page: Page, radicale_server: str) -> None:
|
||||
login(page, radicale_server)
|
||||
create_collection(page, radicale_server)
|
||||
|
||||
|
||||
# Open delete scene
|
||||
page.hover("article:not(.hidden)")
|
||||
page.click('article:not(.hidden) a[data-name="delete"]', force=True)
|
||||
|
||||
|
||||
# Input wrong confirmation
|
||||
page.fill('#deletecollectionscene input[data-name="confirmationtxt"]', "foo")
|
||||
page.click('#deletecollectionscene button[data-name="delete"]')
|
||||
|
||||
|
||||
# Check for error message
|
||||
error_locator = page.locator('#deletecollectionscene span[data-name="error"]')
|
||||
expect(error_locator).to_be_visible()
|
||||
expect(error_locator).to_contain_text("Please type DELETE in the confirmation field")
|
||||
|
||||
expect(error_locator).to_contain_text(
|
||||
"Please type DELETE in the confirmation field"
|
||||
)
|
||||
|
||||
# Scene should still be visible
|
||||
expect(page.locator('#deletecollectionscene')).to_be_visible()
|
||||
expect(page.locator("#deletecollectionscene")).to_be_visible()
|
||||
|
||||
|
||||
def test_delete_correct_confirmation(page: Page, radicale_server: str) -> None:
|
||||
login(page, radicale_server)
|
||||
create_collection(page, radicale_server)
|
||||
|
||||
|
||||
# Verify collection exists
|
||||
expect(page.locator('article:not(.hidden)')).to_have_count(1)
|
||||
|
||||
expect(page.locator("article:not(.hidden)")).to_have_count(1)
|
||||
|
||||
# Open delete scene
|
||||
page.hover("article:not(.hidden)")
|
||||
page.click('article:not(.hidden) a[data-name="delete"]', force=True)
|
||||
|
||||
|
||||
# Input correct confirmation
|
||||
page.fill('#deletecollectionscene input[data-name="confirmationtxt"]', "DELETE")
|
||||
page.click('#deletecollectionscene button[data-name="delete"]')
|
||||
|
||||
|
||||
# Verify collection is gone
|
||||
expect(page.locator('article:not(.hidden)')).to_have_count(0)
|
||||
|
||||
expect(page.locator("article:not(.hidden)")).to_have_count(0)
|
||||
|
||||
# Scene should be hidden
|
||||
expect(page.locator('#deletecollectionscene')).to_be_hidden()
|
||||
expect(page.locator("#deletecollectionscene")).to_be_hidden()
|
||||
|
||||
@@ -35,21 +35,21 @@ def radicale_server(tmp_path: pathlib.Path) -> Generator[str, Any, None]:
|
||||
def test_edit_save(page: Page, radicale_server: str) -> None:
|
||||
login(page, radicale_server)
|
||||
create_collection(page, radicale_server)
|
||||
|
||||
|
||||
# Get original values
|
||||
article = page.locator('article:not(.hidden)')
|
||||
|
||||
article = page.locator("article:not(.hidden)")
|
||||
|
||||
# Open edit scene
|
||||
page.hover("article:not(.hidden)")
|
||||
page.click('article:not(.hidden) a[data-name="edit"]', force=True)
|
||||
|
||||
|
||||
# Update title and description
|
||||
new_title = "Updated Title"
|
||||
new_description = "Updated Description"
|
||||
page.fill('#editcollectionscene input[data-name="displayname"]', new_title)
|
||||
page.fill('#editcollectionscene input[data-name="description"]', new_description)
|
||||
page.click('#editcollectionscene button[data-name="submit"]')
|
||||
|
||||
|
||||
# Verify updates in the list
|
||||
expect(article.locator('[data-name="title"]')).to_have_text(new_title)
|
||||
expect(article.locator('[data-name="description"]')).to_have_text(new_description)
|
||||
@@ -58,21 +58,25 @@ def test_edit_save(page: Page, radicale_server: str) -> None:
|
||||
def test_edit_cancel(page: Page, radicale_server: str) -> None:
|
||||
login(page, radicale_server)
|
||||
create_collection(page, radicale_server)
|
||||
|
||||
|
||||
# Get original values
|
||||
article = page.locator('article:not(.hidden)')
|
||||
article = page.locator("article:not(.hidden)")
|
||||
original_title = article.locator('[data-name="title"]').text_content()
|
||||
original_description = article.locator('[data-name="description"]').text_content()
|
||||
|
||||
|
||||
# Open edit scene
|
||||
page.hover("article:not(.hidden)")
|
||||
page.click('article:not(.hidden) a[data-name="edit"]', force=True)
|
||||
|
||||
|
||||
# Update title and description but cancel
|
||||
page.fill('#editcollectionscene input[data-name="displayname"]', "Changed Title")
|
||||
page.fill('#editcollectionscene input[data-name="description"]', "Changed Description")
|
||||
page.fill(
|
||||
'#editcollectionscene input[data-name="description"]', "Changed Description"
|
||||
)
|
||||
page.click('#editcollectionscene button[data-name="cancel"]')
|
||||
|
||||
|
||||
# Verify values remain unchanged
|
||||
expect(article.locator('[data-name="title"]')).to_have_text(original_title)
|
||||
expect(article.locator('[data-name="description"]')).to_have_text(original_description)
|
||||
expect(article.locator('[data-name="description"]')).to_have_text(
|
||||
original_description
|
||||
)
|
||||
|
||||
@@ -118,8 +118,12 @@ def test_share_with_property_overrides(page: Page, radicale_server: str) -> None
|
||||
login(page, radicale_server)
|
||||
# Create a collection with specific details
|
||||
page.click('a[data-name="new"]')
|
||||
page.locator('#createcollectionscene input[data-name="displayname"]').fill("Test Collection")
|
||||
page.locator('#createcollectionscene input[data-name="description"]').fill("Original Description")
|
||||
page.locator('#createcollectionscene input[data-name="displayname"]').fill(
|
||||
"Test Collection"
|
||||
)
|
||||
page.locator('#createcollectionscene input[data-name="description"]').fill(
|
||||
"Original Description"
|
||||
)
|
||||
page.locator('#createcollectionscene input[data-name="color"]').fill("#ff0000")
|
||||
page.click('#createcollectionscene button[data-name="submit"]')
|
||||
|
||||
@@ -128,14 +132,18 @@ def test_share_with_property_overrides(page: Page, radicale_server: str) -> None
|
||||
page.click('button[data-name="sharebytoken"]')
|
||||
|
||||
# Verify defaults
|
||||
expect(page.locator('input[data-name="description_override"]')).to_have_value("Original Description")
|
||||
expect(page.locator('input[data-name="description_override"]')).to_have_value(
|
||||
"Original Description"
|
||||
)
|
||||
expect(page.locator('input[data-name="color_override"]')).to_have_value("#ff0000")
|
||||
expect(page.locator('input[data-name="description_override"]')).to_be_disabled()
|
||||
expect(page.locator('input[data-name="color_override"]')).to_be_disabled()
|
||||
|
||||
# Set overrides
|
||||
page.click('label[for="newshare_attr_description_enabled"]')
|
||||
page.locator('input[data-name="description_override"]').fill("Overridden Description")
|
||||
page.locator('input[data-name="description_override"]').fill(
|
||||
"Overridden Description"
|
||||
)
|
||||
page.click('label[for="newshare_attr_color_enabled"]')
|
||||
page.locator('input[data-name="color_override"]').fill("#00ff00")
|
||||
|
||||
@@ -151,9 +159,15 @@ def test_share_journal_no_overrides(page: Page, radicale_server: str) -> None:
|
||||
login(page, radicale_server)
|
||||
# Create a collection of type JOURNAL
|
||||
page.click('a[data-name="new"]')
|
||||
page.locator('#createcollectionscene select[data-name="type"]').select_option("JOURNAL")
|
||||
page.locator('#createcollectionscene input[data-name="displayname"]').fill("Test Journal")
|
||||
page.locator('#createcollectionscene input[data-name="description"]').fill("Journal Description")
|
||||
page.locator('#createcollectionscene select[data-name="type"]').select_option(
|
||||
"JOURNAL"
|
||||
)
|
||||
page.locator('#createcollectionscene input[data-name="displayname"]').fill(
|
||||
"Test Journal"
|
||||
)
|
||||
page.locator('#createcollectionscene input[data-name="description"]').fill(
|
||||
"Journal Description"
|
||||
)
|
||||
page.click('#createcollectionscene button[data-name="submit"]')
|
||||
|
||||
page.hover("article:not(.hidden)")
|
||||
@@ -187,7 +201,7 @@ def test_edit_share_by_token(page: Page, radicale_server: str) -> None:
|
||||
|
||||
# Edit to RW
|
||||
page.click('tr:not(.hidden) button[data-name="edit"]')
|
||||
expect(page.locator('#newshare h1')).to_have_text("Edit Share")
|
||||
expect(page.locator("#newshare h1")).to_have_text("Edit Share")
|
||||
page.click('label[for="newshare_attr_permissions_rw"]')
|
||||
page.click('#newshare button[data-name="submit"]')
|
||||
|
||||
@@ -214,7 +228,7 @@ def test_edit_share_by_map(page: Page, radicale_server: str) -> None:
|
||||
|
||||
# Edit map share
|
||||
page.click('tr:not(.hidden) button[data-name="edit"]')
|
||||
expect(page.locator('#newshare h1')).to_have_text("Edit Share")
|
||||
expect(page.locator("#newshare h1")).to_have_text("Edit Share")
|
||||
expect(page.locator('input[data-name="shareuser"]')).to_be_disabled()
|
||||
expect(page.locator('input[data-name="sharehref"]')).to_be_disabled()
|
||||
|
||||
|
||||
@@ -36,67 +36,84 @@ def radicale_server(tmp_path: pathlib.Path) -> Generator[str, Any, None]:
|
||||
def test_upload_zero_files(page: Page, radicale_server: str) -> None:
|
||||
login(page, radicale_server)
|
||||
page.click('.fabcontainer a[data-name="upload"]')
|
||||
|
||||
|
||||
# Click upload without selecting files
|
||||
page.click('#uploadcollectionscene button[data-name="submit"]')
|
||||
|
||||
|
||||
# Check for error message at the bottom of the scene
|
||||
error_locator = page.locator('#uploadcollectionscene > span[data-name="error"]')
|
||||
expect(error_locator).to_be_visible()
|
||||
expect(error_locator).to_contain_text("Please select at least one file")
|
||||
|
||||
|
||||
def test_upload_one_file_custom_href(page: Page, radicale_server: str, tmp_path: pathlib.Path) -> None:
|
||||
def test_upload_one_file_custom_href(
|
||||
page: Page, radicale_server: str, tmp_path: pathlib.Path
|
||||
) -> None:
|
||||
login(page, radicale_server)
|
||||
|
||||
|
||||
# Create a fake file to upload
|
||||
test_file = tmp_path / "test.ics"
|
||||
test_file.write_text("BEGIN:VCALENDAR\nVERSION:2.0\nEND:VCALENDAR")
|
||||
|
||||
|
||||
page.click('.fabcontainer a[data-name="upload"]')
|
||||
|
||||
|
||||
# Upload 1 file and set custom href
|
||||
page.set_input_files('#uploadcollectionscene input[data-name="uploadfile"]', str(test_file))
|
||||
page.set_input_files(
|
||||
'#uploadcollectionscene input[data-name="uploadfile"]', str(test_file)
|
||||
)
|
||||
page.fill('#uploadcollectionscene input[data-name="href"]', "testcollection")
|
||||
page.click('#uploadcollectionscene button[data-name="submit"]')
|
||||
|
||||
|
||||
# Wait for upload to complete in the list item
|
||||
expect(page.locator('#uploadcollectionscene li:not(.hidden) [data-name="success"]')).to_be_visible()
|
||||
|
||||
expect(
|
||||
page.locator('#uploadcollectionscene li:not(.hidden) [data-name="success"]')
|
||||
).to_be_visible()
|
||||
|
||||
# Close scene
|
||||
page.click('#uploadcollectionscene button[data-name="close"]')
|
||||
|
||||
|
||||
# Verify 1 collection exists with "testcollection" in url
|
||||
expect(page.locator('article:not(.hidden)')).to_have_count(1)
|
||||
expect(page.locator('article:not(.hidden) input[data-name="url"]')).to_have_value(re.compile(r".*testcollection/.*"))
|
||||
expect(page.locator("article:not(.hidden)")).to_have_count(1)
|
||||
expect(page.locator('article:not(.hidden) input[data-name="url"]')).to_have_value(
|
||||
re.compile(r".*testcollection/.*")
|
||||
)
|
||||
|
||||
|
||||
def test_upload_two_files(page: Page, radicale_server: str, tmp_path: pathlib.Path) -> None:
|
||||
def test_upload_two_files(
|
||||
page: Page, radicale_server: str, tmp_path: pathlib.Path
|
||||
) -> None:
|
||||
login(page, radicale_server)
|
||||
|
||||
|
||||
# Create two fake files
|
||||
file1 = tmp_path / "test1.ics"
|
||||
file1.write_text("BEGIN:VCALENDAR\nVERSION:2.0\nEND:VCALENDAR")
|
||||
file2 = tmp_path / "test2.ics"
|
||||
file2.write_text("BEGIN:VCALENDAR\nVERSION:2.0\nEND:VCALENDAR")
|
||||
|
||||
|
||||
page.click('.fabcontainer a[data-name="upload"]')
|
||||
|
||||
|
||||
# Upload 2 files
|
||||
page.set_input_files('#uploadcollectionscene input[data-name="uploadfile"]', [str(file1), str(file2)])
|
||||
|
||||
page.set_input_files(
|
||||
'#uploadcollectionscene input[data-name="uploadfile"]', [str(file1), str(file2)]
|
||||
)
|
||||
|
||||
# HREF field should be hidden
|
||||
expect(page.locator('#uploadcollectionscene input[data-name="href"]')).to_be_hidden()
|
||||
expect(page.locator('#uploadcollectionscene [data-name="hreflimitmsg"]')).to_be_visible()
|
||||
|
||||
expect(
|
||||
page.locator('#uploadcollectionscene input[data-name="href"]')
|
||||
).to_be_hidden()
|
||||
expect(
|
||||
page.locator('#uploadcollectionscene [data-name="hreflimitmsg"]')
|
||||
).to_be_visible()
|
||||
|
||||
page.click('#uploadcollectionscene button[data-name="submit"]')
|
||||
|
||||
|
||||
# Wait for uploads to complete
|
||||
# Wait until 2 entries in the upload list show success
|
||||
expect(page.locator('#uploadcollectionscene li:not(.hidden) [data-name="success"]')).to_have_count(2)
|
||||
|
||||
expect(
|
||||
page.locator('#uploadcollectionscene li:not(.hidden) [data-name="success"]')
|
||||
).to_have_count(2)
|
||||
|
||||
# Close scene
|
||||
page.click('#uploadcollectionscene button[data-name="close"]')
|
||||
|
||||
# Verify 2 collections exist
|
||||
expect(page.locator('article:not(.hidden)')).to_have_count(2)
|
||||
expect(page.locator("article:not(.hidden)")).to_have_count(2)
|
||||
|
||||
Reference in New Issue
Block a user