performE2eSampleSuite function
Sequentially runs scenarios through E2eService.runSession.
Implementation
Future<E2eSuiteVerdict> performE2eSampleSuite(
E2eService service, {
required String appDir,
required E2eModel model,
String? modelId,
String? device,
required List<String> extensions,
required List<String> cliPrefix,
required List<E2eScenario> scenarios,
}) async {
if (scenarios.isEmpty) {
throw const E2ePhaseFailure(
E2eFailureCode.invalidRequest,
'e2e sample suite refused: scenarios must not be empty',
);
}
final List<E2eScenarioVerdict> results = <E2eScenarioVerdict>[];
for (final E2eScenario scenario in scenarios) {
final E2eVerdict verdict = await service.runSession(
E2eSessionRequest(
goal: scenario.goal,
appDir: appDir,
model: model,
modelId: modelId,
device: device,
extensions: extensions,
cliPrefix: cliPrefix,
doneReasonPattern: scenario.doneReasonPattern,
doneEvidencePattern: scenario.doneEvidencePattern,
expectation: scenario.expectation,
),
);
results.add(E2eScenarioVerdict(scenario: scenario, verdict: verdict));
}
return E2eSuiteVerdict(
status: results.every((E2eScenarioVerdict result) => result.verdict.passed)
? E2eVerdictStatus.pass
: E2eVerdictStatus.fail,
model: model,
scenarios: results,
);
}