check method
void
check(
- DcqRegistry registry
)
Implementation
@override
void check(DcqRegistry registry) {
final includeMethods =
configStringList(ruleConfig, 'include-methods') ?? const [];
final includeAssertions =
configStringList(ruleConfig, 'include-assertions') ?? const [];
void checkCall(String name, ArgumentList args, AstNode node) {
if (name != 'test' &&
name != 'testWidgets' &&
!includeMethods.contains(name)) {
return;
}
if (args.arguments.length < 2) return;
final callback = args.arguments[1];
if (callback is! FunctionExpression) return;
final finder = _AssertionFinder(includeAssertions);
callback.body.accept(finder);
if (!finder.found) {
reportAtNode(node);
}
}
registry.addMethodInvocation((node) {
checkCall(node.methodName.name, node.argumentList, node);
});
registry.addFunctionExpressionInvocation((node) {
final function = node.function;
if (function is SimpleIdentifier) {
checkCall(function.name, node.argumentList, node);
}
});
}