runIssueTest function

Future<IssueTestResult> runIssueTest({
  1. required String issueId,
  2. String packageName = 'test_pkg',
  3. required Map<String, String> sourceFiles,
  4. required String barrelContent,
  5. required String d4rtScript,
  6. TestModuleConfig moduleConfig = const TestModuleConfig(),
  7. bool verbose = false,
})

Convenience function to create and run an issue test.

Returns the IssueTestResult for assertions.

Example:

test('GEN-001: type erasure', () async {
  final result = await runIssueTest(
    issueId: 'GEN-001',
    sourceFiles: {'lib/src/my_class.dart': 'class MyClass<T> { T get() => throw ""; }'},
    barrelContent: "export 'src/my_class.dart';",
    d4rtScript: 'import "package:test_pkg/test_pkg.dart"; main() => MyClass<int>().get();',
  );
  // Verify the issue manifests in the generated code
  expect(result.generatedCode, contains('<dynamic>'));
});

Implementation

Future<IssueTestResult> runIssueTest({
  required String issueId,
  String packageName = 'test_pkg',
  required Map<String, String> sourceFiles,
  required String barrelContent,
  required String d4rtScript,
  TestModuleConfig moduleConfig = const TestModuleConfig(),
  bool verbose = false,
}) async {
  final helper = IssueTestHelper(
    issueId: issueId,
    packageName: packageName,
    sourceFiles: sourceFiles,
    barrelContent: barrelContent,
    d4rtScript: d4rtScript,
    moduleConfig: moduleConfig,
    verbose: verbose,
  );
  return helper.run();
}