ronappleton / spatie-laravel-permission-mock
Simple package to allow testing of packages with users that have permissions.
Requires
- php: >=8.2
- spatie/laravel-permission: ^6.7
Requires (Dev)
- larastan/larastan: ^2.9
- laravel/pint: ^1.15
- orchestra/testbench: ^9.0
This package is auto-updated.
Last update: 2024-11-19 16:50:21 UTC
README
Introduction
Simple package with a simple premise, to mock permissions in a simple way for feature testing.
If you are wanting to develop a package for laravel that uses permissions and policies, you may want to test that your package works as expected. This package allows you to mock permissions in a simple way.
I found this useful when building a monolithic application using packages that had permissions and policies.
I wanted to keep my tests simple and not have to worry about setting up permissions and policies in my tests. And I wanted to be able to define the permissions in my packages.
Installation
You can install the package via composer:
composer require --dev ronappleton/spatie-laravel-permission-mock
Usage
If using normal integer id fields for your models, you can use the following in your tests:
- User
- Role
- Permission
If wanting to use uuids for your models, you can use the following in your tests:
- UserUuid
- RoleUuid
- PermissionUuid
For Uuids you will need to set the following in your tests:
use DatabaseMigrations; protected function setUp(): void { parent::setUp(); config()->set('mock-permissions.uuids', true); $this->artisan('migrate:fresh', ['--database' => 'testing']); }
You can then create permissions and roles in your tests, and assign them to users.
Conclusion
You can now develop a package using permissions and policies and test them knowing your test will cover want you want within the package and you can rely on your code working when your package is pulled into your application.
Note
If you want to add whatever to this package simply PR it and ill add it in, please remember tests.