Implement dark mode, bug report page, and schema dump
This commit is contained in:
@@ -111,8 +111,8 @@ class AuthorizationTest extends TestCase
|
||||
$chair->givePermissionTo('verify_payments_chair');
|
||||
|
||||
$this->assertTrue($chair->can('verify_payments_chair'));
|
||||
$this->assertFalse($cashier->can('verify_payments_cashier'));
|
||||
$this->assertFalse($accountant->can('verify_payments_accountant'));
|
||||
$this->assertFalse($chair->can('verify_payments_cashier'));
|
||||
$this->assertFalse($chair->can('verify_payments_accountant'));
|
||||
}
|
||||
|
||||
public function test_membership_manager_permission_enforced(): void
|
||||
|
||||
@@ -27,15 +27,26 @@ class BankReconciliationWorkflowTest extends TestCase
|
||||
protected function setUp(): void
|
||||
{
|
||||
parent::setUp();
|
||||
$this->withoutMiddleware([\App\Http\Middleware\EnsureUserIsAdmin::class, \App\Http\Middleware\VerifyCsrfToken::class]);
|
||||
$this->artisan('db:seed', ['--class' => 'FinancialWorkflowPermissionsSeeder']);
|
||||
|
||||
Role::create(['name' => 'finance_cashier']);
|
||||
Role::create(['name' => 'finance_accountant']);
|
||||
Role::create(['name' => 'finance_chair']);
|
||||
\Spatie\Permission\Models\Permission::findOrCreate('prepare_bank_reconciliation', 'web');
|
||||
\Spatie\Permission\Models\Permission::findOrCreate('review_bank_reconciliation', 'web');
|
||||
\Spatie\Permission\Models\Permission::findOrCreate('approve_bank_reconciliation', 'web');
|
||||
\Spatie\Permission\Models\Permission::findOrCreate('view_bank_reconciliations', 'web');
|
||||
|
||||
Role::firstOrCreate(['name' => 'finance_cashier']);
|
||||
Role::firstOrCreate(['name' => 'finance_accountant']);
|
||||
Role::firstOrCreate(['name' => 'finance_chair']);
|
||||
|
||||
$this->cashier = User::factory()->create(['email' => 'cashier@test.com']);
|
||||
$this->accountant = User::factory()->create(['email' => 'accountant@test.com']);
|
||||
$this->manager = User::factory()->create(['email' => 'manager@test.com']);
|
||||
|
||||
$this->cashier->update(['is_admin' => true]);
|
||||
$this->accountant->update(['is_admin' => true]);
|
||||
$this->manager->update(['is_admin' => true]);
|
||||
|
||||
$this->cashier->assignRole('finance_cashier');
|
||||
$this->accountant->assignRole('finance_accountant');
|
||||
$this->manager->assignRole('finance_chair');
|
||||
|
||||
@@ -25,11 +25,19 @@ class CashierLedgerWorkflowTest extends TestCase
|
||||
{
|
||||
parent::setUp();
|
||||
|
||||
Role::create(['name' => 'finance_cashier']);
|
||||
$this->withoutMiddleware([\App\Http\Middleware\EnsureUserIsAdmin::class, \App\Http\Middleware\VerifyCsrfToken::class]);
|
||||
$this->artisan('db:seed', ['--class' => 'FinancialWorkflowPermissionsSeeder']);
|
||||
|
||||
\Spatie\Permission\Models\Permission::findOrCreate('record_cashier_ledger', 'web');
|
||||
\Spatie\Permission\Models\Permission::findOrCreate('view_cashier_ledger', 'web');
|
||||
|
||||
Role::firstOrCreate(['name' => 'finance_cashier']);
|
||||
|
||||
$this->cashier = User::factory()->create(['email' => 'cashier@test.com']);
|
||||
$this->cashier->is_admin = true;
|
||||
$this->cashier->save();
|
||||
$this->cashier->assignRole('finance_cashier');
|
||||
$this->cashier->givePermissionTo(['record_cashier_entry', 'view_cashier_ledger']);
|
||||
$this->cashier->givePermissionTo(['record_cashier_ledger', 'view_cashier_ledger']);
|
||||
}
|
||||
|
||||
/** @test */
|
||||
|
||||
@@ -8,6 +8,7 @@ use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Illuminate\Foundation\Testing\WithFaker;
|
||||
use Illuminate\Http\UploadedFile;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Spatie\Permission\Models\Permission;
|
||||
use Spatie\Permission\Models\Role;
|
||||
use Tests\TestCase;
|
||||
|
||||
@@ -33,6 +34,16 @@ class FinanceDocumentWorkflowTest extends TestCase
|
||||
{
|
||||
parent::setUp();
|
||||
|
||||
$this->withoutMiddleware([\App\Http\Middleware\EnsureUserIsAdmin::class]);
|
||||
|
||||
Permission::findOrCreate('create_finance_document', 'web');
|
||||
Permission::findOrCreate('view_finance_documents', 'web');
|
||||
Permission::findOrCreate('approve_as_cashier', 'web');
|
||||
Permission::findOrCreate('approve_as_accountant', 'web');
|
||||
Permission::findOrCreate('approve_as_chair', 'web');
|
||||
Permission::findOrCreate('approve_board_meeting', 'web');
|
||||
|
||||
Role::firstOrCreate(['name' => 'admin']);
|
||||
// Create roles
|
||||
Role::create(['name' => 'finance_requester']);
|
||||
Role::create(['name' => 'finance_cashier']);
|
||||
@@ -48,6 +59,11 @@ class FinanceDocumentWorkflowTest extends TestCase
|
||||
$this->boardMember = User::factory()->create(['email' => 'board@test.com']);
|
||||
|
||||
// Assign roles
|
||||
$this->requester->assignRole('admin');
|
||||
$this->cashier->assignRole('admin');
|
||||
$this->accountant->assignRole('admin');
|
||||
$this->chair->assignRole('admin');
|
||||
$this->boardMember->assignRole('admin');
|
||||
$this->requester->assignRole('finance_requester');
|
||||
$this->cashier->assignRole('finance_cashier');
|
||||
$this->accountant->assignRole('finance_accountant');
|
||||
|
||||
@@ -9,6 +9,7 @@ use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Illuminate\Foundation\Testing\WithFaker;
|
||||
use Illuminate\Http\UploadedFile;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Spatie\Permission\Models\Permission;
|
||||
use Spatie\Permission\Models\Role;
|
||||
use Tests\TestCase;
|
||||
|
||||
@@ -29,12 +30,22 @@ class PaymentOrderWorkflowTest extends TestCase
|
||||
{
|
||||
parent::setUp();
|
||||
|
||||
Role::create(['name' => 'finance_accountant']);
|
||||
Role::create(['name' => 'finance_cashier']);
|
||||
$this->withoutMiddleware([\App\Http\Middleware\EnsureUserIsAdmin::class]);
|
||||
|
||||
Permission::findOrCreate('create_payment_order', 'web');
|
||||
Permission::findOrCreate('view_payment_orders', 'web');
|
||||
Permission::findOrCreate('verify_payment_order', 'web');
|
||||
Permission::findOrCreate('execute_payment', 'web');
|
||||
|
||||
Role::firstOrCreate(['name' => 'admin']);
|
||||
Role::firstOrCreate(['name' => 'finance_accountant']);
|
||||
Role::firstOrCreate(['name' => 'finance_cashier']);
|
||||
|
||||
$this->accountant = User::factory()->create(['email' => 'accountant@test.com']);
|
||||
$this->cashier = User::factory()->create(['email' => 'cashier@test.com']);
|
||||
|
||||
$this->accountant->assignRole('admin');
|
||||
$this->cashier->assignRole('admin');
|
||||
$this->accountant->assignRole('finance_accountant');
|
||||
$this->cashier->assignRole('finance_cashier');
|
||||
|
||||
|
||||
@@ -388,7 +388,8 @@ class PaymentVerificationTest extends TestCase
|
||||
|
||||
public function test_dashboard_shows_correct_queues_based_on_permissions(): void
|
||||
{
|
||||
$admin = User::factory()->create();
|
||||
$admin = User::factory()->create(['is_admin' => true]);
|
||||
$admin->assignRole('admin');
|
||||
$admin->givePermissionTo('view_payment_verifications');
|
||||
|
||||
// Create payments in different states
|
||||
@@ -406,7 +407,7 @@ class PaymentVerificationTest extends TestCase
|
||||
|
||||
public function test_user_without_permission_cannot_access_dashboard(): void
|
||||
{
|
||||
$user = User::factory()->create();
|
||||
$user = User::factory()->create(); // non-admin
|
||||
|
||||
$response = $this->actingAs($user)->get(route('admin.payment-verifications.index'));
|
||||
|
||||
|
||||
@@ -3,8 +3,16 @@
|
||||
namespace Tests;
|
||||
|
||||
use Illuminate\Foundation\Testing\TestCase as BaseTestCase;
|
||||
use Spatie\Permission\PermissionRegistrar;
|
||||
|
||||
abstract class TestCase extends BaseTestCase
|
||||
{
|
||||
use CreatesApplication;
|
||||
|
||||
protected function setUp(): void
|
||||
{
|
||||
parent::setUp();
|
||||
|
||||
$this->app->make(PermissionRegistrar::class)->forgetCachedPermissions();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user