Skip to content

Commit 2415ad5

Browse files
committedNov 14, 2024
Fixed broken tests
1 parent 59ef26c commit 2415ad5

File tree

11 files changed

+100
-25
lines changed

11 files changed

+100
-25
lines changed
 

‎composer.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,11 @@
135135
"@test"
136136
],
137137
"test": [
138-
"vendor/bin/phpunit --stop-on-failure"
138+
"vendor/bin/phpunit"
139+
],
140+
"testsingle": [
141+
"@test-setup",
142+
"vendor/bin/phpunit tests/Api/ScreensTest.php"
139143
],
140144
"test-setup": [
141145
"bin/console --env=test cache:clear --no-debug",

‎fixtures/feed.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,10 @@ App\Entity\Tenant\Feed:
1616
id: '<ulid($createdAt)>'
1717
configuration:
1818
feeds: [12345]
19+
feed_relations_checksum_test:
20+
feedSource: '@feed_source_relations_checksum_test'
21+
slide: '@slide_relations_checksum_test'
22+
tenant: '@tenant_xyz'
23+
createdAt (unique): '<dateTimeBetween("-2 years", "-2 days")>'
24+
modifiedAt: '<dateTimeBetween($createdAt, "-1 days")>'
25+
id: '<ulid($createdAt)>'

‎fixtures/feed_source.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,6 @@ App\Entity\Tenant\FeedSource:
2121
token: '1234567890'
2222
supportedFeedOutputType: 'instagram'
2323
tenant: '@tenant_abc'
24+
feed_source_relations_checksum_test (extends feed):
25+
title: 'feed_source_relations_checksum_test'
26+
tenant: '@tenant_xyz'

‎fixtures/playlist.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,14 @@ App\Entity\Tenant\Playlist:
6464
tenants:
6565
- '@tenant_xyz'
6666
tenant: '@tenant_def'
67+
68+
playlist_relations_checksum_test (extends playlist):
69+
title: 'playlist_relations_checksum_test'
70+
isCampaign: true
71+
playlistSlides:
72+
- '@playlist_slide_relations_checksum_test'
73+
tenant: '@tenant_xyz'
74+
75+
playlist_screen_test_update (extends playlist):
76+
title: 'playlist_screen_test_update'
77+
tenant: '@tenant_xyz'

‎fixtures/playlist_screen_region.yaml

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,23 +11,23 @@ App\Entity\Tenant\PlaylistScreenRegion:
1111
id: '<ulid($createdAt)>'
1212

1313
playlist_screen_region_abc_1 (extends playlist_screen_region):
14-
playlist: '@playlist_abc_*'
14+
playlist: '@playlist_abc_1'
1515
screen: '@screen_abc_1'
1616
tenant: '@tenant_abc'
1717
playlist_screen_region_abc_2 (extends playlist_screen_region):
18-
playlist: '@playlist_abc_*'
18+
playlist: '@playlist_abc_2'
1919
screen: '@screen_abc_2'
2020
tenant: '@tenant_abc'
2121
playlist_screen_region_abc_3 (extends playlist_screen_region):
22-
playlist: '@playlist_abc_*'
22+
playlist: '@playlist_abc_3'
2323
screen: '@screen_abc_3'
2424
tenant: '@tenant_abc'
2525
playlist_screen_region_abc_4 (extends playlist_screen_region):
26-
playlist: '@playlist_abc_*'
26+
playlist: '@playlist_abc_4'
2727
screen: '@screen_abc_4'
2828
tenant: '@tenant_abc'
2929
playlist_screen_region_abc_5 (extends playlist_screen_region):
30-
playlist: '@playlist_abc_*'
30+
playlist: '@playlist_abc_5'
3131
screen: '@screen_abc_5'
3232
tenant: '@tenant_abc'
3333

@@ -51,3 +51,8 @@ App\Entity\Tenant\PlaylistScreenRegion:
5151
playlist: '@playlist_xyz_*'
5252
screen: '@screen_xyz_5'
5353
tenant: '@tenant_xyz'
54+
playlist_screen_region_screen_update (extends playlist_screen_region):
55+
playlist: '@playlist_screen_test_update'
56+
screen: '@screen_test_update'
57+
tenant: '@tenant_xyz'
58+
region: '@screen_layout_region_full'

‎fixtures/playlist_slide.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,7 @@ App\Entity\Tenant\PlaylistSlide:
3030
playlist: '@playlist_def_shared_with_abc'
3131
slide: '@slide_def_shared_to_abc'
3232
tenant: '@tenant_def'
33+
playlist_slide_relations_checksum_test (extends playlist_slide):
34+
playlist: '@playlist_relations_checksum_test'
35+
slide: '@slide_relations_checksum_test'
36+
tenant: '@tenant_xyz'

‎fixtures/screen.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,12 @@ App\Entity\Tenant\Screen:
3535
title: 'screen_xyz_<current()>'
3636
screenLayout: "@screen_layout_id_full"
3737
tenant: "@tenant_xyz"
38+
screen_relations_checksum_test (extends screen):
39+
title: 'screen_relations_checksum_test'
40+
screenCampaigns: ['@screen_campaign_relations_checksum_test']
41+
screenLayout: "@screen_layout_id_full"
42+
tenant: "@tenant_xyz"
43+
screen_test_update (extends screen):
44+
title: 'screen_test_update'
45+
screenLayout: "@screen_layout_id_full"
46+
tenant: "@tenant_xyz"

‎fixtures/screen_campaign.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,7 @@ App\Entity\Tenant\ScreenCampaign:
1717
screen: '@screen_xyz_*'
1818
campaign: '@playlist_xyz_*'
1919
tenant: '@tenant_xyz'
20+
screen_campaign_relations_checksum_test (extends screen_campaign):
21+
screen: '@screen_relations_checksum_test'
22+
campaign: '@playlist_relations_checksum_test'
23+
tenant: '@tenant_xyz'

‎fixtures/slide.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,6 @@ App\Entity\Tenant\Slide:
3434
content:
3535
maxEntries: 6
3636
tenant: '@tenant_abc'
37+
slide_relations_checksum_test (extends slide):
38+
title: 'slide_relations_checksum_test'
39+
tenant: '@tenant_xyz'

‎tests/Api/ScreensTest.php

Lines changed: 35 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,10 @@ public function testCreateScreen(): void
152152
'orientation' => 'vertical',
153153
'inScreenGroups' => '/v2/screens/'.$response->toArray()['id'].'/screen-groups',
154154
'enableColorSchemeChange' => true,
155-
'regions' => ['/v2/screens/'.$response->toArray()['id'].'/regions/'.$regionUlidLeft.'/playlists', '/v2/screens/'.$response->toArray()['id'].'/regions/'.$regionUlidRight.'/playlists'],
155+
'regions' => [
156+
'/v2/screens/'.$response->toArray()['id'].'/regions/'.$regionUlidRight.'/playlists',
157+
'/v2/screens/'.$response->toArray()['id'].'/regions/'.$regionUlidLeft.'/playlists',
158+
],
156159
]);
157160
$this->assertMatchesRegularExpression('@^/v\d/\w+/([A-Za-z0-9]{26})$@', $response->toArray()['@id']);
158161

