Skip to content

Commit 3cbaf45

Browse files
committed
fix: Fix generateIdentitiesCacheKey
1 parent 7c20db2 commit 3cbaf45

File tree

3 files changed

+32
-2
lines changed

3 files changed

+32
-2
lines changed

.github/workflows/pull-requests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
3636

3737
- name: Cache dependencies
38-
uses: actions/cache@v2
38+
uses: actions/cache@v3
3939
with:
4040
path: ${{ steps.composer-cache.outputs.dir }}
4141
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}

src/Utils/IdentitiesGenerator.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,6 @@ public static function generateIdentitiesCacheKey(string $identifier, ?object $t
3737
{
3838
$hashedTraits = $traits !== null ? '.'.sha1(serialize($traits)) : '';
3939
$hashedIdentifier = sha1($identifier);
40-
return 'Identity.'.$transient ? 'Transient' : ''.$hashedIdentifier.$hashedTraits;
40+
return 'Identity.'.($transient ? 'Transient' : '').$hashedIdentifier.$hashedTraits;
4141
}
4242
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<?php declare(strict_types=1);
2+
3+
namespace Engine\Unit\Utils;
4+
5+
use Flagsmith\Utils\IdentitiesGenerator;
6+
use PHPUnit\Framework\TestCase;
7+
8+
class IdentitiesGeneratorTest extends TestCase
9+
{
10+
11+
public function testGenerateIdentitiesCacheKey(): void
12+
{
13+
$identityId = 'test-identity-id';
14+
$traits = (object) ['key' => 'value'];
15+
$cacheKey = IdentitiesGenerator::generateIdentitiesCacheKey($identityId, $traits, null);
16+
17+
$this->assertStringContainsString('Identity.', $cacheKey);
18+
$this->assertStringContainsString(sha1($identityId), $cacheKey);
19+
}
20+
21+
public function testGenerateIdentitiesTransientCacheKey(): void
22+
{
23+
$identityId = 'test-identity-id';
24+
$traits = (object) ['key' => 'value'];
25+
$cacheKey = IdentitiesGenerator::generateIdentitiesCacheKey($identityId, $traits, true);
26+
27+
$this->assertStringContainsString('Identity.Transient', $cacheKey);
28+
$this->assertStringContainsString(sha1($identityId), $cacheKey);
29+
}
30+
}

0 commit comments

Comments
 (0)