mirror of
https://github.com/filamentphp/filament.git
synced 2026-09-21 13:30:51 +08:00
Test without policies
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
namespace Filament\Tests\Database\Factories;
|
||||
|
||||
use Filament\Tests\Fixtures\Models\TicketMessage;
|
||||
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||
|
||||
class TicketMessageFactory extends Factory
|
||||
{
|
||||
protected $model = TicketMessage::class;
|
||||
|
||||
public function definition(): array
|
||||
{
|
||||
return [];
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,12 @@
|
||||
|
||||
namespace Filament\Tests\Fixtures\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class Department extends Model {}
|
||||
class Department extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
use SoftDeletes;
|
||||
}
|
||||
|
||||
@@ -2,6 +2,12 @@
|
||||
|
||||
namespace Filament\Tests\Fixtures\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class Ticket extends Model {}
|
||||
class Ticket extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
use SoftDeletes;
|
||||
}
|
||||
|
||||
@@ -2,6 +2,18 @@
|
||||
|
||||
namespace Filament\Tests\Fixtures\Models;
|
||||
|
||||
use Filament\Tests\Database\Factories\TicketMessageFactory;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class TicketMessage extends Model {}
|
||||
class TicketMessage extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
use SoftDeletes;
|
||||
|
||||
protected static function newFactory()
|
||||
{
|
||||
return TicketMessageFactory::new();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
namespace Filament\Tests\Fixtures\Policies;
|
||||
|
||||
use App\Models\User;
|
||||
use Filament\Tests\Fixtures\Models\Department;
|
||||
use Filament\Tests\Fixtures\Models\User;
|
||||
|
||||
class DepartmentPolicy
|
||||
{
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
namespace Filament\Tests\Fixtures\Policies;
|
||||
|
||||
use App\Models\User;
|
||||
use Filament\Tests\Fixtures\Models\Ticket;
|
||||
use Filament\Tests\Fixtures\Models\User;
|
||||
|
||||
class TicketPolicy
|
||||
{
|
||||
|
||||
@@ -11,9 +11,12 @@ use Filament\Panel;
|
||||
use Filament\PanelProvider;
|
||||
use Filament\Tests\Fixtures\Pages\Actions;
|
||||
use Filament\Tests\Fixtures\Pages\Settings;
|
||||
use Filament\Tests\Fixtures\Resources\Departments\DepartmentResource;
|
||||
use Filament\Tests\Fixtures\Resources\PostCategories\PostCategoryResource;
|
||||
use Filament\Tests\Fixtures\Resources\Posts\PostResource;
|
||||
use Filament\Tests\Fixtures\Resources\Shop\Products\ProductResource;
|
||||
use Filament\Tests\Fixtures\Resources\TicketMessages\TicketMessageResource;
|
||||
use Filament\Tests\Fixtures\Resources\Tickets\TicketResource;
|
||||
use Filament\Tests\Fixtures\Resources\Users\UserResource;
|
||||
use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
|
||||
use Illuminate\Cookie\Middleware\EncryptCookies;
|
||||
@@ -34,9 +37,12 @@ class AdminPanelProvider extends PanelProvider
|
||||
->passwordReset()
|
||||
->emailVerification()
|
||||
->resources([
|
||||
DepartmentResource::class,
|
||||
PostResource::class,
|
||||
PostCategoryResource::class,
|
||||
ProductResource::class,
|
||||
TicketResource::class,
|
||||
TicketMessageResource::class,
|
||||
UserResource::class,
|
||||
])
|
||||
->pages([
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
<?php
|
||||
|
||||
use Filament\Facades\Filament;
|
||||
use Filament\Tests\Fixtures\Models\Post;
|
||||
use Filament\Tests\Fixtures\Resources\Posts\Pages\CreateAnotherPreservingDataPost;
|
||||
use Filament\Tests\Fixtures\Resources\Posts\Pages\CreatePost;
|
||||
use Filament\Tests\Fixtures\Resources\Posts\PostResource;
|
||||
use Filament\Tests\Fixtures\Resources\TicketMessages\TicketMessageResource;
|
||||
use Filament\Tests\Panels\Resources\TestCase;
|
||||
|
||||
use function Filament\Tests\livewire;
|
||||
@@ -147,3 +149,17 @@ it('can validate input', function () {
|
||||
->call('create')
|
||||
->assertHasFormErrors(['title' => 'required']);
|
||||
});
|
||||
|
||||
it('can ticket messages page without a policy', function () {
|
||||
$this->get(TicketMessageResource::getUrl('create'))
|
||||
->assertSuccessful();
|
||||
});
|
||||
|
||||
it('does not render ticket messages page without a policy if authorization is strict', function () {
|
||||
Filament::getCurrentPanel()->strictAuthorization();
|
||||
|
||||
$this->get(TicketMessageResource::getUrl('create'))
|
||||
->assertServerError();
|
||||
|
||||
Filament::getCurrentPanel()->strictAuthorization(false);
|
||||
});
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
<?php
|
||||
|
||||
use Filament\Actions\DeleteAction;
|
||||
use Filament\Facades\Filament;
|
||||
use Filament\Tests\Fixtures\Models\Post;
|
||||
use Filament\Tests\Fixtures\Models\TicketMessage;
|
||||
use Filament\Tests\Fixtures\Resources\Posts\Pages\EditPost;
|
||||
use Filament\Tests\Fixtures\Resources\Posts\PostResource;
|
||||
use Filament\Tests\Fixtures\Resources\TicketMessages\TicketMessageResource;
|
||||
use Filament\Tests\Panels\Resources\TestCase;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
@@ -109,3 +112,23 @@ it('can refresh data', function () {
|
||||
'title' => $newPostTitle,
|
||||
]);
|
||||
});
|
||||
|
||||
it('can ticket messages page without a policy', function () {
|
||||
$message = TicketMessage::factory()
|
||||
->create();
|
||||
|
||||
$this->get(TicketMessageResource::getUrl('edit', ['record' => $message]))
|
||||
->assertSuccessful();
|
||||
});
|
||||
|
||||
it('does not render ticket messages page without a policy if authorization is strict', function () {
|
||||
Filament::getCurrentPanel()->strictAuthorization();
|
||||
|
||||
$message = TicketMessage::factory()
|
||||
->create();
|
||||
|
||||
$this->get(TicketMessageResource::getUrl('edit', ['record' => $message]))
|
||||
->assertServerError();
|
||||
|
||||
Filament::getCurrentPanel()->strictAuthorization(false);
|
||||
});
|
||||
|
||||
@@ -2,9 +2,12 @@
|
||||
|
||||
use Filament\Actions\DeleteAction;
|
||||
use Filament\Actions\DeleteBulkAction;
|
||||
use Filament\Facades\Filament;
|
||||
use Filament\Tests\Fixtures\Models\Post;
|
||||
use Filament\Tests\Fixtures\Models\TicketMessage;
|
||||
use Filament\Tests\Fixtures\Resources\Posts\Pages\ListPosts;
|
||||
use Filament\Tests\Fixtures\Resources\Posts\PostResource;
|
||||
use Filament\Tests\Fixtures\Resources\TicketMessages\TicketMessageResource;
|
||||
use Filament\Tests\Fixtures\Resources\Users\UserResource;
|
||||
use Filament\Tests\Panels\Resources\TestCase;
|
||||
|
||||
@@ -115,3 +118,23 @@ it('can bulk delete posts', function () {
|
||||
assertSoftDeleted($post);
|
||||
}
|
||||
});
|
||||
|
||||
it('can render ticket messages page without a policy', function () {
|
||||
TicketMessage::factory(10)
|
||||
->create();
|
||||
|
||||
$this->get(TicketMessageResource::getUrl('index'))
|
||||
->assertSuccessful();
|
||||
});
|
||||
|
||||
it('does not render ticket messages page without a policy if authorization is strict', function () {
|
||||
Filament::getCurrentPanel()->strictAuthorization();
|
||||
|
||||
TicketMessage::factory(10)
|
||||
->create();
|
||||
|
||||
$this->get(TicketMessageResource::getUrl('index'))
|
||||
->assertServerError();
|
||||
|
||||
Filament::getCurrentPanel()->strictAuthorization(false);
|
||||
});
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
<?php
|
||||
|
||||
use Filament\Facades\Filament;
|
||||
use Filament\Tests\Fixtures\Models\Post;
|
||||
use Filament\Tests\Fixtures\Models\TicketMessage;
|
||||
use Filament\Tests\Fixtures\Resources\Posts\Pages\ViewPost;
|
||||
use Filament\Tests\Fixtures\Resources\Posts\PostResource;
|
||||
use Filament\Tests\Fixtures\Resources\TicketMessages\TicketMessageResource;
|
||||
use Filament\Tests\Panels\Resources\TestCase;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
@@ -58,3 +61,23 @@ it('can refresh data', function () {
|
||||
'title' => $newPostTitle,
|
||||
]);
|
||||
});
|
||||
|
||||
it('can ticket messages page without a policy', function () {
|
||||
$message = TicketMessage::factory()
|
||||
->create();
|
||||
|
||||
$this->get(TicketMessageResource::getUrl('view', ['record' => $message]))
|
||||
->assertSuccessful();
|
||||
});
|
||||
|
||||
it('does not render ticket messages page without a policy if authorization is strict', function () {
|
||||
Filament::getCurrentPanel()->strictAuthorization();
|
||||
|
||||
$message = TicketMessage::factory()
|
||||
->create();
|
||||
|
||||
$this->get(TicketMessageResource::getUrl('view', ['record' => $message]))
|
||||
->assertServerError();
|
||||
|
||||
Filament::getCurrentPanel()->strictAuthorization(false);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user