Files
sasedev-knowledge/deltas/0.0.1/alpha.5.fix.1.md

3.2 KiB

Delta 0.0.1-alpha.5.fix.1 — layout séparé des tests unitaires Rust

Base requise

État 0.0.1-alpha.5 committé et poussé après application du history :

history/0.0.1/alpha.5.md = FAIL

La version devient :

0.0.1-alpha.5.fix.1

Cause

La gate technique d'alpha.5 passe, y compris les tests de knowledge-web-lib et les smokes HTTP.

La revue de gouvernance opérateur relève cependant que les tests unitaires restent sous src/unit_tests.rs.

PGR 0.1.1 autorise une arborescence unit_tests/ séparée avec la modalité MAY. Knowledge sélectionne désormais explicitement cette convention comme règle locale MUST.

Le défaut concerne quatre crates et doit être corrigé de manière cohérente.

Arborescence cible

crates/<crate>/
  src/
  unit_tests/
  tests/
  • unit_tests/ : tests unitaires attachés aux modules source par #[path = "..."] ;
  • tests/ : tests d'intégration Cargo qui consomment l'API publique.

Exemple :

#[cfg(test)]
#[path = "../unit_tests/source.rs"]
mod tests;

ADD

crates/knowledge-domain-lib/unit_tests/source.rs
crates/knowledge-git-api/unit_tests/lib.rs
crates/knowledge-sync-api/unit_tests/lib.rs
crates/knowledge-web-lib/unit_tests/assets.rs
crates/knowledge-web-lib/unit_tests/page.rs
scripts/audit_rust_test_layout.py
manifests/0.0.1/alpha.5.fix.1.delete.txt
deltas/0.0.1/alpha.5.fix.1.md

REPLACE

VERSION
Cargo.toml
CHANGELOG.md
RULES.md
crates/knowledge-domain-lib/src/lib.rs
crates/knowledge-domain-lib/src/source.rs
crates/knowledge-git-api/src/lib.rs
crates/knowledge-sync-api/src/lib.rs
crates/knowledge-web-lib/src/lib.rs
crates/knowledge-web-lib/src/assets.rs
crates/knowledge-web-lib/src/page.rs
docs/plans/001-V0_0_1_FOUNDATION_PLAN.md
docs/validation/001-VALIDATION_MATRIX.md

DELETE

crates/knowledge-domain-lib/src/unit_tests.rs
crates/knowledge-git-api/src/unit_tests.rs
crates/knowledge-sync-api/src/unit_tests.rs
crates/knowledge-web-lib/src/unit_tests.rs

Les suppressions sont possédées par :

manifests/0.0.1/alpha.5.fix.1.delete.txt

Audit ajouté

audit_rust_test_layout.py vérifie :

  • absence de #[test] sous src/ ;
  • absence de fichiers src/tests.rs et src/unit_tests.rs ;
  • absence de mod unit_tests; classique ;
  • rattachement effectif de chaque fichier sous unit_tests/ par un #[path = "..."].

L'audit ne traite pas tests/ comme tests internes.

Scope fonctionnel

Aucun comportement métier ou HTTP n'est modifié.

Les routes, assets, rendu Maud, manifest Vite, binds et trois launchers restent identiques à alpha.5.

Application des suppressions

Après extraction du delta, appliquer exactement le manifest :

while IFS= read -r path; do
    test -n "$path" || continue
    rm -f -- "$path"
done < manifests/0.0.1/alpha.5.fix.1.delete.txt

Ne pas supprimer d'autre chemin.

Validation attendue

La gate doit prouver l'arborescence, les rattachements, les audits Rust, Cargo/Clippy/tests, la baseline Web et les trois smokes HTTP.

Ne pas committe alpha.5.fix.1 avant production de son history à partir des résultats opérateur.