SpaComponentTest.php in Decoupled Blocks: Vue.js 8
File
tests/src/Functional/SpaComponentTest.php
View source
<?php
namespace Drupal\Tests\pdb_vue\Functional;
use Drupal\Tests\BrowserTestBase;
class SpaComponentTest extends BrowserTestBase {
public static $modules = [
'block',
'pdb',
'pdb_vue',
];
protected $defaultTheme = 'stark';
public function testMultipleComponentsInSpaMode() {
$assert = $this
->assertSession();
$config = $this
->config('pdb_vue.settings');
$config
->set('version', 'vue2');
$config
->set('development_mode', TRUE);
$config
->set('use_spa', TRUE);
$config
->save();
$this
->drupalLogin($this
->drupalCreateUser([
'access administration pages',
'administer blocks',
]));
$this
->drupalGet('admin/structure/block/add/vue_component%3Avue_spa_component/stark');
$assert
->responseContains('Component Settings');
$assert
->fieldExists('settings[pdb_configuration][textField]');
$this
->submitForm([
'settings[pdb_configuration][textField]' => 'Test Config',
'region' => 'content',
], 'Save block');
$this
->drupalPlaceBlock('vue_component:vue_spa_component');
$this
->drupalGet('<front>');
$assert
->responseContains('<vue-spa-component text-field="Test Config" instance-id=');
$assert
->responseContains('<vue-spa-component instance-id=');
$assert
->responseMatches('/vue-spa-component\\.js(.|\\n)+spa-init\\.js/');
}
public function testMultipleV3ComponentsInSpaMode() {
$assert = $this
->assertSession();
$config = $this
->config('pdb_vue.settings');
$config
->set('version', 'vue3');
$config
->set('development_mode', TRUE);
$config
->set('use_spa', TRUE);
$config
->save();
$this
->drupalLogin($this
->drupalCreateUser([
'access administration pages',
'administer blocks',
]));
$this
->drupalGet('admin/structure/block/add/vue_component%3Avue3_spa_component/stark');
$assert
->responseContains('Component Settings');
$assert
->fieldExists('settings[pdb_configuration][textField]');
$this
->submitForm([
'settings[pdb_configuration][textField]' => 'Test Config',
'region' => 'content',
], 'Save block');
$this
->drupalPlaceBlock('vue_component:vue3_spa_component');
$this
->drupalGet('<front>');
$assert
->responseContains('<vue3-spa-component text-field="Test Config" instance-id=');
$assert
->responseContains('<vue3-spa-component instance-id=');
$assert
->responseMatches('/vue3-spa-component\\.js(.|\\n)+spa-init\\.js/');
}
}