1
0
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:
Dan Brown
2022-06-19 17:26:23 +01:00
parent 663f81a2b1
commit 65d4505079
4 changed files with 88 additions and 4 deletions

View File

@@ -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();