Le commit 2 a fixé la NPE du /BlogSpot/Details/{id} en passant
le display template par UserDisplayHelpers.AvatarSrc, qui
défend contre un UserName null. Ce commit complète le filet
de non-régression et pose la doc d'architecture des tests.
- ApplicationUserDisplayTemplateTests : assert que le cshtml ne
concatène plus directement Model.UserName (ancien code fautif)
et qu'il utilise bien le helper. Si quelqu'un revert la ligne
4 du cshtml, les tests cassent. Les autres usages de
Model.UserName (alt, title, asp-route-id) sont autorisés : ils
ne sont pas la cause du 500, juste laids si null.
- doc/testing.md : vue d'ensemble de la stratégie de test
(conventions NonRegression/Mandatory/Smoke/Controllers, EF
in-memory via InMemoryDatabaseRoot partagé, auth stubs,
quand ne pas écrire de test).
- src/Yavsc.Tests.Shared/README.md : détails du scaffold partagé
(WebHostFixture + son cycle de vie et ses hooks,
TestAuthPolicyProvider, TestTokenIssuer) et des deux
spécialisations dans le repo
(Yavsc.Org.Tests.WebServerFixture et
Yavsc.Blogs.Tests.BlogsWebServerFixture).
- doc/README.md : entrée vers testing.md dans l'index.
39 lines
2.3 KiB
Markdown
39 lines
2.3 KiB
Markdown
# Documentation Yavsc
|
|
|
|
Index des documents d'architecture, design et références du dépôt.
|
|
La racine de l'architecture est [Architecture.md](Architecture.md).
|
|
|
|
## Architecture & design
|
|
|
|
| Document | Sujet |
|
|
|---|---|
|
|
| [Architecture.md](Architecture.md) | Sommaire racine — vision, stack, droits |
|
|
| [architecture/workflow-multi-parties.md](architecture/workflow-multi-parties.md) | Rôles client/fournisseur/coordinateur, sous-traitance, états projet |
|
|
| [architecture/domaine-musical.md](architecture/domaine-musical.md) | Production collaborative de titres musicaux sous licence libre |
|
|
| [architecture/licences.md](architecture/licences.md) | LicenceModele, seed CC/ODbL, badge projet |
|
|
| [architecture/domaines-activite.md](architecture/domaines-activite.md) | Arbre des activités, Droit à la racine |
|
|
| [architecture/dictionnaires-metier.md](architecture/dictionnaires-metier.md) | Dictionnaires métier, héritage en arbre, cycle de vie d'un terme |
|
|
| [architecture/offres-frontmatter.md](architecture/offres-frontmatter.md) | Offre fournisseur, ClasseFormulaire, ClasseDevis, parsing frontmatter |
|
|
| [architecture/postit-oidc.md](architecture/postit-oidc.md) | Client desktop PostIt, custom URI scheme, silent refresh |
|
|
| [architecture/postit.md](architecture/postit.md) | PostIt — topologie des projets, ViewLocator custo, navigation, DI, conventions de binding |
|
|
| [architecture/decoupage-organisation.md](architecture/decoupage-organisation.md) | Découpage des projets .NET (Abstract, Server, Org, Api, Blogs, Web, Org.Tests) |
|
|
| [testing.md](testing.md) | Stratégie de test : conventions des dossiers, EF Core in-memory, auth stubs, scaffold partagé |
|
|
|
|
## Roadmap & design exploration
|
|
|
|
| Document | Sujet |
|
|
|---|---|
|
|
| [ROADMAP.md](../ROADMAP.md) | Feuille de route produit (à la racine du dépôt) |
|
|
| [ddd-exploration-2026-06-14.md](ddd-exploration-2026-06-14.md) | Exploration DDD, jalons, contextes bornés, modèles cibles |
|
|
|
|
## Échantillons
|
|
|
|
| Document | Sujet |
|
|
|---|---|
|
|
| [offer-sample.md](offer-sample.md) | Échantillon d'offre fournisseur (markdown avec frontmatter) |
|
|
|
|
## Journal de travail
|
|
|
|
Documents de suivi informels (non publiés, à usage interne) :
|
|
|
|
- [dev-tracking/client-editor-overhaul.md](dev-tracking/client-editor-overhaul.md) — refonte de l'éditeur client OAuth2
|