Laravel 419 Phpunit
A common problem with Laravel seems to be getting 419 errors.
If you have fixed these except for during testing : disable caching.
General 419 Error Causes
This error is supposed to occur when the users session has expired, or if someone is making requests to the site which originate elsewhere and may be malicious.
They can also occur if your cache is stale php artisan cache:clear
Or if storage folders don’t have the right permissions
These all need to be writeable by the webserver user
storage
vendor
bootstrap/caches
Be careful if the webserver is running as a different userID to the user running any artisan
commands
419 Errors During Unit Testing
Laravel automatically disables CSRF during unit testing
https://laravel.com/docs/9.x/csrf#csrf-excluding-uris
For convenience, the CSRF middleware is automatically disabled for all routes when running tests.
But - you have to clear the cache for this to work!
https://laravel.com/docs/9.x/testing#environment
The testing environment variables may be configured in your application’s phpunit.xml file, but make sure to clear your configuration cache using the config:clear Artisan command before running your tests!
Otherwise you may find that a lot of tests fail!
During development you are probably better off without any caching enabled
To clear and disable all caching run
php artisan clear-compiled
php artisan auth:clear-resets
php artisan cache:clear
php artisan config:clear
php artisan debugbar:clear
php artisan event:clear
php artisan optimize:clear
php artisan queue:clear
php artisan route:clear
php artisan schedule:clear-cache
php artisan view:clear
Don’t run any optimizations - the site will be slower but tests will work and any development changes will show up immediately.