parseMocksNode static method
Implementation
static ({List<String> files, Map<String, dynamic> inline}) parseMocksNode(
dynamic node, {
required String testId,
required Map<String, dynamic> inputs,
required Map<String, dynamic> scenario,
String? scenarioId,
}) {
if (node == null) return (files: const [], inline: const {});
if (node is YamlMap) {
return (
files: const [],
inline: _toStringDynamicMap(
node,
inputs: inputs,
scenario: scenario,
scenarioId: scenarioId,
),
);
}
if (node is Map) {
return (
files: const [],
inline: Map<String, dynamic>.from(node),
);
}
if (node is! List) {
throw EnsembleTestFailure(
'Test "$testId" mocks must be a list of .mock.json files/inline maps '
'or an inline API mock map.',
);
}
final files = <String>[];
final inline = <String, dynamic>{};
for (final entry in node) {
final value = _unwrapYaml(
entry,
inputs: inputs,
scenario: scenario,
scenarioId: scenarioId,
);
if (value is String) {
files.add(value);
} else if (value is Map) {
inline.addAll(Map<String, dynamic>.from(value));
} else {
throw EnsembleTestFailure(
'Test "$testId" mocks entries must be .mock.json file paths or '
'inline API mock maps.',
);
}
}
return (files: files, inline: inline);
}