141 lines
4.8 KiB
Markdown
141 lines
4.8 KiB
Markdown
# Test Fixes - January 2025
|
|
|
|
**Date:** 2025-01-XX
|
|
**Status:** ✅ Complete
|
|
**Related:** Migration consolidation follow-up
|
|
|
|
## Overview
|
|
|
|
Fixed all remaining test failures after the migration consolidation work. All tests now pass across the entire workspace.
|
|
|
|
## Issues Fixed
|
|
|
|
### 1. Worker Runtime Tests (2 failures)
|
|
|
|
#### Issue 1: `test_local_runtime_shell`
|
|
- **Problem:** Assertion expected "Hello from Shell" (capitalized) but echo output was "hello from shell" (lowercase)
|
|
- **Root Cause:** Mismatch between test assertion and actual command output
|
|
- **Fix:** Updated assertion to match actual output case
|
|
- **File:** `crates/worker/src/runtime/local.rs`
|
|
- **Change:**
|
|
```diff
|
|
- assert!(result.stdout.contains("Hello from Shell"));
|
|
+ assert!(result.stdout.contains("hello from shell"));
|
|
```
|
|
|
|
#### Issue 2: `test_shell_runtime_with_params`
|
|
- **Problem:** Shell script used `$NAME` (uppercase) but parameter was exported as lowercase `$name`
|
|
- **Root Cause:** Shell runtime exports parameters with their original case, test script assumed uppercase
|
|
- **Fix:** Updated shell script to use lowercase variable name
|
|
- **File:** `crates/worker/src/runtime/shell.rs`
|
|
- **Change:**
|
|
```diff
|
|
- code: Some("echo \"Hello, $NAME!\"".to_string()),
|
|
+ code: Some("echo \"Hello, $name!\"".to_string()),
|
|
```
|
|
|
|
### 2. Documentation Tests (3 failures)
|
|
|
|
#### Issue 1: `repositories` module doctest
|
|
- **Problem:**
|
|
1. Used non-existent `PackRepository::new()` method
|
|
2. Didn't handle `Option` return from `find_by_ref()`
|
|
- **Root Cause:** Outdated example code not matching current trait-based API
|
|
- **Fix:** Updated to use trait method directly and handle Option
|
|
- **File:** `crates/common/src/repositories/mod.rs`
|
|
- **Changes:**
|
|
- Use `PackRepository::find_by_ref(db.pool(), "core")` (trait method)
|
|
- Wrap in `if let Some(pack)` to handle Option return
|
|
|
|
#### Issue 2: `mq` module doctest
|
|
- **Problem:**
|
|
1. Used wrong API: `connection.create_channel()` instead of `&connection`
|
|
2. Called non-existent `PublisherConfig::default()`
|
|
- **Root Cause:** Outdated example not reflecting current Publisher API
|
|
- **Fix:** Updated to use correct Publisher constructor with explicit config
|
|
- **File:** `crates/common/src/mq/mod.rs`
|
|
- **Changes:**
|
|
- Construct `PublisherConfig` with required fields
|
|
- Pass `&connection` reference and config to `Publisher::new()`
|
|
|
|
#### Issue 3: `template_resolver` module doctest
|
|
- **Problem:** Import used relative path `template_resolver::` instead of crate-qualified path
|
|
- **Root Cause:** Doctest runs in isolated context requiring full crate path
|
|
- **Fix:** Changed import to use full crate path
|
|
- **File:** `crates/sensor/src/template_resolver.rs`
|
|
- **Change:**
|
|
```diff
|
|
- use template_resolver::{TemplateContext, resolve_templates};
|
|
+ use attune_sensor::template_resolver::{TemplateContext, resolve_templates};
|
|
```
|
|
|
|
## Test Results Summary
|
|
|
|
### ✅ All Tests Passing
|
|
|
|
**Total Tests:** ~700+ across all crates
|
|
|
|
| Crate | Unit Tests | Integration Tests | Doc Tests | Status |
|
|
|-------|------------|-------------------|-----------|--------|
|
|
| attune-api | 41 | 16 | 0 (2 ignored) | ✅ Pass |
|
|
| attune-common | 69 | 516 | 4 | ✅ Pass |
|
|
| attune-executor | 4 | 10 | 0 | ✅ Pass |
|
|
| attune-sensor | 27 | 3 | 1 | ✅ Pass |
|
|
| attune-worker | 26 | 0 | 0 | ✅ Pass |
|
|
| attune-notifier | 0 | 0 | 0 | ✅ Pass |
|
|
|
|
**Integration Test Breakdown (attune-common):**
|
|
- Action repository: 20 tests
|
|
- Enforcement repository: 26 tests
|
|
- Event repository: 25 tests
|
|
- Execution repository: 23 tests
|
|
- Identity repository: 17 tests
|
|
- Inquiry repository: 25 tests
|
|
- Key repository: 36 tests
|
|
- Migration validation: 23 tests
|
|
- Notification repository: 39 tests
|
|
- Pack repository: 21 tests
|
|
- Permission repository: 36 tests
|
|
- Artifact repository: 30 tests
|
|
- Runtime repository: 25 tests
|
|
- Worker repository: 36 tests
|
|
- Rule repository: 26 tests
|
|
- Sensor repository: 42 tests
|
|
- Trigger repository: 22 tests
|
|
|
|
### Ignored Tests
|
|
- 11 tests intentionally ignored (require specific infrastructure or long-running operations)
|
|
- These are expected and documented
|
|
|
|
## Verification
|
|
|
|
```bash
|
|
# Run full test suite
|
|
cargo test --workspace
|
|
|
|
# Results:
|
|
# - 0 failures
|
|
# - 700+ tests passing
|
|
# - 11 tests ignored (expected)
|
|
```
|
|
|
|
## Impact
|
|
|
|
- ✅ No functional code changes required
|
|
- ✅ Only test assertions and documentation examples updated
|
|
- ✅ All migration-related work validated
|
|
- ✅ Project ready for continued development
|
|
|
|
## Notes
|
|
|
|
- All test failures were either:
|
|
1. Simple assertion mismatches (wrong case/format)
|
|
2. Outdated documentation examples
|
|
- No actual bugs or functional issues discovered
|
|
- The migration consolidation work is fully validated
|
|
- All repository tests confirm schema integrity
|
|
|
|
## Related Work
|
|
|
|
- See: `work-summary/2025-01-migration-consolidation.md`
|
|
- Previous thread: Migration consolidation from 18 files to 5 |