← Files Zendesk (Beta)ARCHIVED FILE

tests/test_zendesk_plugin_contract.py

1.19 KB · Oct 2, 2026 · 00:17 UTC

↓ Download file

import json
from pathlib import Path

REPO_ROOT = Path(__file__).resolve().parents[3]
PLUGIN_ROOT = REPO_ROOT / "plugins" / "zendesk"
ZENDESK_CONNECTOR_ID = "connector_47d5e934d8f546b98f2d2db564ca04a3"


def test_zendesk_plugin_manifest_and_app_paths_exist() -> None:
    manifest = json.loads((PLUGIN_ROOT / ".codex-plugin" / "plugin.json").read_text())
    app_manifest = json.loads((PLUGIN_ROOT / ".app.json").read_text())

    assert manifest["name"] == "zendesk"
    assert "skills" not in manifest
    assert manifest["apps"] == "./.app.json"
    assert manifest["interface"]["displayName"] == "Zendesk"
    assert app_manifest == {"apps": {"zendesk": {"id": ZENDESK_CONNECTOR_ID}}}
    assert (PLUGIN_ROOT / "assets" / "zendesk.svg").is_file()


def test_zendesk_plugin_is_registered_in_marketplace() -> None:
    marketplace = json.loads((REPO_ROOT / "marketplace.json").read_text())
    entry = next(plugin for plugin in marketplace["plugins"] if plugin["name"] == "zendesk")

    assert entry["source"]["path"] == "./plugins/zendesk"
    assert entry["policy"] == {
        "installation": "AVAILABLE",
        "authentication": "ON_INSTALL",
    }
    assert entry["category"] == "Business & Operations"

SHA-256: 58a6d1144656c4d856b8cb21acfa21c2ae192db52082641633d06a94180f5615