54 lines
1.9 KiB
Python
54 lines
1.9 KiB
Python
"""Tests for the provider catalog helpers."""
|
|
|
|
import pytest
|
|
|
|
from custom_components.auth_oidc.config.const import OIDC_PROVIDERS, REPO_ROOT_URL
|
|
from custom_components.auth_oidc.config.provider_catalog import (
|
|
get_provider_config,
|
|
get_provider_docs_url,
|
|
get_provider_name,
|
|
)
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
("provider_key", "expected_name", "expected_supports_groups"),
|
|
[
|
|
("authentik", "Authentik", True),
|
|
("generic", "OpenID Connect (SSO)", False),
|
|
],
|
|
)
|
|
def test_get_provider_config_and_name(
|
|
provider_key, expected_name, expected_supports_groups
|
|
):
|
|
"""Known providers should resolve to their configured metadata."""
|
|
config = get_provider_config(provider_key)
|
|
|
|
assert config == OIDC_PROVIDERS[provider_key]
|
|
assert get_provider_name(provider_key) == expected_name
|
|
assert config["supports_groups"] is expected_supports_groups
|
|
|
|
|
|
@pytest.mark.parametrize("provider_key", [None, "unknown", ""])
|
|
def test_provider_fallbacks(provider_key):
|
|
"""Unknown providers should fall back to neutral defaults."""
|
|
assert get_provider_config(provider_key or "unknown") == {}
|
|
assert get_provider_name(provider_key) == "Unknown Provider"
|
|
assert (
|
|
get_provider_docs_url(provider_key) == f"{REPO_ROOT_URL}/docs/configuration.md"
|
|
)
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
("provider_key", "expected_suffix"),
|
|
[
|
|
("authentik", "/docs/provider-configurations/authentik.md"),
|
|
("authelia", "/docs/provider-configurations/authelia.md"),
|
|
("pocketid", "/docs/provider-configurations/pocket-id.md"),
|
|
("kanidm", "/docs/provider-configurations/kanidm.md"),
|
|
("microsoft", "/docs/provider-configurations/microsoft-entra.md"),
|
|
],
|
|
)
|
|
def test_provider_docs_urls(provider_key, expected_suffix):
|
|
"""Known providers should point to provider-specific docs."""
|
|
assert get_provider_docs_url(provider_key) == f"{REPO_ROOT_URL}{expected_suffix}"
|