negotiator->negotiate( $requested_id, $this->manager->getDefinitions(), ); $this->assertSame($expected_id, $negotiated_id); }); } /** * Tests rendering components with component replacement. */ public function testRenderWithReplacements(): void { $build = [ '#type' => 'inline_template', '#template' => "{{ include('sdc_test:my-button') }}", '#context' => ['text' => 'Like!', 'iconType' => 'like'], ]; $crawler = $this->renderComponentRenderArray($build); $this->assertNotEmpty($crawler->filter('#sdc-wrapper button[data-component-id="sdc_test_replacements:my-button"]')); $this->assertNotEmpty($crawler->filter('#sdc-wrapper button .sdc-id:contains("sdc_test_replacements:my-button")')); // Now test component replacement on themes. $build = [ '#type' => 'inline_template', '#template' => "{{ include('sdc_theme_test:my-card') }}", '#context' => ['header' => 'Foo bar'], '#variant' => 'horizontal', ]; $crawler = $this->renderComponentRenderArray($build); $this->assertNotEmpty($crawler->filter('#sdc-wrapper .component--my-card--replaced__body')); } }