expectArchitecture function
Runs arch_guard on projectPath and throws
ArchitectureViolationException if it finds problems.
Returns the ArchAnalysis for further assertions. Options mirror the CLI
flags (--no-fail-on-cycle, --scan-dir, --exclude, --no-workspace,
--since). With since, only problems touching files changed since this
git ref count. Throws FormatException if the baseline file exists but is
invalid, and GitException if since is set and git fails.
Implementation
Future<ArchAnalysis> expectArchitecture({
String projectPath = '.',
bool failOnCycle = true,
bool useBaseline = true,
List<String> scanDirs = const ['lib'],
List<String> exclude = const [],
bool enableWorkspace = true,
String? since,
}) async {
final analysis = await ArchAnalysis.run(
projectPath: projectPath,
scanDirs: scanDirs,
exclude: exclude,
enableWorkspace: enableWorkspace,
useBaseline: useBaseline,
since: since,
);
final failures = analysis.failures(failOnCycle: failOnCycle);
if (failures.isNotEmpty) {
throw ArchitectureViolationException(failures, analysis);
}
return analysis;
}