mergedInitialState static method

  1. @visibleForTesting
Map<String, dynamic> mergedInitialState(
  1. Map<String, dynamic> suite,
  2. Map<String, dynamic> test
)

Suite initialState is the base; test values override per key within storage, secureStorage, keychain, and env.

Implementation

@visibleForTesting
static Map<String, dynamic> mergedInitialState(
  Map<String, dynamic> suite,
  Map<String, dynamic> test,
) {
  if (suite.isEmpty) return test;
  if (test.isEmpty) return Map<String, dynamic>.from(suite);

  Map<String, dynamic> section(String key) {
    final suiteSection = _asStringKeyedMap(suite[key]);
    final testSection = _asStringKeyedMap(test[key]);
    if (suiteSection.isEmpty && testSection.isEmpty) {
      return const <String, dynamic>{};
    }
    return <String, dynamic>{...suiteSection, ...testSection};
  }

  final merged = <String, dynamic>{};
  for (final key in const ['storage', 'secureStorage', 'keychain', 'env']) {
    final value = section(key);
    if (value.isNotEmpty) {
      merged[key] = value;
    }
  }
  return merged;
}