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
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ test-out-2/mic.wav
test-out-2/recording.wav
test-out-2/system.wav
build_assets/native-capture-helper
build_assets/ClosedRoomNativeCapture.app/Contents/MacOS/ClosedRoomNativeCapture
build_assets/ClosedRoomNativeCapture.app/
update-uv-dependences-llm-local-server
docs/assets/Screenshot 2026-06-26 alle 16.23.57.heic
docs/assets/Screenshot 2026-06-26 alle 16.24.33.heic
Expand Down
29 changes: 0 additions & 29 deletions build_assets/ClosedRoomNativeCapture.app/Contents/Info.plist

This file was deleted.

57 changes: 57 additions & 0 deletions test/test_build_generated_assets_contract.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
from __future__ import annotations

import subprocess
from pathlib import Path
import unittest


ROOT = Path(__file__).parents[1]
HELPER_APP = "build_assets/ClosedRoomNativeCapture.app"


class GeneratedBuildAssetsContractTests(unittest.TestCase):
def test_native_helper_app_is_generated_and_ignored(self) -> None:
tracked = subprocess.run(
["git", "ls-files", "--error-unmatch", f"{HELPER_APP}/Contents/Info.plist"],
cwd=ROOT,
capture_output=True,
text=True,
check=False,
)
ignored = subprocess.run(
["git", "check-ignore", "-q", f"{HELPER_APP}/Contents/Info.plist"],
cwd=ROOT,
check=False,
)

self.assertNotEqual(
tracked.returncode,
0,
"generated native helper Info.plist must not be tracked",
)
self.assertEqual(
ignored.returncode,
0,
"generated native helper app must remain ignored",
)

def test_build_regenerates_and_embeds_native_helper_app(self) -> None:
build_script = (ROOT / "build.sh").read_text(encoding="utf-8")

self.assertIn(
'NATIVE_HELPER_APP="$BUILD_ASSETS/ClosedRoomNativeCapture.app"',
build_script,
)
self.assertIn('rm -rf "$NATIVE_HELPER_APP"', build_script)
self.assertIn(
'cat > "$NATIVE_HELPER_APP/Contents/Info.plist" <<PLIST',
build_script,
)
self.assertIn(
'ditto "$NATIVE_HELPER_APP" "$NATIVE_HELPER_APP_IN_APP"',
build_script,
)


if __name__ == "__main__":
unittest.main()
Loading