|
2 | 2 |
|
3 | 3 | namespace Backpack\CRUD\Tests\Unit\CrudPanel; |
4 | 4 |
|
| 5 | +use Backpack\CRUD\app\Library\CrudPanel\CrudColumn; |
5 | 6 | use Backpack\CRUD\Tests\Unit\Models\User; |
6 | 7 |
|
7 | 8 | /** |
8 | 9 | * @covers Backpack\CRUD\app\Library\CrudPanel\Traits\Columns |
9 | 10 | * @covers Backpack\CRUD\app\Library\CrudPanel\Traits\ColumnsProtectedMethods |
| 11 | + * @covers Backpack\CRUD\app\Library\CrudPanel\CrudColumn |
10 | 12 | */ |
11 | 13 | class CrudPanelColumnsTest extends BaseDBCrudPanelTest |
12 | 14 | { |
@@ -532,4 +534,79 @@ public function testOrderColumnsMixedList() |
532 | 534 |
|
533 | 535 | $this->assertEquals(['column2', 'column1', 'column3'], array_keys($this->crudPanel->columns())); |
534 | 536 | } |
| 537 | + |
| 538 | + public function testItCanAddAFluentColumn() |
| 539 | + { |
| 540 | + $this->crudPanel->setModel(User::class); |
| 541 | + |
| 542 | + $this->crudPanel->column('my_column')->label('my_column'); |
| 543 | + |
| 544 | + $this->assertCount(1, $this->crudPanel->columns()); |
| 545 | + |
| 546 | + $this->assertEquals([ |
| 547 | + 'name' => 'my_column', |
| 548 | + 'type' => 'text', |
| 549 | + 'label' => 'my_column', |
| 550 | + 'key' => 'my_column', |
| 551 | + 'priority' => 0, |
| 552 | + 'tableColumn' => false, |
| 553 | + 'orderable' => false, |
| 554 | + 'searchLogic' => false, |
| 555 | + ], $this->crudPanel->columns()['my_column']); |
| 556 | + } |
| 557 | + |
| 558 | + public function testItCanMakeAColumnFirstFluently() |
| 559 | + { |
| 560 | + $this->crudPanel->column('test1'); |
| 561 | + $this->crudPanel->column('test2')->makeFirst(); |
| 562 | + $crudColumns = $this->crudPanel->columns(); |
| 563 | + $firstColumn = reset($crudColumns); |
| 564 | + $this->assertEquals($firstColumn['name'], 'test2'); |
| 565 | + } |
| 566 | + |
| 567 | + public function testItCanMakeAColumnLastFluently() |
| 568 | + { |
| 569 | + $this->crudPanel->column('test1'); |
| 570 | + $this->crudPanel->column('test2'); |
| 571 | + $this->crudPanel->column('test1')->makeLast(); |
| 572 | + $crudColumns = $this->crudPanel->columns(); |
| 573 | + $firstColumn = reset($crudColumns); |
| 574 | + $this->assertEquals($firstColumn['name'], 'test2'); |
| 575 | + } |
| 576 | + |
| 577 | + public function testItCanPlaceColumnsFluently() |
| 578 | + { |
| 579 | + $this->crudPanel->column('test1'); |
| 580 | + $this->crudPanel->column('test2'); |
| 581 | + $this->crudPanel->column('test3')->after('test1'); |
| 582 | + |
| 583 | + $crudColumnsNames = array_column($this->crudPanel->columns(), 'name'); |
| 584 | + $this->assertEquals($crudColumnsNames, ['test1', 'test3', 'test2']); |
| 585 | + |
| 586 | + $this->crudPanel->column('test4')->before('test1'); |
| 587 | + $crudColumnsNames = array_column($this->crudPanel->columns(), 'name'); |
| 588 | + $this->assertEquals($crudColumnsNames, ['test4', 'test1', 'test3', 'test2']); |
| 589 | + } |
| 590 | + |
| 591 | + public function testItCanRemoveColumnAttributesFluently() |
| 592 | + { |
| 593 | + $this->crudPanel->column('test1')->type('test'); |
| 594 | + $this->assertEquals($this->crudPanel->columns()['test1']['type'], 'test'); |
| 595 | + $this->crudPanel->column('test1')->forget('type'); |
| 596 | + $this->assertNull($this->crudPanel->columns()['test1']['type'] ?? null); |
| 597 | + } |
| 598 | + |
| 599 | + public function testItCanRemoveColumnFluently() |
| 600 | + { |
| 601 | + $this->crudPanel->column('test1')->type('test'); |
| 602 | + $this->assertCount(1, $this->crudPanel->columns()); |
| 603 | + $this->crudPanel->column('test1')->remove(); |
| 604 | + $this->assertCount(0, $this->crudPanel->columns()); |
| 605 | + } |
| 606 | + |
| 607 | + public function testItCanAddAColumnToCrudFromClass() |
| 608 | + { |
| 609 | + CrudColumn::name('test'); |
| 610 | + $this->assertCount(1, $this->crudPanel->columns()); |
| 611 | + } |
535 | 612 | } |
0 commit comments