Skip to content

Commit 5685195

Browse files
authored
add a test for the 'external' option for categories (#3638)
1 parent 9a31dc1 commit 5685195

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

test/dartdoc_options_test.dart

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// BSD-style license that can be found in the LICENSE file.
44

55
import 'package:analyzer/file_system/file_system.dart';
6+
import 'package:analyzer/file_system/memory_file_system.dart';
67
import 'package:dartdoc/src/dartdoc_options.dart';
78
import 'package:dartdoc/src/io_utils.dart';
89
import 'package:dartdoc/src/package_meta.dart';
@@ -758,4 +759,31 @@ dartdoc:
758759
equals('parent'));
759760
});
760761
});
762+
763+
group('CategoryConfiguration', () {
764+
const configData = '''
765+
CategoryOne:
766+
external:
767+
- name: 'package:web'
768+
url: https://pub.dev/documentation/web/latest/
769+
docs: Lorem ipsum.
770+
''';
771+
772+
test('parses external items', () {
773+
final resourceProvider = MemoryResourceProvider();
774+
final yamlMap = loadYaml(configData) as YamlMap;
775+
final result =
776+
CategoryConfiguration.fromYamlMap(yamlMap, '', resourceProvider);
777+
expect(result.categoryDefinitions, hasLength(1));
778+
779+
final name = result.categoryDefinitions.keys.first;
780+
final definition = result.categoryDefinitions[name]!;
781+
expect(name, 'CategoryOne');
782+
expect(definition.externalItems, hasLength(1));
783+
784+
final item = definition.externalItems.first;
785+
expect(item.name, 'package:web');
786+
expect(item.url, 'https://pub.dev/documentation/web/latest/');
787+
});
788+
});
761789
}

0 commit comments

Comments
 (0)