Skip to content

Commit 602e1aa

Browse files
authored
Refactor options_test.dart (#3586)
1 parent 6368fcd commit 602e1aa

File tree

3 files changed

+273
-223
lines changed

3 files changed

+273
-223
lines changed

test/dartdoc_test_base.dart

Lines changed: 50 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,13 @@
33
// BSD-style license that can be found in the LICENSE file.
44

55
import 'package:analyzer/file_system/memory_file_system.dart';
6+
import 'package:dartdoc/src/dartdoc.dart';
7+
import 'package:dartdoc/src/logging.dart';
68
import 'package:dartdoc/src/model/model.dart';
79
import 'package:dartdoc/src/package_config_provider.dart';
810
import 'package:dartdoc/src/package_meta.dart';
911
import 'package:meta/meta.dart';
12+
import 'package:path/path.dart' as path;
1013

1114
import 'src/test_descriptor_utils.dart' as d;
1215
import 'src/utils.dart';
@@ -25,7 +28,7 @@ abstract class DartdocTestBase {
2528
late final PackageMetaProvider packageMetaProvider;
2629
late final MemoryResourceProvider resourceProvider;
2730
late final FakePackageConfigProvider packageConfigProvider;
28-
late final String packagePath;
31+
late String packagePath;
2932

3033
String get libraryName;
3134

@@ -42,15 +45,20 @@ abstract class DartdocTestBase {
4245

4346
bool get skipUnreachableSdkLibraries => true;
4447

48+
late StringBuffer outBuffer;
49+
late StringBuffer errBuffer;
50+
4551
@mustCallSuper
4652
Future<void> setUp() async {
53+
outBuffer = StringBuffer();
54+
errBuffer = StringBuffer();
4755
packageMetaProvider = testPackageMetaProvider;
4856
resourceProvider =
4957
packageMetaProvider.resourceProvider as MemoryResourceProvider;
50-
await setUpPackage(libraryName);
58+
await _setUpPackage();
5159
}
5260

53-
Future<void> setUpPackage(String name) async {
61+
Future<void> _setUpPackage() async {
5462
var pubspec = d.buildPubspecText(sdkConstraint: sdkConstraint);
5563
String? analysisOptions;
5664
if (experiments.isNotEmpty) {
@@ -60,7 +68,7 @@ analyzer:
6068
''';
6169
}
6270
packagePath = await d.createPackage(
63-
name,
71+
libraryName,
6472
pubspec: pubspec,
6573
analysisOptions: analysisOptions,
6674
resourceProvider: resourceProvider,
@@ -69,7 +77,7 @@ analyzer:
6977
packageConfigProvider =
7078
getTestPackageConfigProvider(packageMetaProvider.defaultSdkDir.path);
7179
packageConfigProvider.addPackageToConfigFor(
72-
packagePath, name, Uri.file('$packagePath/'));
80+
packagePath, libraryName, Uri.file('$packagePath/'));
7381
}
7482

7583
Future<PackageGraph> _bootPackageFromFiles(Iterable<d.Descriptor> files,
@@ -158,4 +166,41 @@ $libraryContent
158166
.libraries
159167
.named(libraryName);
160168
}
169+
170+
Future<Dartdoc> buildDartdoc({
171+
List<String> excludeLibraries = const [],
172+
List<String> additionalArguments = const [],
173+
bool skipUnreachableSdkLibraries = true,
174+
bool useJson = false,
175+
}) async {
176+
final dir = resourceProvider.getFolder(resourceProvider.pathContext
177+
.absolute(resourceProvider.pathContext.normalize(packagePath)));
178+
final context = await generatorContextFromArgv([
179+
'--input',
180+
dir.path,
181+
'--output',
182+
path.join(packagePath, 'doc'),
183+
'--sdk-dir',
184+
packageMetaProvider.defaultSdkDir.path,
185+
'--exclude',
186+
excludeLibraries.join(','),
187+
'--allow-tools',
188+
'--no-link-to-remote',
189+
...additionalArguments,
190+
], packageMetaProvider);
191+
final packageBuilder = PubPackageBuilder(
192+
context,
193+
packageMetaProvider,
194+
packageConfigProvider,
195+
skipUnreachableSdkLibraries: skipUnreachableSdkLibraries,
196+
);
197+
startLogging(
198+
isJson: useJson,
199+
isQuiet: true,
200+
showProgress: true,
201+
outSink: outBuffer,
202+
errSink: errBuffer,
203+
);
204+
return await Dartdoc.fromContext(context, packageBuilder);
205+
}
161206
}

0 commit comments

Comments
 (0)