Skip to content

Commit

Permalink
Refactor options_test.dart (#3586)
Browse files Browse the repository at this point in the history
  • Loading branch information
srawlins authored Nov 22, 2023
1 parent 6368fcd commit 602e1aa
Show file tree
Hide file tree
Showing 3 changed files with 273 additions and 223 deletions.
55 changes: 50 additions & 5 deletions test/dartdoc_test_base.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,13 @@
// BSD-style license that can be found in the LICENSE file.

import 'package:analyzer/file_system/memory_file_system.dart';
import 'package:dartdoc/src/dartdoc.dart';
import 'package:dartdoc/src/logging.dart';
import 'package:dartdoc/src/model/model.dart';
import 'package:dartdoc/src/package_config_provider.dart';
import 'package:dartdoc/src/package_meta.dart';
import 'package:meta/meta.dart';
import 'package:path/path.dart' as path;

import 'src/test_descriptor_utils.dart' as d;
import 'src/utils.dart';
Expand All @@ -25,7 +28,7 @@ abstract class DartdocTestBase {
late final PackageMetaProvider packageMetaProvider;
late final MemoryResourceProvider resourceProvider;
late final FakePackageConfigProvider packageConfigProvider;
late final String packagePath;
late String packagePath;

String get libraryName;

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

bool get skipUnreachableSdkLibraries => true;

late StringBuffer outBuffer;
late StringBuffer errBuffer;

@mustCallSuper
Future<void> setUp() async {
outBuffer = StringBuffer();
errBuffer = StringBuffer();
packageMetaProvider = testPackageMetaProvider;
resourceProvider =
packageMetaProvider.resourceProvider as MemoryResourceProvider;
await setUpPackage(libraryName);
await _setUpPackage();
}

Future<void> setUpPackage(String name) async {
Future<void> _setUpPackage() async {
var pubspec = d.buildPubspecText(sdkConstraint: sdkConstraint);
String? analysisOptions;
if (experiments.isNotEmpty) {
Expand All @@ -60,7 +68,7 @@ analyzer:
''';
}
packagePath = await d.createPackage(
name,
libraryName,
pubspec: pubspec,
analysisOptions: analysisOptions,
resourceProvider: resourceProvider,
Expand All @@ -69,7 +77,7 @@ analyzer:
packageConfigProvider =
getTestPackageConfigProvider(packageMetaProvider.defaultSdkDir.path);
packageConfigProvider.addPackageToConfigFor(
packagePath, name, Uri.file('$packagePath/'));
packagePath, libraryName, Uri.file('$packagePath/'));
}

Future<PackageGraph> _bootPackageFromFiles(Iterable<d.Descriptor> files,
Expand Down Expand Up @@ -158,4 +166,41 @@ $libraryContent
.libraries
.named(libraryName);
}

Future<Dartdoc> buildDartdoc({
List<String> excludeLibraries = const [],
List<String> additionalArguments = const [],
bool skipUnreachableSdkLibraries = true,
bool useJson = false,
}) async {
final dir = resourceProvider.getFolder(resourceProvider.pathContext
.absolute(resourceProvider.pathContext.normalize(packagePath)));
final context = await generatorContextFromArgv([
'--input',
dir.path,
'--output',
path.join(packagePath, 'doc'),
'--sdk-dir',
packageMetaProvider.defaultSdkDir.path,
'--exclude',
excludeLibraries.join(','),
'--allow-tools',
'--no-link-to-remote',
...additionalArguments,
], packageMetaProvider);
final packageBuilder = PubPackageBuilder(
context,
packageMetaProvider,
packageConfigProvider,
skipUnreachableSdkLibraries: skipUnreachableSdkLibraries,
);
startLogging(
isJson: useJson,
isQuiet: true,
showProgress: true,
outSink: outBuffer,
errSink: errBuffer,
);
return await Dartdoc.fromContext(context, packageBuilder);
}
}
Loading

0 comments on commit 602e1aa

Please sign in to comment.