Skip to content

Add 15 smoke tests: test command, lint execution, build flags, transitive deps#265

Merged
arncore merged 1 commit intomainfrom
test/expand-smoke-test-coverage
Apr 3, 2026
Merged

Add 15 smoke tests: test command, lint execution, build flags, transitive deps#265
arncore merged 1 commit intomainfrom
test/expand-smoke-test-coverage

Conversation

@arncore
Copy link
Copy Markdown
Owner

@arncore arncore commented Apr 3, 2026

Summary

Adds 15 new smoke tests covering I/O-bound code paths that can't be unit-tested. These exercise the real Kotlin/Native compiler, detekt JAR downloads, JRE bundling, and Maven dependency resolution inside the Docker-based smoke test environment.

New tests (15)

Area Test What it covers
Test command test_test_lifecycle Compile + run tests, cache hit on second run
test_test_no_test_dir_fails Missing src/test/ error path
test_test_filter --filter flag forwarded to test binary
Lint execution test_lint_detects_findings Actual detekt run on real Kotlin code
test_lint_verbose --verbose flag
test_lint_locked Lockfile hash persistence + --locked mode
test_lint_custom_config --config flag with custom detekt.yml
test_lint_missing_config_fails Nonexistent config file error
Build flags test_build_force_bypasses_cache --force recompiles despite cache
test_build_verbose_shows_output --verbose flag
test_locked_toolchain_mismatch_fails Lockfile version mismatch error
Init in-place test_init_in_place konvoy init without --name
test_init_in_place_lib konvoy init --lib without --name
Transitive deps test_update_transitive_deps_in_lockfile atomicfu via coroutines, required_by tracking

Coverage impact

These tests exercise the previously uncovered I/O paths in:

  • test_build.rs (was 17% → test compilation + cache + runner)
  • detekt.rs (was 47% → JAR download, lint execution, output parsing, config handling)
  • build.rs --force/--verbose/--locked flag paths
  • update.rs transitive BFS resolution + required_by tracking

Total smoke tests: 60 → 75

Test plan

  • CI smoke tests pass (requires Docker — can't run locally)
  • Shell syntax verified (bash -n tests/smoke/tests.sh)

🤖 Generated with Claude Code

New smoke tests for previously uncovered I/O-bound code paths:

Test command (test_build.rs):
- test_test_lifecycle: compile tests, cache hit on second run
- test_test_no_test_dir_fails: missing src/test/ error
- test_test_filter: --filter flag forwarded to test binary

Lint full execution (detekt.rs):
- test_lint_detects_findings: actual detekt run on real code
- test_lint_verbose: --verbose flag
- test_lint_locked: lockfile hash persistence + --locked mode
- test_lint_custom_config: --config flag with custom file
- test_lint_missing_config_fails: nonexistent config error

Build flags:
- test_build_force_bypasses_cache: --force recompiles
- test_build_verbose_shows_output: --verbose flag
- test_locked_toolchain_mismatch_fails: lockfile version mismatch

Init in-place:
- test_init_in_place: init without --name
- test_init_in_place_lib: init --lib without --name

Transitive Maven deps:
- test_update_transitive_deps_in_lockfile: atomicfu via coroutines,
  required_by tracking

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@codecov-commenter
Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@arncore arncore merged commit f2f496e into main Apr 3, 2026
18 checks passed
@arncore arncore deleted the test/expand-smoke-test-coverage branch April 3, 2026 15:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants