From b89da004c59e2f060c6e276a576e37406f4a8dcf Mon Sep 17 00:00:00 2001 From: "Christopher C. Wells" Date: Wed, 31 Mar 2021 20:22:03 -0700 Subject: [PATCH] Add basic API tests --- routes/api.php | 6 +-- tests/Feature/JsonApi/FoodApiTest.php | 29 +++++++++++ .../JsonApi/IngredientAmountApiTest.php | 29 +++++++++++ tests/Feature/JsonApi/JournalEntryApiTest.php | 29 +++++++++++ tests/Feature/JsonApi/JsonApiTestCase.php | 50 +++++++++++++++++++ tests/Feature/JsonApi/RecipeApiTest.php | 29 +++++++++++ tests/Feature/JsonApi/RecipeStepApiTest.php | 38 ++++++++++++++ tests/Feature/JsonApi/TagApiTest.php | 29 +++++++++++ 8 files changed, 236 insertions(+), 3 deletions(-) create mode 100644 tests/Feature/JsonApi/FoodApiTest.php create mode 100644 tests/Feature/JsonApi/IngredientAmountApiTest.php create mode 100644 tests/Feature/JsonApi/JournalEntryApiTest.php create mode 100644 tests/Feature/JsonApi/JsonApiTestCase.php create mode 100644 tests/Feature/JsonApi/RecipeApiTest.php create mode 100644 tests/Feature/JsonApi/RecipeStepApiTest.php create mode 100644 tests/Feature/JsonApi/TagApiTest.php diff --git a/routes/api.php b/routes/api.php index 43e060f..759c2ab 100644 --- a/routes/api.php +++ b/routes/api.php @@ -19,14 +19,14 @@ JsonApi::register('v1')->routes(function ($api) { $relations->hasOne('ingredient')->readOnly(); $relations->hasOne('parent')->readOnly(); })->readOnly(); - $api->resource('media')->relationships(function ($relations) { - $relations->hasOne('owner')->readOnly(); - })->readOnly(); $api->resource('journal-entries')->relationships(function ($relations) { $relations->hasMany('foods')->readOnly(); $relations->hasMany('recipes')->readOnly(); $relations->hasOne('user')->readOnly(); })->readOnly(); + $api->resource('media')->relationships(function ($relations) { + $relations->hasOne('owner')->readOnly(); + })->readOnly(); $api->resource('recipes')->relationships(function ($relations) { $relations->hasMany('ingredient-amounts')->readOnly(); $relations->hasMany('media')->readOnly(); diff --git a/tests/Feature/JsonApi/FoodApiTest.php b/tests/Feature/JsonApi/FoodApiTest.php new file mode 100644 index 0000000..17a639a --- /dev/null +++ b/tests/Feature/JsonApi/FoodApiTest.php @@ -0,0 +1,29 @@ +routePrefix = config('json-api-v1.url.name'); + } + + /** + * Create instances of the model being tested. + */ + protected function createInstances(int $count = 1): Collection { + return $this->factory()->count($count)->create(); + } + + public function testCanGetIndex(): void + { + $this->createInstances(10); + $index_url = route("{$this->routePrefix}{$this->resourceName()}.index"); + $response = $this->get($index_url); + $response->assertOk(); + $response->assertJson(['data' => true]); + $response->assertJsonCount(10, 'data'); + } + +} diff --git a/tests/Feature/JsonApi/RecipeApiTest.php b/tests/Feature/JsonApi/RecipeApiTest.php new file mode 100644 index 0000000..9750062 --- /dev/null +++ b/tests/Feature/JsonApi/RecipeApiTest.php @@ -0,0 +1,29 @@ +count(1)->hasSteps($count)->create(); + } + +} diff --git a/tests/Feature/JsonApi/TagApiTest.php b/tests/Feature/JsonApi/TagApiTest.php new file mode 100644 index 0000000..c37120b --- /dev/null +++ b/tests/Feature/JsonApi/TagApiTest.php @@ -0,0 +1,29 @@ +