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.