from scripts.language_detect import ( detect_language, is_dep_manifest, is_gha_file, is_supported_source, known_unsupported_language, ) def test_known_unsupported_languages(): assert known_unsupported_language("cmd/main.go") == "Go" assert known_unsupported_language("lib/foo.rb") == "Ruby" assert known_unsupported_language("src/Main.java") == "Java" assert known_unsupported_language("src/main.rs") == "Rust" assert known_unsupported_language("src/App.kt") == "Kotlin" def test_known_unsupported_returns_none_for_supported(): assert known_unsupported_language("src/api.py") is None assert known_unsupported_language("src/index.ts") is None def test_known_unsupported_returns_none_for_non_source(): assert known_unsupported_language("README.md") is None assert known_unsupported_language("Dockerfile") is None assert known_unsupported_language("config.yaml") is None def test_python_file_detected(): assert detect_language("src/api.py") == "python" def test_typescript_extensions(): assert detect_language("src/index.ts") == "typescript" assert detect_language("src/component.tsx") == "typescript" def test_javascript_extensions(): assert detect_language("src/index.js") == "javascript" assert detect_language("src/component.jsx") == "javascript" assert detect_language("src/module.mjs") == "javascript" assert detect_language("src/legacy.cjs") == "javascript" def test_csharp_file_detected(): assert detect_language("Program.cs") == "csharp" def test_unsupported_source_returns_none(): assert detect_language("main.go") is None assert detect_language("script.rb") is None assert detect_language("Main.java") is None def test_non_source_files_return_none(): assert detect_language("README.md") is None assert detect_language("Dockerfile") is None assert detect_language("config.yaml") is None def test_is_dep_manifest_python(): assert is_dep_manifest("requirements.txt") assert is_dep_manifest("requirements-dev.txt") assert is_dep_manifest("pyproject.toml") assert is_dep_manifest("poetry.lock") assert is_dep_manifest("Pipfile.lock") def test_is_dep_manifest_javascript(): assert is_dep_manifest("package.json") assert is_dep_manifest("package-lock.json") assert is_dep_manifest("yarn.lock") assert is_dep_manifest("pnpm-lock.yaml") def test_is_dep_manifest_csharp(): assert is_dep_manifest("MyApp.csproj") assert is_dep_manifest("MyApp.sln") assert is_dep_manifest("packages.config") def test_is_supported_source(): assert is_supported_source("src/api.py") assert is_supported_source("src/index.ts") assert not is_supported_source("main.go") assert not is_supported_source("README.md") def test_lua_file_detected(): assert detect_language("src/game.lua") == "lua" def test_lua_is_supported_source(): assert is_supported_source("src/game.lua") def test_lua_not_in_known_unsupported(): assert known_unsupported_language("src/game.lua") is None def test_powershell_extensions_detected(): assert detect_language("scripts/Deploy.ps1") == "powershell" assert detect_language("module/Helpers.psm1") == "powershell" assert detect_language("module/Helpers.psd1") == "powershell" def test_powershell_is_supported_source(): assert is_supported_source("scripts/Deploy.ps1") def test_powershell_not_in_known_unsupported(): assert known_unsupported_language("scripts/Deploy.ps1") is None def test_gha_workflow_yml_detected(): assert is_gha_file(".github/workflows/ci.yml") def test_gha_workflow_yaml_detected(): assert is_gha_file(".github/workflows/deploy.yaml") def test_gha_actions_action_yml_detected(): assert is_gha_file(".github/actions/my-action/action.yml") def test_non_gha_yaml_not_detected(): assert not is_gha_file("config/app.yml") assert not is_gha_file("docker-compose.yaml") assert not is_gha_file("README.md") def test_gha_file_wrong_extension(): assert not is_gha_file(".github/workflows/ci.json") def test_gha_file_windows_style_path(): assert is_gha_file(".github\\workflows\\ci.yml")