69 lines
2.4 KiB
Markdown
69 lines
2.4 KiB
Markdown
<!-- file: deltas/0.1.3/pre.010-fix.001.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# Delta 0.1.3-pre.010-fix.001
|
|
|
|
## Objectif
|
|
|
|
Corriger deux tests unitaires de `pre.010` qui dépendaient à tort du répertoire courant du binaire de test pour retrouver les fichiers versionnés du workspace.
|
|
|
|
Le resolver environnemental, le parser `.env`, `.env.example`, les contrats publics et les dépendances restent inchangés.
|
|
|
|
## Cause
|
|
|
|
Les tests :
|
|
|
|
```text
|
|
committed_logging_profile_resolves_environment_fallback_without_changing_source_profile
|
|
env_example_inventory_contains_current_runtime_variable_with_preceding_comment
|
|
```
|
|
|
|
utilisaient respectivement :
|
|
|
|
```text
|
|
config/
|
|
config/schemas/
|
|
.env.example
|
|
```
|
|
|
|
comme chemins relatifs au current working directory du processus de test. Cette hypothèse n'est pas un contrat Cargo fiable et différait déjà des tests document/profile existants, qui dérivent la racine du workspace depuis `CARGO_MANIFEST_DIR`.
|
|
|
|
## Modifications
|
|
|
|
- `workspace.package.version` passe de `0.1.3-pre.10` à `0.1.3-pre.10.fix.1` ;
|
|
- le header du `Cargo.toml` racine passe de `52` à `53` ;
|
|
- `crates/ksp-config-lib/unit_tests/environment.rs` passe de la version de fichier `1` à `2` ;
|
|
- les deux tests concernés utilisent maintenant une fonction locale `workspace_root()` basée sur :
|
|
|
|
```text
|
|
env!("CARGO_MANIFEST_DIR")/../..
|
|
```
|
|
|
|
- le test du profil Logging ouvre donc les répertoires `config/` et `config/schemas/` sous la racine du workspace ;
|
|
- le test d'inventaire ouvre `.env.example` via `DEFAULT_DOTENV_EXAMPLE_PATH` sous cette même racine ;
|
|
- aucun fichier runtime Config, schema, `.env.example`, contrat public, resolver ou dépendance n'est modifié.
|
|
|
|
## Validation utilisateur de pre.010
|
|
|
|
Avant ce fix :
|
|
|
|
```text
|
|
cargo fmt --all OK
|
|
cargo check --workspace OK
|
|
cargo clippy --workspace --all-targets OK
|
|
cargo test --workspace 51/53 tests Config OK, 2 tests échoués
|
|
```
|
|
|
|
Les deux échecs sont ceux listés ci-dessus. Les autres tests, dont la priorité `process > .env > fallback`, le parser `.env`, les placeholders et les composites, passent.
|
|
|
|
## Validation attendue
|
|
|
|
```bash
|
|
cargo fmt --all
|
|
cargo check --workspace
|
|
cargo clippy --workspace --all-targets
|
|
cargo test --workspace
|
|
```
|
|
|
|
Le résultat attendu est que les 53 tests unitaires de `ksp-config-lib` passent, ainsi que les 7 tests d'API publique et l'ensemble du workspace.
|