This commit is contained in:
DESKTOP-E17406D\boonkerz 2023-08-09 12:15:25 +02:00
parent 79a15727ac
commit 50450a5723
4 changed files with 24 additions and 2 deletions

File diff suppressed because one or more lines are too long

View File

@ -94,7 +94,9 @@ class Valid
if($option->getDefault() === null && $opt->isValid()) { if($option->getDefault() === null && $opt->isValid()) {
$option->setDefault($opt->getId()); $option->setDefault($opt->getId());
$this->engine->setVariable($option->getId(), $opt->getId()); if(!$this->engine->hasVariable($option->getId())) {
$this->engine->setVariable($option->getId(), $opt->getId());
}
} }
if($option instanceof Checkbox) { if($option instanceof Checkbox) {

View File

@ -440,6 +440,11 @@ class Engine
$this->variables[$var] = $value; $this->variables[$var] = $value;
} }
public function hasVariable($var): bool
{
return isset($this->variables[$var]);
}
/** /**
* @return float * @return float
*/ */

View File

@ -52,4 +52,19 @@ class CalcTest extends TestCase
$this->assertTrue($this->engine->getArticle()->getOptionById('defa')->isValid()); $this->assertTrue($this->engine->getArticle()->getOptionById('defa')->isValid());
} }
public function testContainerSelectIgnoreDefaultBinden(): void
{
$this->engine->setVariable('binden', 'leimes');
$this->engine->calc();
$this->assertTrue($this->engine->getArticle()->getOptionById('dd')->isValid());
$this->assertTrue($this->engine->getArticle()->getOptionById('defa')->isValid());
$this->engine->setVariable('dd', 'ddleim');
$this->engine->calc();
$this->assertTrue($this->engine->getArticle()->getOptionById('dd')->isValid());
$this->assertSame('ddleim', $this->engine->getArticle()->getOptionById('dd')->getRawValue());
$this->assertTrue($this->engine->getArticle()->getOptionById('defa')->isValid());
}
} }