canvural / laravel-e2e-routes
Set of routes for you to use in E2E tests.
Requires
- php: ^7.2
- illuminate/database: ^6.0 || ^7.0
Requires (Dev)
- doctrine/coding-standard: 6.0
- nunomaduro/larastan: ^0.5
- orchestra/testbench: ^4.0 || ^5.0
- phpstan/extension-installer: ^1.0
- phpstan/phpstan-mockery: ^0.12
- phpstan/phpstan-phpunit: ^0.12
- phpunit/phpunit: ^8
- roave/security-advisories: dev-master
This package is auto-updated.
Last update: 2024-11-19 01:30:11 UTC
README
This package provides a set of rules to help you manage your database state when running your E2E tests using Eloquent model factories.
Installation
You can install the package via composer:
composer require --dev canvural/laravel-e2e-routes
If you wish to customize some options, you may publish the config file with
php artisan vendor:publish --provider="Vural\E2ERoutes\E2ERoutesServiceProvider"
This is the published config files contents. Here you can customize the route prefix which will be added to all the provided routes.Route names, and the namespace that all your models live in.
<?php return [ 'prefix' => 'e2e', 'name' => 'e2e-routes', 'modelNamespace' => 'App\\', ];
Usage
For obvious reasons this package does not exposes the routes in the production
environment. In other environments you can use the routes.
Reset database (GET e2e/reset
)
You can use the http://localhost/e2e/reset
route to reset your database. Under the hood this route makes a call to migrate:refresh
Artisan command. Also if you wish to seed
your database after migrating, you may call the route with seed
query string attached. http://localhost/e2e/reset?seed
Creating models (POST e2e/{modelName}
)
This package uses your Eloquent model factories to create the data.
So, for example if you have a model called User
and the associated UserFactory
you can make a POST request to the http://localhost/e2e/user
endpoint to create a User
in your database. Also, newly created model will be returned as a response from the endpoint.
You can substitute user
in the above example with any model you want. If the given model is not found, a 404
response will be returned. Also, if the model exists but a factory for that model does not exists a 404
response will be returned.
Overwriting attributes
Like the factory
method, this package also provides you an ability to overwrite models attributes. Simply add a body to your request like so:
[ 'attributes' => [ 'name' => 'John Doe' ] ]
This will overwrite the name
attribute.
Creating many models
You can specify how many model you want to create with
[ 'times' => 3 ]
This will return an array containing 3 models.
Using states
If you defined some states for your factories, you can use them when you are making the request.
[ 'states' => ['withAddress'] ]
This will create your model with the withAddress
state. If the given state is not endpoint will return a 404
response.
All together
[ 'attributes' => [ 'name' => 'John Doe', ], 'states' => ['withAddress'], 'times' => 2 ]
You can also combine the options like this.
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email can.vural@aequitas-group.pl instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.