@@ -14,10 +14,14 @@ import 'package:dartdoc/src/io_utils.dart';
1414import 'package:dartdoc/src/logging.dart' ;
1515import 'package:dartdoc/src/warnings.dart' ;
1616import 'package:path/path.dart' as path;
17+ import 'package:pub_semver/pub_semver.dart' ;
1718import 'package:test/test.dart' ;
1819
1920import '../src/utils.dart' ;
2021
22+ final _experimentPackageAllowed =
23+ VersionRange (min: Version .parse ('2.14.0-0' ), includeMin: true );
24+
2125final _resourceProvider = pubPackageMetaProvider.resourceProvider;
2226final _pathContext = _resourceProvider.pathContext;
2327
@@ -33,8 +37,10 @@ final Folder _testPackageIncludeExclude =
3337final Folder _testPackageImportExportError =
3438 _getFolder ('testing/test_package_import_export_error' );
3539final Folder _testPackageOptions = _getFolder ('testing/test_package_options' );
36- final _testPackageCustomTemplates =
40+ final Folder _testPackageCustomTemplates =
3741 _getFolder ('testing/test_package_custom_templates' );
42+ final Folder _testPackageExperiments =
43+ _getFolder ('testing/test_package_experiments' );
3844
3945/// Convenience factory to build a [DartdocGeneratorOptionContext] and associate
4046/// it with a [DartdocOptionSet] based on the current working directory and/or
@@ -364,6 +370,13 @@ void main() {
364370 await dartdoc.generateDocsBase ();
365371 });
366372
373+ test ('generating markdown docs for experimental features does not crash' ,
374+ () async {
375+ var dartdoc = await buildDartdoc (
376+ ['--format' , 'md' ], _testPackageExperiments, tempDir);
377+ await dartdoc.generateDocsBase ();
378+ }, skip: ! _experimentPackageAllowed.allows (platformVersion));
379+
367380 test ('rel canonical prefix does not include base href' , () async {
368381 final prefix = 'foo.bar/baz' ;
369382 var dartdoc = await buildDartdoc (
0 commit comments