From: Dan Brown Date: Sat, 25 Apr 2020 15:38:11 +0000 (+0100) Subject: Fixed incorrect API listing total when offset set X-Git-Tag: v0.29.1~1^2~15 X-Git-Url: http://source.bookstackapp.com/bookstack/commitdiff_plain/79a949836b93c89b5efd9d9cf94e0f2b93dda48f Fixed incorrect API listing total when offset set Fixes #2043 --- diff --git a/app/Api/ListingResponseBuilder.php b/app/Api/ListingResponseBuilder.php index 2fa5644c3..942c5d270 100644 --- a/app/Api/ListingResponseBuilder.php +++ b/app/Api/ListingResponseBuilder.php @@ -36,8 +36,8 @@ class ListingResponseBuilder */ public function toResponse() { - $data = $this->fetchData(); $total = $this->query->count(); + $data = $this->fetchData(); return response()->json([ 'data' => $data, diff --git a/tests/Api/ApiListingTest.php b/tests/Api/ApiListingTest.php index ac6d61aa1..bb4920cc3 100644 --- a/tests/Api/ApiListingTest.php +++ b/tests/Api/ApiListingTest.php @@ -81,4 +81,20 @@ class ApiListingTest extends TestCase } } + public function test_total_on_results_shows_correctly() + { + $this->actingAsApiEditor(); + $bookCount = Book::query()->count(); + $resp = $this->get($this->endpoint . '?count=1'); + $resp->assertJson(['total' => $bookCount ]); + } + + public function test_total_on_results_shows_correctly_when_offset_provided() + { + $this->actingAsApiEditor(); + $bookCount = Book::query()->count(); + $resp = $this->get($this->endpoint . '?count=1&offset=1'); + $resp->assertJson(['total' => $bookCount ]); + } + } \ No newline at end of file