28 lines
1.2 KiB
Python
28 lines
1.2 KiB
Python
import pytest
|
|
from playwright.sync_api import BrowserContext, Page, expect
|
|
|
|
from src.dir_manager import DirManager
|
|
|
|
|
|
def test_visit_from_domain(authentik_admin_context: BrowserContext, dotenv_config: dict[str, str]):
|
|
"""visit wordpress directly with admin_session, expect not to be logged in"""
|
|
page = authentik_admin_context.new_page()
|
|
url = "https://" + dotenv_config["DOMAIN"]
|
|
page.goto(url)
|
|
with pytest.raises(AssertionError):
|
|
# look for admin bar
|
|
expect(page.locator("#wpadminbar")).to_be_visible(timeout=3_000)
|
|
|
|
|
|
def setup_wordpress_admin_session(authentik_admin_page: Page, DIR: DirManager):
|
|
"""visit wordpress from authentik with admin_session to create wordpress_admin_session"""
|
|
with authentik_admin_page.expect_popup() as event_context:
|
|
authentik_admin_page.get_by_role("link", name="Wordpress").click()
|
|
page_wordpress = event_context.value
|
|
# look for content wrapper
|
|
expect(page_wordpress.locator("#wpcontent")).to_be_visible()
|
|
# look for admin bar
|
|
expect(page_wordpress.locator("#wpadminbar")).to_be_visible()
|
|
# save session
|
|
context = page_wordpress.context
|
|
context.storage_state(path=DIR.STATES / "wordpress_admin_state.json")
|