internalRunScreenTest static method
Future<AFScreenID>
internalRunScreenTest(
- AFScreenTestID screenTestId,
- AFSingleScreenTestExecute sse,
- List<
Object?> ? params
Implementation
static Future<AFScreenID> internalRunScreenTest(AFScreenTestID screenTestId, AFSingleScreenTestExecute sse, List<Object?>? params ) async {
final screenTest = AFibF.g.screenTests.findById(screenTestId);
var screenId;
var testId;
var body;
if(screenTest != null) {
screenId = screenTest.createNavigatePush().screenId;
body = screenTest.body;
testId = body.screenId;
} else {
// this might be a re-usable screen test.
var reusable = AFibF.g.screenTests.findReusable(screenTestId);
if(reusable == null) {
for(final uiTests in AFibF.g.thirdPartyUITests.values) {
reusable = uiTests.afScreenTests.findReusable(screenTestId);
if(reusable != null) {
break;
}
}
if(reusable == null) {
throw AFException("Screen test $screenTestId is not defined");
}
}
screenId = reusable.prototype.screenIdCreator!();
testId = reusable.id;
body = AFSingleScreenPrototypeBody.createReusable(screenTestId, body: reusable.body, params: params ?? <Object>[]);
}
sse.pushScreen(screenId);
sse.startSection(testId);
await body.run(sse);
sse.endSection();
sse.popScreen();
return screenId;
}