from pathlib import Path import unittest ROOT = Path(__file__).resolve().parents[1] class SharedPersimmonsCutoverTests(unittest.TestCase): def test_canonical_front_door_reuses_composed_source_owned_bytes(self): nginx = (ROOT / "gitea/teahub-nginx.conf").read_text() fly = (ROOT / "gitea/fly.toml").read_text() self.assertIn("server_name persimmons.app;", nginx) self.assertIn("root /data/pages/matcha/greentea/current/🍊;", nginx) self.assertIn('"https://persimmons.app" $http_origin;', nginx) self.assertIn('GITEA__session__SAME_SITE = "none"', fly) def test_default_server_explicitly_dispatches_pages_hosts(self): nginx = (ROOT / "gitea/teahub-nginx.conf").read_text() default = nginx.split("listen 3000 default_server;", 1)[1].split( "\n server {", 1 )[0] self.assertIn("if ($host = persimmons.app) { return 418; }", default) self.assertIn("error_page 418 = @persimmons_host;", default) self.assertIn("location @persimmons_host {", default) self.assertIn("root /data/pages/matcha/greentea/current/🍊;", default) self.assertIn("try_files $uri $uri/ =404;", default) self.assertIn("if ($host = xn--sj8h.teahub.xyz) { return 419; }", default) self.assertIn("error_page 419 = @greentea_host;", default) self.assertIn("root $greentea_host_root;", default) self.assertIn("if ($uri = /oracle) { return 308 /oracle/; }", default) self.assertIn("proxy_pass http://127.0.0.1:3001;", default) self.assertIn("location = /tea {", default) def test_extension_keeps_product_origin_but_uses_shared_authority(self): manifest = (ROOT / "persimmons-extension/manifest.json").read_text() human_api = (ROOT / "persimmons-extension/human-api.mjs").read_text() juice = (ROOT / "persimmons-extension/juice.mjs").read_text() self.assertIn('"https://persimmons.app/*"', manifest) self.assertIn("https://teahub.xyz/tea/site/chat/persimmons", human_api) self.assertIn("https://teahub.xyz/tea/site/chat/persimmons/juice/", juice) self.assertNotIn("git.persimmons.app", manifest + human_api + juice) def test_retired_standalone_deploy_entrypoints_are_absent(self): retired = [ ".gitea/workflows/persimmons-launch.yml", ".gitea/workflows/persimmons-preflight.yml", "ops/persimmons-launch.py", "ops/persimmons-preflight.py", "ops/persimmons_gitea.py", "persimmons/fly.toml", "persimmons/Dockerfile", "persimmons-gitea/fly.toml", "persimmons-gitea/Dockerfile", ] self.assertFalse([path for path in retired if (ROOT / path).exists()]) operator = (ROOT / "tea_mcp/operator_tools.py").read_text() workflow = (ROOT / ".gitea/workflows/test-persimmons.yml").read_text() self.assertNotIn('"persimmons-launch.yml"', operator) self.assertNotIn("persimmons-host-browser.cjs", workflow) self.assertNotIn("tests.test_persimmons_host", workflow) if __name__ == "__main__": unittest.main()