'abc', 'createdDateTime' => '2020-01-01T00:00:00Z', 'lastModifiedDateTime' => '2020-01-02T00:00:00Z', 'target' => ['groupId' => 'group-a'], ]; $b = [ 'id' => 'abc', 'createdDateTime' => '2025-01-01T00:00:00Z', 'lastModifiedDateTime' => '2026-01-02T00:00:00Z', 'target' => ['groupId' => 'group-a'], ]; expect($hasher->hashNormalized($a))->toBe($hasher->hashNormalized($b)); }); test('normalized hashing is order-insensitive for lists', function () { $hasher = app(DriftHasher::class); $listA = [ ['target' => ['groupId' => 'group-a']], ['target' => ['groupId' => 'group-b']], ]; $listB = [ ['target' => ['groupId' => 'group-b']], ['target' => ['groupId' => 'group-a']], ]; expect($hasher->hashNormalized($listA))->toBe($hasher->hashNormalized($listB)); });