Skip to content

Commit a1c0da3

Browse files
committed
Add a test case covering rendering a custom loading template
1 parent 0313209 commit a1c0da3

File tree

3 files changed

+31
-2
lines changed

3 files changed

+31
-2
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
I'm loading a reaaaally slow live component
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<twig:deferred_component defer defer-loading-template='dummy/loading.html.twig' />

src/LiveComponent/tests/Functional/EventListener/AddLiveAttributesSubscriberTest.php

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,10 +145,10 @@ public function testItSetsDeferredTemplateIfLiveIdNotPassed(): void
145145
->filter('div')
146146
;
147147

148-
$this->assertSame('', $div->html());
148+
$this->assertSame('', trim($div->html()));
149+
$this->assertSame('live:connect->live#$render', $div->attr('data-action'));
149150

150151
$component = $this->mountComponent('deferred_component', [
151-
'defer' => false,
152152
'data-live-id' => $div->attr('data-live-id'),
153153
]);
154154

@@ -163,4 +163,31 @@ public function testItSetsDeferredTemplateIfLiveIdNotPassed(): void
163163

164164
$this->assertSame('Long awaited data', $div->html());
165165
}
166+
167+
public function testItIncludesGivenTemplateWhileLoadingDeferredComponent(): void
168+
{
169+
$div = $this->browser()
170+
->visit('/render-template/render_deferred_component_with_template')
171+
->assertSuccessful()
172+
->crawler()
173+
->filter('div')
174+
;
175+
176+
$this->assertSame('I\'m loading a reaaaally slow live component', trim($div->html()));
177+
178+
$component = $this->mountComponent('deferred_component', [
179+
'data-live-id' => $div->attr('data-live-id'),
180+
]);
181+
182+
$dehydrated = $this->dehydrateComponent($component);
183+
184+
$div = $this->browser()
185+
->visit('/_components/deferred_component?props=' . urlencode(json_encode($dehydrated->getProps())))
186+
->assertSuccessful()
187+
->crawler()
188+
->filter('div')
189+
;
190+
191+
$this->assertStringContainsString('Long awaited data', $div->html());
192+
}
166193
}

0 commit comments

Comments
 (0)