diff --git a/src/tests_nextcloud/conftest.py b/src/tests_nextcloud/conftest.py index 0805ce5..e84d84d 100644 --- a/src/tests_nextcloud/conftest.py +++ b/src/tests_nextcloud/conftest.py @@ -1,11 +1,13 @@ +import json import os -from src.tests_authentik.fixtures_authentik import ( - authentik_admin_context, - authentik_admin_page, - authentik_user_context, - authentik_user_page, -) +import pytest +from dotenv import dotenv_values +from playwright.sync_api import BrowserContext, Page + +from src.dir_manager import DirManager + +pytest_plugins = "src.tests_authentik.fixtures_authentik" NEXTCLOUD_DEMO_USER = { "NEXTCLOUD_USER": "next_demo_user", @@ -14,3 +16,21 @@ NEXTCLOUD_DEMO_USER = { for key, value in NEXTCLOUD_DEMO_USER.items(): os.environ[key] = value + + +@pytest.fixture +def nextcloud_admin_context(context: BrowserContext, DIR: DirManager) -> BrowserContext: + state_file = DIR.STATES / "nextcloud_admin_state.json" + storage_state = json.loads(state_file.read_bytes()) + context.add_cookies(storage_state["cookies"]) + return context + + +@pytest.fixture +def nextcloud_admin_page(nextcloud_admin_context: BrowserContext, DIR: DirManager) -> Page: + page = nextcloud_admin_context.new_page() + env_file = DIR.ENV_FILES / "nextcloud" + config: dict[str, str] = dotenv_values(env_file) # type: ignore + url = "https://" + config["DOMAIN"] + page.goto(url) + return page