account('user'); $admin = $this->account('admin'); $superAdmin = $this->account('super_admin'); $this->assertFalse(FinanceLedgerAccess::canEditMapping($regularUser)); $this->assertFalse(FinanceLedgerAccess::canEditAccountStatus($regularUser)); $this->assertFalse(FinanceLedgerAccess::canEditAccountType($regularUser)); $this->assertTrue(FinanceLedgerAccess::canEditMapping($admin)); $this->assertTrue(FinanceLedgerAccess::canEditAccountStatus($admin)); $this->assertTrue(FinanceLedgerAccess::canEditAccountType($admin)); $this->assertTrue(FinanceLedgerAccess::canEditMapping($superAdmin)); $this->assertTrue(FinanceLedgerAccess::canEditAccountStatus($superAdmin)); $this->assertTrue(FinanceLedgerAccess::canEditAccountType($superAdmin)); } private function account(string $role): User { $name = 'finance-ledger-access-' . $role . '-' . User::count(); $user = User::create([ 'name' => $name, 'email' => $name . '@example.test', 'password' => 'fixture-only-password', 'enabled' => true, 'locale' => 'zh-CN', 'landing_page' => 'dashboard', ]); $user->roles()->attach(Role::where('name', $role)->firstOrFail()->id); return $user; } }