diff --git a/lib/src/utils/try_get_map_extension.dart b/lib/src/utils/try_get_map_extension.dart index 1cc026bc..fbaa7e11 100644 --- a/lib/src/utils/try_get_map_extension.dart +++ b/lib/src/utils/try_get_map_extension.dart @@ -39,7 +39,7 @@ class _RequiredLog implements TryGet { const _RequiredLog(); @override void call(String key, Type expected, Type actual) => Logs().w( - 'Expected "$expected" in event content for the Key "$key" but got "$actual".'); + 'Expected required "$expected" in event content for the Key "$key" but got "$actual" at ${StackTrace.current.firstLine}'); } class _OptionalLog implements TryGet { @@ -48,7 +48,7 @@ class _OptionalLog implements TryGet { void call(String key, Type expected, Type actual) { if (actual != Null) { Logs().w( - 'Expected "$expected" in event content for the Key "$key" but got "$actual".'); + 'Expected optional "$expected" in event content for the Key "$key" but got "$actual" at ${StackTrace.current.firstLine}'); } } } @@ -79,8 +79,8 @@ extension TryGetMapExtension on Map { // copy entries to ensure type check failures here and not an access return value.cast().toList(); } catch (_) { - Logs() - .w('Unable to create "List<$T>" in event content for the key "$key"'); + Logs().v( + 'Unable to create "List<$T>" in event content for the key "$key" at ${StackTrace.current.firstLine}'); return null; } } @@ -95,9 +95,20 @@ extension TryGetMapExtension on Map { // copy map to ensure type check failures here and not an access return Map.from(value.cast()); } catch (_) { - Logs().w( - 'Unable to create "Map<$A,$B>" in event content for the key "$key"'); + Logs().v( + 'Unable to create "Map<$A,$B>" in event content for the key "$key" at ${StackTrace.current.firstLine}'); return null; } } } + +extension on StackTrace { + String get firstLine { + final lines = toString().split('\n'); + return lines.length >= 3 + ? lines[2].replaceFirst('#2 ', '') + : lines.isNotEmpty + ? lines.first + : '(unknown position)'; + } +} diff --git a/test/try_get_map_extension_test.dart b/test/try_get_map_extension_test.dart index d38a1e68..7fe70c28 100644 --- a/test/try_get_map_extension_test.dart +++ b/test/try_get_map_extension_test.dart @@ -26,7 +26,7 @@ import 'package:test/test.dart'; void main() { group('Try-get-map-extension', () { - Logs().level = Level.error; + Logs().level = Level.verbose; test('it should work', () { final data = { 'str': 'foxies', @@ -40,12 +40,12 @@ void main() { expect(data.tryGet('str'), null); expect(data.tryGet('int'), 42); expect(data.tryGet('list'), [2, 3, 4]); - expect(data.tryGet>('map')?.tryGet('beep'), + expect(data.tryGetMap('map')?.tryGet('beep'), 'boop'); - expect(data.tryGet>('map')?.tryGet('meep'), - null); - expect(data.tryGet>('pam')?.tryGet('beep'), - null); + expect( + data.tryGetMap('map')?.tryGet('meep'), null); + expect( + data.tryGetMap('pam')?.tryGet('beep'), null); }); }); }