81 lines
2.0 KiB
PHP
81 lines
2.0 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace Zoomyboy\MedialibraryHelper\Tests;
|
||
|
|
||
|
use Illuminate\Http\File;
|
||
|
use Illuminate\Support\Facades\Config;
|
||
|
use Illuminate\Support\Facades\Gate;
|
||
|
use Orchestra\Testbench\TestCase as BaseTestCase;
|
||
|
use Spatie\LaravelData\LaravelDataServiceProvider;
|
||
|
use Spatie\MediaLibrary\MediaLibraryServiceProvider;
|
||
|
use Zoomyboy\MedialibraryHelper\ServiceProvider;
|
||
|
use Zoomyboy\MedialibraryHelper\Tests\Models\Post;
|
||
|
|
||
|
class TestCase extends BaseTestCase
|
||
|
{
|
||
|
|
||
|
/**
|
||
|
* Define database migrations.
|
||
|
*
|
||
|
* @return void
|
||
|
*/
|
||
|
protected function defineDatabaseMigrations(): void
|
||
|
{
|
||
|
$this->loadMigrationsFrom(__DIR__ . '/migrations');
|
||
|
}
|
||
|
|
||
|
protected function getPackageProviders($app): array
|
||
|
{
|
||
|
return [
|
||
|
ServiceProvider::class,
|
||
|
MediaLibraryServiceProvider::class,
|
||
|
LaravelDataServiceProvider::class,
|
||
|
];
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Generate a pdf file with a filename and get path
|
||
|
*/
|
||
|
protected function pdfFile(?string $filename = null): File
|
||
|
{
|
||
|
return $this->getFile('pdf.pdf', $filename ?: 'pdf.pdf');
|
||
|
}
|
||
|
|
||
|
protected function getFile(string $location, string $as): File
|
||
|
{
|
||
|
$path = __DIR__.'/stubs/'.$location;
|
||
|
$to = sys_get_temp_dir().'/'.$as;
|
||
|
copy($path, $to);
|
||
|
|
||
|
return new File($to);
|
||
|
}
|
||
|
|
||
|
protected function registerModel(): static
|
||
|
{
|
||
|
app()->extend('media-library-helpers', fn ($p) => $p->put('post', Post::class));
|
||
|
|
||
|
return $this;
|
||
|
}
|
||
|
|
||
|
protected function newPost(): Post
|
||
|
{
|
||
|
return Post::create(['title' => 'Lorem', 'content' => 'aafff']);
|
||
|
}
|
||
|
|
||
|
protected function auth(array $policies = []): self
|
||
|
{
|
||
|
$policies = [
|
||
|
'storeMedia' => true,
|
||
|
'updateMedia' => true,
|
||
|
'destroyMedia' => true,
|
||
|
...$policies,
|
||
|
];
|
||
|
|
||
|
foreach ($policies as $ability => $result) {
|
||
|
Gate::define($ability, fn (?string $whatever) => $result);
|
||
|
}
|
||
|
|
||
|
return $this;
|
||
|
}
|
||
|
}
|