import pytest BASE_URL = "http://127.0.0.1:8080" @pytest.mark.asyncio async def test_file_operations(page): # Login first await page.goto(f"{BASE_URL}/login") await page.fill("#email", "testuser@example.com") await page.fill("#password", "password123") await page.click("button[type=submit]") await page.wait_for_url("**/dashboard") # Navigate to My Files await page.click("text=My Files") await page.wait_for_url("**/files") # Create a new folder await page.click("#new-folder-btn") await page.fill("input[name=folder_name]", "TestFolder") await page.click("button[type=submit]") await page.wait_for_load_state("networkidle") assert "TestFolder" in await page.text_content() # Upload multiple files await page.click("#upload-btn") await page.set_input_files("#file-input-multiple", ["testfile.txt", "testfile2.txt"]) await page.click("#start-upload-btn") await page.wait_for_load_state("networkidle") assert "testfile.txt" in await page.text_content() assert "testfile2.txt" in await page.text_content() # Add one file to favorites await page.click("button.favorite-btn[data-name='testfile.txt']") await page.wait_for_load_state("networkidle") # Assert favorite icon changed or something, but hard, perhaps check in favorites later # Share multiple files await page.check("input[type=checkbox][data-name='testfile.txt']") await page.check("input[type=checkbox][data-name='testfile2.txt']") await page.click("#share-selected-btn") await page.wait_for_selector("#share-modal", state="visible") await page.wait_for_selector("#share-link-input") share_link = await page.input_value("#share-link-input") assert share_link.startswith(BASE_URL) await page.click("#share-modal .close") # Navigate to Shared await page.click("text=Shared") await page.wait_for_url("**/shared") await page.wait_for_load_state("networkidle") # Assert shared files are there assert "testfile.txt" in await page.text_content() assert "testfile2.txt" in await page.text_content() # Navigate to Recent await page.click("text=Recent") await page.wait_for_url("**/recent") await page.wait_for_load_state("networkidle") # Assert recent files assert "testfile.txt" in await page.text_content() # Navigate to Favorites await page.click("text=Favorites") await page.wait_for_url("**/favorites") await page.wait_for_selector("text=testfile.txt") assert "testfile.txt" in await page.text_content() # Move file to trash from favorites await page.click("button.delete-file-btn[data-name='testfile.txt']") await page.click("#delete-modal button[type=submit]") await page.wait_for_load_state("networkidle") # Should not be in favorites anymore assert "testfile.txt" not in await page.text_content() # Navigate to Trash await page.click("text=Trash") await page.wait_for_url("**/trash") await page.wait_for_selector("text=testfile.txt") assert "testfile.txt" in await page.text_content() # Permanently delete from trash await page.click("button.permanent-delete-btn[data-name='testfile.txt']") await page.click("#delete-modal button[type=submit]") await page.wait_for_load_state("networkidle") assert "testfile.txt" not in await page.text_content() # Navigate back to Files await page.click("text=My Files") await page.wait_for_url("**/files") # Delete the remaining file await page.click("button.delete-file-btn[data-name='testfile2.txt']") await page.click("#delete-modal button[type=submit]") await page.wait_for_load_state("networkidle") assert "testfile2.txt" not in await page.text_content() # Delete the folder await page.click("button.delete-file-btn[data-name='TestFolder']") await page.click("#delete-modal button[type=submit]") await page.wait_for_load_state("networkidle") assert "TestFolder" not in await page.text_content()