Refacto du code coté Python, java et coté angular afin de mieux séparer les responsabilité et d'avoir moins de répétitivité dans le code.
Some checks failed
E2E Tests / e2e (push) Waiting to run
Tests unitaires / Web (Angular · vitest + couverture) (push) Successful in 26s
Build & Push Images / tests (push) Failing after 13s
Build & Push Images / build (brain) (push) Has been skipped
Build & Push Images / build (core) (push) Has been skipped
Build & Push Images / build (web) (push) Has been skipped
Build & Push Images / build-switcher (push) Has been skipped
Tests unitaires / Brain (Python · pytest + couverture) (push) Successful in 1m12s
Tests unitaires / Core (Java · mvn test + JaCoCo) (push) Failing after 1m28s

Mise en place de tests unitaires coté Python et Angular
Mise en place de la couverture de test directement dans le workflow : le programme ne build pas si jamais un test échoue
Passage en v0.16.2 en conséquence
This commit is contained in:
2026-06-18 15:59:10 +02:00
parent eb78a75621
commit 4d049274f9
68 changed files with 4433 additions and 1360 deletions

View File

@@ -329,7 +329,16 @@ export class GameSystemEditComponent implements OnInit {
const valid = this.sections.filter(s => s.title.trim() || s.content.trim());
if (valid.length === 0) return null;
return valid
.map(s => `## ${s.title.trim() || 'Sans titre'}\n${s.content.trim()}`)
.map(s => {
// Le "## " est RESERVE aux titres de section (parseMarkdown decoupe dessus,
// tout comme le parser Java cote backend). Or le contenu genere par l'IA
// contient souvent des sous-titres "## " : sans rien faire, ils seraient
// re-interpretes comme de nouvelles sections au rechargement -> explosion
// de sections + sections vides. On les retrograde donc en "### " (un niveau
// plus bas) pour garder un round-trip stable. (### / #### ne collisionnent pas.)
const content = s.content.trim().replace(/^##[ \t]+/gm, '### ');
return `## ${s.title.trim() || 'Sans titre'}\n${content}`;
})
.join('\n\n');
}
}