diff --git a/CHANGELOG.md b/CHANGELOG.md index 3429f78..2ef49ca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ Yii Framework 2 bootstrap5 extension Change Log 2.0.2 under development ----------------------- +- Bug #5: BootstrapWidgetTrait::registerPlugin do nothing if no clientOptions is provided (dicrtarasov) - Enh #11: Brought back close button api (simialbi) - Bug #6: yii\bootstrap5\BaseHtml::staticControl(): Argument #1 ($value) must be of type string, int given (dicrtarasov) - Bug #9: fixed default ActiveField::hintOptions (dicrtarasov) diff --git a/src/BootstrapWidgetTrait.php b/src/BootstrapWidgetTrait.php index 4706dd0..9ddef95 100644 --- a/src/BootstrapWidgetTrait.php +++ b/src/BootstrapWidgetTrait.php @@ -76,11 +76,9 @@ trait BootstrapWidgetTrait $id = $this->options['id']; - if ($this->clientOptions !== []) { - $options = empty($this->clientOptions) ? '' : Json::htmlEncode($this->clientOptions); - $js = "jQuery('#$id').$name($options);"; - $view->registerJs($js); - } + $options = empty($this->clientOptions) ? '' : Json::htmlEncode($this->clientOptions); + $js = "jQuery('#$id').$name($options);"; + $view->registerJs($js); $this->registerClientEvents(); } diff --git a/tests/ToastTest.php b/tests/ToastTest.php index 5352f91..2ff1340 100644 --- a/tests/ToastTest.php +++ b/tests/ToastTest.php @@ -2,7 +2,10 @@ namespace yiiunit\extensions\bootstrap5; +use PHPUnit\Framework\Constraint\IsType; +use Yii; use yii\bootstrap5\Toast; +use yii\web\View; /** * @group bootstrap5 @@ -113,4 +116,30 @@ HTML; $this->assertEqualsWithoutLE($expected, $out); } + + /** + * @see https://github.com/yiisoft/yii2-bootstrap5/issues/5 + */ + public function testWidgetInitialization() + { + Toast::$counter = 0; + ob_start(); + $toast = Toast::begin([ + 'title' => 'Toast title', + 'titleOptions' => ['tag' => 'h5', 'style' => ['text-align' => 'left']] + ]); + echo 'test'; + Toast::end(); + $out = ob_get_clean(); + + $this->assertInternalType(IsType::TYPE_ARRAY, $toast->clientOptions); + $this->assertCount(0, $toast->clientOptions); + + $js = Yii::$app->view->js[View::POS_READY]; + + $this->assertInternalType(IsType::TYPE_ARRAY, $js); + $options = array_shift($js); + + $this->assertContainsWithoutLE("jQuery('#w0').toast();", $options); + } }