@@ -13,7 +13,7 @@ contract TheGuildBadgeRegistryTest is Test {
1313
1414 function test_CreateBadge_SucceedsAndEmitsEvent () public {
1515 bytes32 name = bytes32 ("BADGE_ALPHA " );
16- bytes32 description = bytes32 ("First badge " );
16+ bytes memory description = bytes ("First badge " );
1717
1818 vm.expectEmit (true , false , false , true );
1919 emit TheGuildBadgeRegistry.BadgeCreated (
@@ -24,7 +24,7 @@ contract TheGuildBadgeRegistryTest is Test {
2424
2525 registry.createBadge (name, description);
2626
27- (bytes32 rName , bytes32 rDesc , address creator ) = registry.getBadge (
27+ (bytes32 rName , bytes memory rDesc , address creator ) = registry.getBadge (
2828 name
2929 );
3030 assertEq (rName, name, "name mismatch " );
@@ -37,10 +37,10 @@ contract TheGuildBadgeRegistryTest is Test {
3737
3838 function test_CreateBadge_RevertOnDuplicate () public {
3939 bytes32 name = bytes32 ("BADGE_DUP " );
40- registry.createBadge (name, bytes32 ("desc " ));
40+ registry.createBadge (name, bytes ("desc " ));
4141
4242 vm.expectRevert (bytes ("DUPLICATE_NAME " ));
43- registry.createBadge (name, bytes32 ("another " ));
43+ registry.createBadge (name, bytes ("another " ));
4444 }
4545
4646 function test_GetBadge_RevertOnMissing () public {
@@ -50,23 +50,34 @@ contract TheGuildBadgeRegistryTest is Test {
5050
5151 function test_CreateBadge_RevertOnEmptyName () public {
5252 vm.expectRevert (bytes ("EMPTY_NAME " ));
53- registry.createBadge (bytes32 (0 ), bytes32 ("desc " ));
53+ registry.createBadge (bytes32 (0 ), bytes ("desc " ));
5454 }
5555
5656 function test_GetBadgeAt_ByIndex () public {
5757 bytes32 a = bytes32 ("BADGE_A " );
5858 bytes32 b = bytes32 ("BADGE_B " );
59- registry.createBadge (a, bytes32 ("descA " ));
60- registry.createBadge (b, bytes32 ("descB " ));
59+ registry.createBadge (a, bytes ("descA " ));
60+ registry.createBadge (b, bytes ("descB " ));
6161
62- (bytes32 n0 , bytes32 d0 , address c0 ) = registry.getBadgeAt (0 );
62+ (bytes32 n0 , bytes memory d0 , address c0 ) = registry.getBadgeAt (0 );
6363 assertEq (n0, a);
64- assertEq (d0, bytes32 ( "descA " ));
64+ assertEq (keccak256 (d0), keccak256 ( bytes ( "descA " ) ));
6565 assertEq (c0, address (this ));
6666
67- (bytes32 n1 , bytes32 d1 , address c1 ) = registry.getBadgeAt (1 );
67+ (bytes32 n1 , bytes memory d1 , address c1 ) = registry.getBadgeAt (1 );
6868 assertEq (n1, b);
69- assertEq (d1, bytes32 ( "descB " ));
69+ assertEq (keccak256 (d1), keccak256 ( bytes ( "descB " ) ));
7070 assertEq (c1, address (this ));
7171 }
72+ function test_CreateBadge_AllowsLongDescription () public {
73+ bytes32 name = bytes32 ("BADGE_LONG " );
74+ bytes memory longDesc = bytes (
75+ "Long descriptions matter. Short buffers do not. This test proves it. "
76+ );
77+
78+ registry.createBadge (name, longDesc);
79+
80+ (, bytes memory rDesc ,) = registry.getBadge (name);
81+ assertEq (keccak256 (rDesc), keccak256 (longDesc), "long description mismatch " );
82+ }
7283}
0 commit comments