@@ -183,18 +186,18 @@ public function testCreateInvalidScreen(): void
183186

184187
public function testUpdateScreen(): void
185188
{
189+
$client = $this->getAuthenticatedClient('ROLE_ADMIN');
190+
186191
$playlistScreenRegionRepository = $this->entityManager->getRepository(PlaylistScreenRegion::class);
187192
$playlistScreenRegionCountBefore = $playlistScreenRegionRepository->count([]);
188193

189-
$playlistIri = $this->findIriBy(Playlist::class, ['title' => 'playlist_abc_3']);
194+
$playlistIri = $this->findIriBy(Playlist::class, ['title' => 'playlist_screen_test_update']);
190195
$playlistUlid = $this->iriHelperUtils->getUlidFromIRI($playlistIri);
191196
$regionIri = $this->findIriBy(ScreenLayoutRegions::class, ['title' => 'full']);
192197
$regionUlid = $this->iriHelperUtils->getUlidFromIRI($regionIri);
198+
$screenIri = $this->findIriBy(Screen::class, ['title' => 'screen_test_update']);
193199

194-
$client = $this->getAuthenticatedClient('ROLE_ADMIN');
195-
$iri = $this->findIriBy(Screen::class, ['title' => 'screen_abc_3']);
196-
197-
$response = $client->request('PUT', $iri, [
200+
$client->request('PUT', $screenIri, [
198201
'json' => [
199202
'title' => 'Updated title',
200203
'regions' => [['playlists' => [['id' => $playlistUlid, 'weight' => 0]], 'regionId' => $regionUlid]],
@@ -207,14 +210,16 @@ public function testUpdateScreen(): void
207210
$this->assertResponseIsSuccessful();
208211
$this->assertJsonContains([
209212
'@type' => 'Screen',
210-
'@id' => $iri,
213+
'@id' => $screenIri,
211214
'title' => 'Updated title',
212-
'regions' => ['/v2/screens/'.$response->toArray()['id'].'/regions/'.$regionUlid.'/playlists'],
215+
'regions' => [$screenIri.'/regions/'.$regionUlid.'/playlists'],
213216
]);
214217
$playlistScreenRegionCountAfter = $playlistScreenRegionRepository->count([]);
215218
$this->assertEquals($playlistScreenRegionCountBefore, $playlistScreenRegionCountAfter, 'PlaylistScreenRegion count should not change');
216219

217-
$response = $client->request('PUT', $iri, [
220+
// Test that PUT without regions property will not change playlist screen regions.
221+
222+
$client->request('PUT', $screenIri, [
218223
'json' => [
219224
'title' => 'Updated title 2',
220225
],
@@ -225,11 +230,31 @@ public function testUpdateScreen(): void
225230

226231
$this->assertResponseIsSuccessful();
227232
$this->assertJsonContains([
228-
'@id' => $iri,
233+
'@id' => $screenIri,
229234
'title' => 'Updated title 2',
230235
]);
231236
$playlistScreenRegionCountAfter = $playlistScreenRegionRepository->count([]);
232237
$this->assertEquals($playlistScreenRegionCountBefore, $playlistScreenRegionCountAfter, 'PlaylistScreenRegion count should not change');
238+
239+
//
240+
241+
$client->request('PUT', $screenIri, [
242+
'json' => [
243+
'title' => 'Updated title 3',
244+
'regions' => [['playlists' => [], 'regionId' => $regionUlid]],
245+
],
246+
'headers' => [
247+
'Content-Type' => 'application/ld+json',
248+
],
249+
]);
250+
251+
$this->assertResponseIsSuccessful();
252+
$this->assertJsonContains([
253+
'@id' => $screenIri,
254+
'title' => 'Updated title 3',
255+
]);
256+
$playlistScreenRegionCountAfter = $playlistScreenRegionRepository->count([]);
257+
$this->assertEquals($playlistScreenRegionCountBefore - 1, $playlistScreenRegionCountAfter, 'PlaylistScreenRegion count should go 1 down');
233258
}
234259

235260
public function testDeleteScreen(): void

‎tests/EventListener/RelationsChecksumListenerTest.php

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,18 +50,18 @@ public function testVersion(): void
5050
public function testRelationsChecksumPropagation(): void
5151
{
5252
/** @var Tenant\Screen $screen */
53-
$screen = $this->em->getRepository(Tenant\Screen::class)->findOneBy(['title' => 'screen_abc_1']);
53+
$screen = $this->em->getRepository(Tenant\Screen::class)->findOneBy(['title' => 'screen_relations_checksum_test']);
5454
$screenChecksums = $screen->getRelationsChecksum();
5555

56-
/** @var Tenant\ScreenGroupCampaign $campaign */
57-
$campaign = $screen->getScreenCampaigns()->first();
58-
$campaignChecksums = $campaign->getRelationsChecksum();
56+
/** @var Tenant\ScreenCampaign $screenCampaign */
57+
$screenCampaign = $screen->getScreenCampaigns()->first();
58+
$screenCampaignChecksums = $screenCampaign->getRelationsChecksum();
5959

60-
$playlist = $campaign->getCampaign();
60+
$playlist = $screenCampaign->getCampaign();
6161
$playlistChecksums = $playlist->getRelationsChecksum();
6262

6363
/** @var Tenant\Slide $slide */
64-
$slide = $this->em->getRepository(Tenant\Slide::class)->findOneBy(['title' => 'slide_abc_1']);
64+
$slide = $playlist->getPlaylistSlides()->first()->getSlide();
6565
$slideChecksums = $slide->getRelationsChecksum();
6666

6767
$feed = $slide->getFeed();
@@ -83,9 +83,9 @@ public function testRelationsChecksumPropagation(): void
8383
$this->assertNotEquals($playlistChecksums['slides'], $playlist->getRelationsChecksum()['slides']);
8484
$this->assertFalse($playlist->isChanged());
8585

86-
$this->em->refresh($campaign);
87-
$this->assertNotEquals($campaignChecksums['campaign'], $campaign->getRelationsChecksum()['campaign']);
88-
$this->assertFalse($campaign->isChanged());
86+
$this->em->refresh($screenCampaign);
87+
$this->assertNotEquals($screenCampaignChecksums['campaign'], $screenCampaign->getRelationsChecksum()['campaign']);
88+
$this->assertFalse($screenCampaign->isChanged());
8989

9090
$this->em->refresh($screen);
9191
$this->assertNotEquals($screenChecksums['campaigns'], $screen->getRelationsChecksum()['campaigns']);

0 commit comments

Comments
 (0)
Please sign in to comment.