mirror of
https://github.com/BookStackApp/BookStack.git
synced 2025-08-09 10:22:51 +03:00
Added tests and doc updates for shelf/book cover image API abilities
This commit is contained in:
@@ -6,10 +6,12 @@ use BookStack\Entities\Models\Book;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Tests\TestCase;
|
||||
use Tests\Uploads\UsesImages;
|
||||
|
||||
class BooksApiTest extends TestCase
|
||||
{
|
||||
use TestsApi;
|
||||
use UsesImages;
|
||||
|
||||
protected string $baseEndpoint = '/api/books';
|
||||
|
||||
@@ -118,6 +120,42 @@ class BooksApiTest extends TestCase
|
||||
$this->assertGreaterThan(Carbon::now()->subDay()->unix(), $book->updated_at->unix());
|
||||
}
|
||||
|
||||
public function test_update_cover_image_control()
|
||||
{
|
||||
$this->actingAsApiEditor();
|
||||
/** @var Book $book */
|
||||
$book = Book::visible()->first();
|
||||
$this->assertNull($book->cover);
|
||||
$file = $this->getTestImage('image.png');
|
||||
|
||||
// Ensure cover image can be set via API
|
||||
$resp = $this->call('PUT', $this->baseEndpoint . "/{$book->id}", [
|
||||
'name' => 'My updated API book with image',
|
||||
], [], ['image' => $file]);
|
||||
$book->refresh();
|
||||
|
||||
$resp->assertStatus(200);
|
||||
$this->assertNotNull($book->cover);
|
||||
|
||||
// Ensure further updates without image do not clear cover image
|
||||
$resp = $this->put($this->baseEndpoint . "/{$book->id}", [
|
||||
'name' => 'My updated book again'
|
||||
]);
|
||||
$book->refresh();
|
||||
|
||||
$resp->assertStatus(200);
|
||||
$this->assertNotNull($book->cover);
|
||||
|
||||
// Ensure update with null image property clears image
|
||||
$resp = $this->put($this->baseEndpoint . "/{$book->id}", [
|
||||
'image' => null,
|
||||
]);
|
||||
$book->refresh();
|
||||
|
||||
$resp->assertStatus(200);
|
||||
$this->assertNull($book->cover);
|
||||
}
|
||||
|
||||
public function test_delete_endpoint()
|
||||
{
|
||||
$this->actingAsApiEditor();
|
||||
|
Reference in New Issue
Block a user