|
4 | 4 |
|
5 | 5 | use Arr; |
6 | 6 | use Backpack\CRUD\Tests\Unit\Models\User; |
| 7 | +use Illuminate\Http\Request; |
7 | 8 |
|
8 | 9 | /** |
9 | 10 | * @covers Backpack\CRUD\app\Library\CrudPanel\Traits\Fields |
@@ -598,4 +599,44 @@ public function testFieldNameIsPartialRelationInCrudModel() |
598 | 599 | $field = $this->crudPanel->fields()['articles_id']; |
599 | 600 | $this->assertEquals($field['relation_type'], 'HasMany'); |
600 | 601 | } |
| 602 | + |
| 603 | + public function testGetStrippedSaveRequestWithClosure() |
| 604 | + { |
| 605 | + $this->crudPanel->setOperationSetting( |
| 606 | + 'strippedRequest', |
| 607 | + static function (Request $request) { |
| 608 | + return $request->toArray(); |
| 609 | + }, |
| 610 | + 'update' |
| 611 | + ); |
| 612 | + $this->crudPanel->setOperation('update'); |
| 613 | + $this->crudPanel->setModel(User::class); |
| 614 | + $request = request()->create('/users/1/edit', 'POST', ['name' => 'john']); |
| 615 | + $result = $this->crudPanel->getStrippedSaveRequest($request); |
| 616 | + $this->assertIsArray($result); |
| 617 | + $this->assertSame(['name' => 'john'], $result); |
| 618 | + } |
| 619 | + |
| 620 | + public function testGetStrippedSaveRequestWithClass() |
| 621 | + { |
| 622 | + $this->crudPanel->setOperationSetting( |
| 623 | + 'strippedRequest', |
| 624 | + Invokable::class, |
| 625 | + 'update' |
| 626 | + ); |
| 627 | + $this->crudPanel->setOperation('update'); |
| 628 | + $this->crudPanel->setModel(User::class); |
| 629 | + $request = request()->create('/users/1/edit', 'POST', ['name' => 'john']); |
| 630 | + $result = $this->crudPanel->getStrippedSaveRequest($request); |
| 631 | + $this->assertIsArray($result); |
| 632 | + $this->assertSame(['invokable' => 'invokable'], $result); |
| 633 | + } |
| 634 | +} |
| 635 | + |
| 636 | +class Invokable |
| 637 | +{ |
| 638 | + public function __invoke(): array |
| 639 | + { |
| 640 | + return ['invokable' => 'invokable']; |
| 641 | + } |
601 | 642 | } |
0 commit comments