Files
2026-07-13 12:40:00 +08:00

49 lines
1.4 KiB
Python

"""Tests for Pi full-adaptation package wiring.
TDD RED phase: these tests define the minimum package-level contract:
- The Pi package must ship both skill and extension resources.
- The extension entrypoint must exist inside the package.
"""
from __future__ import annotations
import json
import unittest
from pathlib import Path
REPO_ROOT = Path(__file__).resolve().parents[1]
PACKAGE_JSON = REPO_ROOT / ".pi" / "skills" / "planning-with-files" / "package.json"
EXT_INDEX = (
REPO_ROOT
/ ".pi"
/ "skills"
/ "planning-with-files"
/ "extensions"
/ "planning-with-files"
/ "index.ts"
)
class PiExtensionPackagingTests(unittest.TestCase):
def setUp(self) -> None:
self.pkg = json.loads(PACKAGE_JSON.read_text(encoding="utf-8"))
def test_manifest_declares_pi_extension_entry(self) -> None:
pi_block = self.pkg.get("pi", {})
self.assertIn("extensions", pi_block)
self.assertIn(
"extensions/planning-with-files/index.ts",
pi_block.get("extensions", []),
)
def test_manifest_files_include_extensions_dir(self) -> None:
files = self.pkg.get("files", [])
self.assertIn("extensions/", files)
def test_extension_entrypoint_exists(self) -> None:
self.assertTrue(EXT_INDEX.exists(), f"missing extension entrypoint: {EXT_INDEX}")
if __name__ == "__main__":
unittest.main()