Skip to content

Commit c47023f

Browse files
author
Sebastian BURGIN-FIX (ext)
committed
wip
1 parent 7d11973 commit c47023f

5 files changed

Lines changed: 87 additions & 0 deletions

File tree

app/Http/Controllers/Network/NetworkShowController.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ public function __invoke(string $slug): View
1414
$network = Network::query()
1515
->where('locale', app()->getLocale())
1616
->published()
17+
->active()
1718
->where('page_slug', $slug)
1819
->first();
1920

resources/views/app/network/index.blade.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ class="flex size-7 shrink-0 items-center justify-center text-muted hover:text-gr
3838
@endif
3939
</div>
4040

41+
@if($network->tier_label)
42+
<x-ui.badge :label="$network->tier_label" class="w-fit"/>
43+
@endif
44+
4145
@if($network->excerpt)
4246
<span class="text-sm text-muted">{{ $network->excerpt }}</span>
4347
@endif

tests/Feature/Controllers/Network/NetworkIndexControllerTest.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,20 @@
3838
->assertSee(NetworkCategoryEnum::SOFTWARE->getLabel());
3939
})->group('network');
4040

41+
it('shows the drawing illustration when no logo is set but a drawing exists', function () {
42+
Network::factory()->create([
43+
'key' => 'docuware',
44+
'locale' => LocaleEnum::DE->value,
45+
'name' => 'DocuWare',
46+
'logo' => null,
47+
]);
48+
49+
get(route('de-ch.network.index'))
50+
->assertOk()
51+
->assertSee('images/network/docuware.svg', escape: false)
52+
->assertDontSee('images/placeholders/network-company.svg', escape: false);
53+
})->group('network');
54+
4155
it('shows the placeholder illustration instead of the name when no logo is set', function () {
4256
Network::factory()->create([
4357
'locale' => LocaleEnum::DE->value,

tests/Feature/Controllers/Network/NetworkShowControllerTest.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<?php
22

33
use App\Enums\LocaleEnum;
4+
use App\Enums\NetworkStatusEnum;
45
use App\Enums\SessionKeyEnum;
56
use App\Models\Network;
67
use App\Models\NetworkUser;
@@ -73,6 +74,20 @@
7374
->assertNotFound();
7475
})->group('network');
7576

77+
it('returns 404 when the network has ended, even when accessed directly', function () {
78+
Network::factory()->create([
79+
'key' => 'baselhack',
80+
'locale' => LocaleEnum::DE->value,
81+
'name' => 'BaselHack',
82+
'page_slug' => 'baselhack',
83+
'published' => true,
84+
'status' => NetworkStatusEnum::ENDED->value,
85+
]);
86+
87+
get(route('de-ch.network.show', ['slug' => 'baselhack']))
88+
->assertNotFound();
89+
})->group('network');
90+
7691
it('returns 404 when no blade view exists for the page slug', function () {
7792
Network::factory()->create([
7893
'key' => 'no-view',
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
<?php
2+
3+
use App\Enums\LocaleEnum;
4+
use App\Enums\SessionKeyEnum;
5+
use App\Models\Service;
6+
use Illuminate\Support\Str;
7+
8+
use function Pest\Laravel\get;
9+
use function Pest\Laravel\withSession;
10+
11+
it('returns 200 for both locales', function (string $locale) {
12+
withSession([SessionKeyEnum::LANGUAGE->value => $locale])
13+
->get(route(Str::slug($locale).'.services.index'))
14+
->assertOk();
15+
})->with([LocaleEnum::DE->value, LocaleEnum::EN->value])->group('services');
16+
17+
it('shows a published service with name and teaser', function () {
18+
Service::factory()->create([
19+
'locale' => LocaleEnum::DE->value,
20+
'name' => 'Konzeption Visible',
21+
'teaser' => 'Sichtbarer Teaser Text',
22+
'published' => true,
23+
]);
24+
25+
get(route('de-ch.services.index'))
26+
->assertOk()
27+
->assertSee('Konzeption Visible')
28+
->assertSee('Sichtbarer Teaser Text');
29+
})->group('services');
30+
31+
it('does not show unpublished services', function () {
32+
Service::factory()->create([
33+
'locale' => LocaleEnum::DE->value,
34+
'name' => 'Hidden Service XYZ',
35+
'published' => false,
36+
]);
37+
38+
get(route('de-ch.services.index'))
39+
->assertOk()
40+
->assertDontSee('Hidden Service XYZ');
41+
})->group('services');
42+
43+
it('does not show services of another locale', function () {
44+
Service::factory()->create([
45+
'locale' => LocaleEnum::EN->value,
46+
'name' => 'English Only Service',
47+
'published' => true,
48+
]);
49+
50+
get(route('de-ch.services.index'))
51+
->assertOk()
52+
->assertDontSee('English Only Service');
53+
})->group('services');

0 commit comments

Comments
 (0)