@@ -1318,6 +1318,76 @@ class AppLocalizationsEn extends AppLocalizations {
13181318 ^''' ));
13191319 }
13201320 });
1321+
1322+ testWithoutContext ('no description generates generic comment' , () {
1323+ final Directory l10nDirectory = fs.currentDirectory.childDirectory ('lib' ).childDirectory ('l10n' )
1324+ ..createSync (recursive: true );
1325+ l10nDirectory.childFile (defaultTemplateArbFileName)
1326+ .writeAsStringSync (r'''
1327+ {
1328+ "helloWorld": "Hello world!"
1329+ }''' );
1330+ l10nDirectory.childFile (esArbFileName)
1331+ .writeAsStringSync (singleEsMessageArbFileString);
1332+ LocalizationsGenerator (
1333+ fileSystem: fs,
1334+ inputPathString: defaultL10nPathString,
1335+ outputPathString: defaultL10nPathString,
1336+ templateArbFileName: defaultTemplateArbFileName,
1337+ outputFileString: defaultOutputFileString,
1338+ classNameString: defaultClassNameString,
1339+ logger: logger,
1340+ )
1341+ ..loadResources ()
1342+ ..writeOutputFiles ();
1343+ final File baseLocalizationsFile = fs.file (
1344+ fs.path.join (syntheticL10nPackagePath, 'output-localization-file.dart' )
1345+ );
1346+ expect (baseLocalizationsFile.existsSync (), isTrue);
1347+
1348+ final String baseLocalizationsFileContents = fs.file (
1349+ fs.path.join (syntheticL10nPackagePath, 'output-localization-file.dart' )
1350+ ).readAsStringSync ();
1351+ expect (baseLocalizationsFileContents, contains ('/// No description provided for @helloWorld.' ));
1352+ });
1353+
1354+ testWithoutContext ('multiline descriptions are correctly formatted as comments' , () {
1355+ final Directory l10nDirectory = fs.currentDirectory.childDirectory ('lib' ).childDirectory ('l10n' )
1356+ ..createSync (recursive: true );
1357+ l10nDirectory.childFile (defaultTemplateArbFileName)
1358+ .writeAsStringSync (r'''
1359+ {
1360+ "helloWorld": "Hello world!",
1361+ "@helloWorld": {
1362+ "description": "The generic example string in every language.\nUse this for tests!"
1363+ }
1364+ }''' );
1365+ l10nDirectory.childFile (esArbFileName)
1366+ .writeAsStringSync (singleEsMessageArbFileString);
1367+ LocalizationsGenerator (
1368+ fileSystem: fs,
1369+ inputPathString: defaultL10nPathString,
1370+ outputPathString: defaultL10nPathString,
1371+ templateArbFileName: defaultTemplateArbFileName,
1372+ outputFileString: defaultOutputFileString,
1373+ classNameString: defaultClassNameString,
1374+ logger: logger,
1375+ )
1376+ ..loadResources ()
1377+ ..writeOutputFiles ();
1378+ final File baseLocalizationsFile = fs.file (
1379+ fs.path.join (syntheticL10nPackagePath, 'output-localization-file.dart' )
1380+ );
1381+ expect (baseLocalizationsFile.existsSync (), isTrue);
1382+
1383+ final String baseLocalizationsFileContents = fs.file (
1384+ fs.path.join (syntheticL10nPackagePath, 'output-localization-file.dart' )
1385+ ).readAsStringSync ();
1386+ expect (baseLocalizationsFileContents, contains ('''
1387+ /// The generic example string in every language.
1388+ /// Use this for tests!''' ));
1389+ });
1390+
13211391 testWithoutContext ('message without placeholders - should generate code comment with description and template message translation' , () {
13221392 _standardFlutterDirectoryL10nSetup (fs);
13231393 LocalizationsGenerator (
0 commit comments