diff --git a/tests/GridFieldNestedFormTest.php b/tests/GridFieldNestedFormTest.php new file mode 100644 index 0000000..d364314 --- /dev/null +++ b/tests/GridFieldNestedFormTest.php @@ -0,0 +1,58 @@ +objFromFixture(StubHierarchy::class, 'item1'); + $list = new ArrayList([$parent]); + $config = new GridFieldConfig_RecordEditor(); + $config->addComponent($nestedForm = new GridFieldNestedForm()); + + $controller = new TestController('Test'); + $form = new Form($controller, 'TestForm', new FieldList( + $gridField = new GridField(__FUNCTION__, 'test', $list, $config) + ), new FieldList()); + + $request = new HTTPRequest('GET', '/'); + $itemEditForm = $nestedForm->handleNestedItem($gridField, $request, $parent); + $this->assertNotNull($itemEditForm); + $nestedGridField = $itemEditForm->Fields()->first(); + $this->assertNotNull($nestedGridField); + $list = $nestedGridField->getList(); + $this->assertEquals(1, $list->count()); + + $child1 = $this->objFromFixture(StubHierarchy::class, 'item1_1'); + $this->assertEquals($child1->ID, $list->first()->ID); + $nestedForm = $nestedGridField->getConfig()->getComponentByType(GridFieldNestedForm::class); + $itemEditForm = $nestedForm->handleNestedItem($gridField, $request, $child1); + $this->assertNotNull($itemEditForm); + + $nestedGridField = $itemEditForm->Fields()->first(); + $this->assertNotNull($nestedGridField); + $list = $nestedGridField->getList(); + $this->assertEquals(1, $list->count()); + $child2 = $this->objFromFixture(StubHierarchy::class, 'item1_1_1'); + $this->assertEquals($child2->ID, $list->first()->ID); + } +} diff --git a/tests/GridFieldNestedFormTest.yml b/tests/GridFieldNestedFormTest.yml new file mode 100644 index 0000000..aa5235f --- /dev/null +++ b/tests/GridFieldNestedFormTest.yml @@ -0,0 +1,9 @@ +Symbiote\GridFieldExtensions\Tests\Stub\StubHierarchy: + item1: + Title: 'Item 1' + item1_1: + Title: 'Item 1.1' + ParentID: =>Symbiote\GridFieldExtensions\Tests\Stub\StubHierarchy.item1 + item1_1_1: + Title: 'Item 1.1.1' + ParentID: =>Symbiote\GridFieldExtensions\Tests\Stub\StubHierarchy.item1_1 \ No newline at end of file diff --git a/tests/Stub/StubHierarchy.php b/tests/Stub/StubHierarchy.php new file mode 100644 index 0000000..2b48e47 --- /dev/null +++ b/tests/Stub/StubHierarchy.php @@ -0,0 +1,20 @@ + 'Varchar' + ]; +}