Skip to content

Commit

Permalink
test coverage 100%
Browse files Browse the repository at this point in the history
  • Loading branch information
rvzug committed Jul 12, 2024
1 parent 6c663e8 commit ea3e10c
Show file tree
Hide file tree
Showing 7 changed files with 110 additions and 10 deletions.
3 changes: 2 additions & 1 deletion src/Tables/Actions/ArchiveAction.php
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,10 @@ protected function setUp(): void
$result = $this->process(static fn (Model $record) => $record->archive());

if (! $result) {
// @codeCoverageIgnoreStart
$this->failure();

return;
// @codeCoverageIgnoreEnd
}

$this->success();
Expand Down
6 changes: 4 additions & 2 deletions src/Tables/Actions/UnArchiveAction.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,17 +39,19 @@ protected function setUp(): void

$this->action(function (Model $record): void {
if (! method_exists($record, 'unArchive')) {
// @codeCoverageIgnoreStart
$this->failure();

return;
// @codeCoverageIgnoreEnd
}

$result = $this->process(static fn () => $record->unArchive());

if (! $result) {
// @codeCoverageIgnoreStart
$this->failure();

return;
// @codeCoverageIgnoreEnd
}

$this->success();
Expand Down
36 changes: 31 additions & 5 deletions tests/FilamentArchivableTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
use Okeonline\FilamentArchivable\Tests\TestModels\ModelWithArchivableTrait;
use Okeonline\FilamentArchivable\Tests\TestModels\ModelWithoutArchivableTrait;
use Okeonline\FilamentArchivable\Tests\TestResources\ModelWithArchivableTraitAndCustomClassesResource;
use Okeonline\FilamentArchivable\Tests\TestResources\ModelWithArchivableTraitAndFalseCustomClassesResource;
use Okeonline\FilamentArchivable\Tests\TestResources\ModelWithArchivableTraitResource;
use Okeonline\FilamentArchivable\Tests\TestResources\ModelWithoutArchivableTraitResource;

Expand Down Expand Up @@ -202,11 +203,10 @@

it('can set the recordClasses specific for archived records in the table', function () {

$plugin = new FilamentArchivablePlugin();
FilamentArchivable::$archivedRecordClasses = null;

// expect(FilamentArchivable::$archivedRecordClasses)
// ->toBeNull()
// ->not()->toBe(['opacity-25']);
expect(FilamentArchivable::$archivedRecordClasses)
->toBeNull();

$modelWithArchivedAt = ModelWithArchivableTrait::factory()->count(1)->create(['archived_at' => now()]);

Expand All @@ -220,4 +220,30 @@

});

it('can ignore default archived-table-row classes when specificly defined on the resource-table', function () {})->todo();
it('can ignore default archived-table-row classes when specificly defined on the resource-table', function () {

$plugin = new FilamentArchivablePlugin();

expect(FilamentArchivable::$archivedRecordClasses)
->toBeNull();

$plugin->archivedTableRowClasses(['opacity-25']);

expect(FilamentArchivable::$archivedRecordClasses)
->not->toBeNull()
->toBe(['opacity-25']);

$modelWithArchivedAt = ModelWithArchivableTrait::factory()->count(1)->create(['archived_at' => now()]);

// archivedRecordClasses is set to false in @see ModelWithArchivableTraitAndCustomClassesResource
livewire(ModelWithArchivableTraitAndFalseCustomClassesResource\Pages\ListPage::class)
->filterTable(ArchivedFilter::class, true)
->assertSuccessful()
->assertCanSeeTableRecords($modelWithArchivedAt)
->assertCountTableRecords(1)
->assertTableActionExists(UnArchiveAction::class)
->assertTableActionDoesNotExist(ArchiveAction::class)
->assertDontSee('opacity-25')
->assertDontSee('bg-red-300');

});
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace Okeonline\FilamentArchivable\Tests\TestResources;
namespace Okeonline\FilamentArchivable\Tests;

use Filament\Http\Middleware\Authenticate;
use Filament\Http\Middleware\DisableBladeIconComponents;
Expand All @@ -15,6 +15,10 @@
use Illuminate\Session\Middleware\StartSession;
use Illuminate\View\Middleware\ShareErrorsFromSession;
use Okeonline\FilamentArchivable\FilamentArchivablePlugin;
use Okeonline\FilamentArchivable\Tests\TestResources\ModelWithArchivableTraitAndCustomClassesResource;
use Okeonline\FilamentArchivable\Tests\TestResources\ModelWithArchivableTraitAndFalseCustomClassesResource;
use Okeonline\FilamentArchivable\Tests\TestResources\ModelWithArchivableTraitResource;
use Okeonline\FilamentArchivable\Tests\TestResources\ModelWithoutArchivableTraitResource;

class PanelProvider extends FilamentPanelProvider
{
Expand All @@ -32,6 +36,7 @@ public function panel(Panel $panel): Panel
ModelWithArchivableTraitResource::class,
ModelWithoutArchivableTraitResource::class,
ModelWithArchivableTraitAndCustomClassesResource::class,
ModelWithArchivableTraitAndFalseCustomClassesResource::class,
])
->middleware([
EncryptCookies::class,
Expand Down
1 change: 0 additions & 1 deletion tests/TestCase.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
use Livewire\LivewireServiceProvider;
use Okeonline\FilamentArchivable\FilamentArchivableServiceProvider;
use Okeonline\FilamentArchivable\Tests\TestModels\User;
use Okeonline\FilamentArchivable\Tests\TestResources\PanelProvider;
use Orchestra\Testbench\TestCase as Orchestra;
use RyanChandler\BladeCaptureDirective\BladeCaptureDirectiveServiceProvider;

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<?php

namespace Okeonline\FilamentArchivable\Tests\TestResources;

use Filament\Forms\Components\DatePicker;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Form;
use Filament\Resources\Resource;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
use Okeonline\FilamentArchivable\Tables\Actions\ArchiveAction;
use Okeonline\FilamentArchivable\Tables\Actions\UnArchiveAction;
use Okeonline\FilamentArchivable\Tables\Filters\ArchivedFilter;
use Okeonline\FilamentArchivable\Tests\TestModels\ModelWithArchivableTrait;
use Okeonline\FilamentArchivable\Tests\TestResources\ModelWithArchivableTraitAndCustomClassesResource\Pages\ListPage;

class ModelWithArchivableTraitAndFalseCustomClassesResource extends Resource
{
protected static ?string $model = ModelWithArchivableTrait::class;

public static ?string $modelLabel = 'with-classes';

public static function form(Form $form): Form
{
return $form
->schema([
TextInput::make('name'),
DatePicker::make('archived_at'),
]);
}

public static function table(Table $table): Table
{
return $table
->archivedRecordClasses(false)
->columns([
TextColumn::make('name'),
TextColumn::make('archived_at')
->dateTime(),
])
->filters([
ArchivedFilter::make(),
])
->actions([
ArchiveAction::make(),
UnArchiveAction::make(),
]);
}

public static function getPages(): array
{
return [
'index' => ListPage::route('/'),
];
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php

namespace Okeonline\FilamentArchivable\Tests\TestResources\ModelWithArchivableTraitAndFalseCustomClassesResource\Pages;

use Filament\Resources\Pages\ListRecords;
use Okeonline\FilamentArchivable\Tests\TestResources\ModelWithArchivableTraitAndFalseCustomClassesResource;

class ListPage extends ListRecords
{
protected static string $resource = ModelWithArchivableTraitAndFalseCustomClassesResource::class;
}

0 comments on commit ea3e10c

Please sign in to comment.