ruleTest function
Implementation
@isTest
Future<void> ruleTest(
String description,
String content,
List<ExpectedText> expectedResults, {
String? relativePath,
}) async {
assert(expectedResults.every((e) => e.length == null) ||
expectedResults.every((e) => e.length != null));
assert(expectedResults.every((e) => e.offset == null) ||
expectedResults.every((e) => e.offset != null));
assert(expectedResults.every((e) => e.startColumn == null) ||
expectedResults.every((e) => e.startColumn != null));
assert(expectedResults.every((e) => e.startLine == null) ||
expectedResults.every((e) => e.startLine != null));
test.test(description, () async {
final relative =
relativePath ?? p.join(kDartTool, 'sidecar_tests', 'lib', 'main.dart');
final path = p.absolute(relative);
await modifyFile(relative, content: content);
final resolvedUnit = await _context.currentSession.getResolvedUnit(path)
as ResolvedUnitResult;
for (final rule in _registry.rules) {
rule.setUnitContext(resolvedUnit);
}
resolvedUnit.unit.accept(_visitor);
final results = _visitor.results
.whereType<LintResult>()
.map((e) => e.toExpectedText())
.toList();
test.expect(results, test.unorderedEquals(expectedResults));
});
}