From ef1efc9310fca54d0cb92e5f096e619f91634271 Mon Sep 17 00:00:00 2001 From: dab246 Date: Tue, 6 Jan 2026 01:12:48 +0700 Subject: [PATCH] TF-4195 Add unit test for `addKeyword` in MapKeywordsExtension --- .../map_keywords_extension_test.dart | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/test/features/thread/presentation/extensions/map_keywords_extension_test.dart b/test/features/thread/presentation/extensions/map_keywords_extension_test.dart index 12844d482..80e9a9f7d 100644 --- a/test/features/thread/presentation/extensions/map_keywords_extension_test.dart +++ b/test/features/thread/presentation/extensions/map_keywords_extension_test.dart @@ -106,4 +106,69 @@ void main() { expect(map.containsKey(keyword), true); // original not mutated }); }); + + group('MapKeywordsExtension - addKeyword()', () { + test('adds keyword to empty map', () { + final map = {}; + final keyword = KeyWordIdentifier('\$seen'); + + map.addKeyword(keyword); + + expect(map.length, 1); + expect(map[keyword], true); + }); + + test('adds keyword to non-empty map', () { + final map = { + KeyWordIdentifier('\$flagged'): true, + }; + final keyword = KeyWordIdentifier('\$seen'); + + map.addKeyword(keyword); + + expect(map.length, 2); + expect(map[keyword], true); + }); + + test('overwrites existing keyword value to true', () { + final keyword = KeyWordIdentifier('\$seen'); + + final map = { + keyword: false, + }; + + map.addKeyword(keyword); + + expect(map.length, 1); + expect(map[keyword], true); + }); + + test('does not throw when map is null', () { + Map? map; + final keyword = KeyWordIdentifier('\$seen'); + + expect(() => map.addKeyword(keyword), returnsNormally); + }); + + test('calling addKeyword on null map has no side effects', () { + Map? map; + final keyword = KeyWordIdentifier('\$seen'); + + map.addKeyword(keyword); + + expect(map, isNull); + }); + + test('mutates the same map instance', () { + final map = {}; + final keyword = KeyWordIdentifier('\$seen'); + + final originalIdentity = identityHashCode(map); + + map.addKeyword(keyword); + + expect(identityHashCode(map), originalIdentity); + expect(map[keyword], true); + }); + }); }