Description
Le parser IRC est critique et n'a aucun test. C'est une zone à haut risque de régression.
Fichiers à tester
lib/core/irc/parser/irc_parser.dart
lib/core/irc/parser/tag_parser.dart
lib/core/irc/parser/source_parser.dart
lib/core/irc/parser/whox_parser.dart
lib/core/irc/parser/capability_parser.dart
lib/core/irc/parser/isupport.dart
Cas de test à couvrir
IrcParser
- Message simple:
PRIVMSG #channel :Hello
- Message avec tags:
@time=2024-01-01T00:00:00Z;msgid=abc123 :nick!user@host PRIVMSG #channel :Hello
- Message avec source:
:nick!user@host PRIVMSG #channel :Hello
- Message sans trailing:
PING server
- Cas limites: messages malformés, caractères spéciaux
TagParser
- Tags multiples
- Tags avec valeurs échappées
- Tags client-only (+typing)
SourceParser
- Nick seul
- Nick avec user et host
- Server comme source
WHOX Parser
- Parsing des champs WHO extended
- Différents formats de réponse
Structure des tests
test/core/irc/parser/
├── irc_parser_test.dart
├── tag_parser_test.dart
├── source_parser_test.dart
├── whox_parser_test.dart
├── capability_parser_test.dart
└── isupport_test.dart
Couverture cible
80% sur les fichiers parser
Effort estimé
2 jours
Référence
docs/CODE_REVIEW.md - Section 5
Description
Le parser IRC est critique et n'a aucun test. C'est une zone à haut risque de régression.
Fichiers à tester
lib/core/irc/parser/irc_parser.dartlib/core/irc/parser/tag_parser.dartlib/core/irc/parser/source_parser.dartlib/core/irc/parser/whox_parser.dartlib/core/irc/parser/capability_parser.dartlib/core/irc/parser/isupport.dartCas de test à couvrir
IrcParser
PRIVMSG #channel :Hello@time=2024-01-01T00:00:00Z;msgid=abc123 :nick!user@host PRIVMSG #channel :Hello:nick!user@host PRIVMSG #channel :HelloPING serverTagParser
SourceParser
WHOX Parser
Structure des tests
Couverture cible
80% sur les fichiers parser
Effort estimé
2 jours
Référence
docs/CODE_REVIEW.md - Section 5