diff --git a/composer.json b/composer.json index 067d7ab..3c93121 100644 --- a/composer.json +++ b/composer.json @@ -25,9 +25,9 @@ "contributte/qa": "~0.4.0", "contributte/tester": "~0.4.0", "latte/latte": "^3.0.0", - "nette/application": "^3.2.0", + "nette/application": ">=3.2.0 <3.3.0", "nette/di": "^3.2.0", - "webchemistry/testing-helpers": "^4.0.0" + "webchemistry/testing-helpers": "^4.1.1" }, "conflict": { "latte/latte": "<3.0.0", diff --git a/src/Multiplier.php b/src/Multiplier.php index 8be1d79..180e506 100644 --- a/src/Multiplier.php +++ b/src/Multiplier.php @@ -4,6 +4,7 @@ use Contributte\FormMultiplier\Buttons\CreateButton; use Contributte\FormMultiplier\Buttons\RemoveButton; +use Generator; use Iterator; use Nette\ComponentModel\IComponent; use Nette\Forms\Container; @@ -306,8 +307,11 @@ public function getValues(string|object|bool|null $returnType = null, ?array $co public function getControls(): Iterator { $this->createCopies(); + $controls = parent::getControls(); - return parent::getControls(); + return (static function () use ($controls): Generator { + yield from $controls; + })(); } /** diff --git a/tests/Cases/Unit/MultiplierTest.phpt b/tests/Cases/Unit/MultiplierTest.phpt index fa2dbcb..026b23d 100644 --- a/tests/Cases/Unit/MultiplierTest.phpt +++ b/tests/Cases/Unit/MultiplierTest.phpt @@ -4,6 +4,7 @@ namespace Tests\Cases\Unit; use Contributte\FormMultiplier\Multiplier; use Contributte\Tester\Toolkit; +use Iterator; use Nette\Application\UI\Form; use Nette\Forms\Container; use Tester\Assert; @@ -15,6 +16,13 @@ require __DIR__ . '/../../bootstrap.php'; $services = new Services(); +// testGetControlsReturnsIterator +Toolkit::test(function (): void { + $form = MultiplierBuilder::create()->createForm(); + + Assert::type(Iterator::class, $form['m']->getControls()); +}); + // testRenderBase Toolkit::test(function () use ($services): void { $onCreateParams = [];