Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions tests/integration/fixtures/reference/plugin.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "demo",
"version": "0.1.0",
"description": "Reference plugin for integration tests.",
Expand Down
5 changes: 5 additions & 0 deletions tests/integration/test_antigravity.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
"""Antigravity end-to-end via folder install: `agy plugin install <dir>` loads the
skill and MCP server, and an ambient env var reaches the server.

Checks:
1. `agy plugin install <dir>` accepts the generated files.
2. It reports exactly one skill and one MCP server.
3. An ambient env var reaches the MCP server.

AGY forwards the ambient environment. It can't resolve a `./` command, so we point
it at the committed probe by absolute path. Auth lives under HOME (can't isolate),
so we install into the real home; the `_clean_agy` fixture uninstalls before and
Expand Down
7 changes: 7 additions & 0 deletions tests/integration/test_claude.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@
skill, `--config` sets the userConfig the server resolves
(`${user_config.demo_host}`), and a session starts the server (via the generated
`${CLAUDE_PLUGIN_ROOT}` command). Needs a session (auth), so it's `integration`.

Checks:
1. `plugin marketplace add` + `plugin install` accept the generated files.
2. `plugin details` reports the skill.
3. `--config demo_host=...` sets the userConfig declared in the manifest.
4. A session starts the server via `${CLAUDE_PLUGIN_ROOT}`, and the config
value arrives as DEMO_HOST (`${user_config.demo_host}` resolved).
"""

from __future__ import annotations
Expand Down
7 changes: 7 additions & 0 deletions tests/integration/test_codex.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
"""Codex end-to-end via folder install: the plugin installs, its MCP server starts,
and a user env var resolves into it.

Checks:
1. Marketplace install accepts the generated files.
2. A session starts the MCP server.
3. A user env var reaches it, i.e. Codex applied the `.codex-plugin/`
`env_vars` overlay to the spec server. **Needs Codex 0.150.0+**; older
versions read the spec mcp.json only and drop the variable.

Codex-legacy can't resolve a `./` command, so we point it at the committed probe
by absolute path. Needs a session (auth), so it's marked `integration`.
"""
Expand Down
6 changes: 6 additions & 0 deletions tests/integration/test_gemini.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@
the extension and its skill, the generated `${extensionPath}` command resolves the
committed probe, and an ambient env var reaches the server.

Checks:
1. `gemini extensions install <dir>` accepts the generated extension.
2. The extension and its skill are listed after install.
3. The `${extensionPath}` command in gemini-extension.json resolves.
4. An ambient env var reaches the MCP server.

Gemini forwards the ambient environment. It prompts to trust the folder (answered
on stdin) and installs into the real home; the `_clean_gemini` fixture uninstalls
before and after (before too, to recover from a crashed prior run).
Expand Down
2 changes: 1 addition & 1 deletion uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading