writeStorageLogFile function
Future<String>
writeStorageLogFile({
- required TestLogger logger,
- required String filePrefix,
- String? key,
- List<
StorageStepDiff> stepDiffs = const [], - List<
StorageStepDiff> secureStepDiffs = const [], - List<
StorageStepDiff> keychainStepDiffs = const [], - Map<
String, dynamic> ? keys,
Implementation
Future<String> writeStorageLogFile({
required TestLogger logger,
required String filePrefix,
String? key,
List<StorageStepDiff> stepDiffs = const [],
List<StorageStepDiff> secureStepDiffs = const [],
List<StorageStepDiff> keychainStepDiffs = const [],
Map<String, dynamic>? keys,
}) async {
if (key != null && key.isNotEmpty) {
return logger.writeLogFile(
testId: filePrefix,
name: 'storage_$key',
content: _prettyJson(StorageManager().read(key)),
extension: 'json',
);
}
final snapshot = keys ?? capturePublicStorage();
final contentMap = <String, dynamic>{
// Keep the legacy top-level fields for consumers that only understand
// public storage artifacts.
'keys': snapshot,
'steps': [for (final diff in stepDiffs) diff.toJson()],
'storage': {
'keys': snapshot,
'steps': [for (final diff in stepDiffs) diff.toJson()],
},
'secureStorage': {
'keys': keys == null ? captureSecureStorage() : <String, dynamic>{},
'steps': [for (final diff in secureStepDiffs) diff.toJson()],
},
'keychain': {
'keys':
keys == null ? await captureKeychainStorage() : <String, dynamic>{},
'steps': [for (final diff in keychainStepDiffs) diff.toJson()],
},
};
final content = _prettyJson(contentMap);
return logger.writeLogFile(
testId: filePrefix,
name: 'storage',
content: content,
extension: 'json',
);
}