Files
khadhroony-solana-project/deltas/0.1.3/pre.010-fix.001.md

2.4 KiB

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 :

committed_logging_profile_resolves_environment_fallback_without_changing_source_profile
env_example_inventory_contains_current_runtime_variable_with_preceding_comment

utilisaient respectivement :

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 :
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 :

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

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.