testing library

Test helpers for D4rt bridge generator issue reproduction.

This library provides infrastructure for end-to-end testing of bridge generation issues. It creates temporary projects, generates bridges, and optionally executes D4rt scripts to verify issue reproduction.

Usage

import 'package:tom_d4rt_generator/testing.dart';

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

Classes

D4rtTester
Runs D4rt scripts and evaluations with in-memory bridge generation and subprocess-based test execution.
D4rtTestResult
Result of running a D4rt script or eval test via D4rtTester.
IssueTestHelper
Helper for creating end-to-end issue reproduction tests.
IssueTestResult
Result of running an issue test.
TestModuleConfig
Configuration for a bridge module in the test project.

Functions

runGenerationTest({required String issueId, String packageName = 'test_pkg', required Map<String, String> sourceFiles, required String barrelContent, TestModuleConfig moduleConfig = const TestModuleConfig(), bool verbose = false}) Future<IssueTestResult>
Convenience function to run only bridge generation (no D4rt execution).
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}) Future<IssueTestResult>
Convenience function to create and run an issue test.