https://github.com/esign/laravel-nova-testing
https://github.com/esign/laravel-nova-testing
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/esign/laravel-nova-testing
- Owner: esign
- License: mit
- Created: 2025-06-20T11:54:16.000Z (12 months ago)
- Default Branch: master
- Last Pushed: 2025-11-30T17:48:34.000Z (7 months ago)
- Last Synced: 2025-12-03T01:46:51.247Z (7 months ago)
- Language: PHP
- Size: 67.4 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Testing toolkit for Laravel Nova
[](https://packagist.org/packages/esign/laravel-nova-testing)
[](https://packagist.org/packages/esign/laravel-nova-testing)

A toolkit for testing [Laravel Nova](https://nova.laravel.com/) routes and resources. This package provides convenient testing utilities to interact with Nova endpoints in your feature and integration tests.
## Installation
You can install the package via composer:
```bash
composer require esign/laravel-nova-testing
```
## Usage
### Getting Started
You may implement the `MakesNovaRequests` trait in your test cases to easily make requests to Nova routes and assert their responses.
```php
use Esign\NovaTesting\Concerns\MakesNovaRequests;
class ExampleTest extends TestCase
{
use MakesNovaRequests;
public function test_can_get_nova_resource_index()
{
$user = User::factory()->create();
$response = $this->actingAs($user)->getNovaResourceIndex(UserResource::class);
$response->assertStatus(200);
}
}
```
### Available Testing Methods
#### Resource Requests
- `getNovaResourceIndex($resourceClass, array $query = [], array $filters = [])`
- `getNovaResourceDetail($resourceClass, $resourceId, array $query = [])`
- `createNovaResource($resourceClass, array $data, array $query = [])`
- `updateNovaResource($resourceClass, $resourceId, array $data, array $query = [])`
- `deleteNovaResource($resourceClass, array $resourceIds, array $query = [])`
- `forceDeleteNovaResource($resourceClass, array $resourceIds, array $query = [])`
- `restoreNovaResource($resourceClass, array $resourceIds, array $query = [])`
- `attachNovaResource($resourceClass, $resourceId, $relatedResourceClass, $relatedResourceId, $relationshipName, array $data = [], array $query = [])`
- `getNovaResourceCount($resourceClass, array $query = [])`
- `getNovaResourceFilters($resourceClass, array $query = [])`
#### Field Requests
- `getNovaResourceCreationFields($resourceClass, array $query = [])`
- `getNovaResourceUpdateFields($resourceClass, $resourceId, array $query = [])`
- `getNovaResourcePivotCreationFields($resourceClass, $resourceId, $relatedResourceClass, $relationshipName, array $query = [])`
- `getNovaResourcePivotUpdateFields($resourceClass, $resourceId, $relatedResourceClass, $relatedResourceId, $relationshipName, array $query = [])`
- `patchNovaResourceUpdateFields($resourceClass, $resourceId, $field, $component, array $data, array $query = [])`
- `deleteNovaResourceField($resourceClass, $resourceId, $field, array $query = [])`
#### Action Requests
- `getNovaResourceActions($resourceClass, array $query = [])`
- `runNovaResourceAction($resourceClass, $action, array $data = [], array $query = [])`
#### Dashboard Requests
- `getNovaDashboard($dashboard, array $query = [])`
- `getNovaDashboardCards($dashboard, array $query = [])`
- `getNovaDashboardMetric($dashboard, $metric, array $query = [])`
#### Page Requests
- `getNovaHomePage(array $query = [])`
- `getNovaDashboardPage($dashboard, array $query = [])`
- `getNovaResourceIndexPage($resourceClass, array $query = [])`
- `getNovaResourceDetailPage($resourceClass, $resourceId, array $query = [])`
- `getNovaResourceCreatePage($resourceClass, array $query = [])`
- `getNovaResourceEditPage($resourceClass, $resourceId, array $query = [])`
- `getNovaResourceReplicatePage($resourceClass, $resourceId, array $query = [])`
- `getNovaResourceLensPage($resourceClass, $lens, array $query = [])`
#### Impersonation Requests
- `startNovaImpersonation($resourceClass, $resourceId, array $query = [])`
- `stopNovaImpersonation(array $query = [])`
## Testing
```bash
composer test
```
## License
The MIT License (MIT). Please see [License File](LICENSE.md) for more information.