- {{ $brandName }}{{ $brandAccent }}
+ {{ $brandName }}{{ $brandAccent }}
@if ($breadcrumb)
{{ $breadcrumb }}
@@ -54,4 +67,10 @@
-
+@if ($isHub)
+
+
+
+@else
+
+@endif
diff --git a/tests/Feature/Web/HubStaticPageShellTest.php b/tests/Feature/Web/HubStaticPageShellTest.php
new file mode 100644
index 00000000..c609ce4d
--- /dev/null
+++ b/tests/Feature/Web/HubStaticPageShellTest.php
@@ -0,0 +1,38 @@
+get('https://pressekonto.test/de/'.$path)->assertSuccessful();
+ $content = $response->getContent();
+
+ expect($content)
+ // Hub-Kopf: Utility-Bar + Hub-Header statt Spoke-Gerüst.
+ ->toContain('Publisher-Hub für')
+ ->toContain('Publisher · Hub')
+ // Hub-Footer inkl. gesetzlichem Widerrufsbutton + Modals.
+ ->toContain('Vertrag widerrufen')
+ ->toContain('open-withdrawal-modal')
+ ->toContain('open-contact-modal')
+ // Kein Spoke-Portal-Branding im Gerüst.
+ ->not->toContain('Pressemitteilungen · DACH');
+})->with(['impressum', 'agb', 'datenschutz', 'cookies', 'api']);
+
+test('the hub static page breadcrumb links back to the hub landing', function () {
+ /** @var TestCase $this */
+ $this->get('https://pressekonto.test/de/impressum')
+ ->assertSuccessful()
+ ->assertSee('href="https://pressekonto.test"', false)
+ ->assertSeeText('pressekonto');
+});
+
+test('static pages on the spoke domains keep the spoke shell', function () {
+ /** @var TestCase $this */
+ $response = $this->get('https://businessportal24.test/de/impressum')->assertSuccessful();
+ $content = $response->getContent();
+
+ expect($content)
+ ->not->toContain('Publisher-Hub für')
+ ->not->toContain('Vertrag widerrufen');
+});