Skip to content

Commit

Permalink
test: Add test for internal resources
Browse files Browse the repository at this point in the history
  • Loading branch information
pionl committed Jun 30, 2023
1 parent 54fd9d0 commit 6a2788a
Show file tree
Hide file tree
Showing 4 changed files with 93 additions and 0 deletions.
20 changes: 20 additions & 0 deletions tests/Feature/Http/Resources/CreatedResourceTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?php

declare(strict_types=1);

namespace Tests\LaraStrict\Feature\Http\Resources;

use Illuminate\Http\Request;
use LaraStrict\Http\Resources\CreatedResource;
use Tests\LaraStrict\Feature\TestCase;

class CreatedResourceTest extends TestCase
{
public function testSetsCode201(): void
{
$response = (new CreatedResource(id: 1))->toResponse($this->app()->make(Request::class));

$this->assertEquals(201, $response->getStatusCode());
$this->assertEquals('{"message":"created","data":{"id":1}}', $response->getContent());
}
}
22 changes: 22 additions & 0 deletions tests/Unit/Http/Resources/DeletedResourceTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?php

declare(strict_types=1);

namespace Tests\LaraStrict\Unit\Http\Resources;

use Illuminate\Http\Request;
use LaraStrict\Http\Resources\DeletedResource;
use PHPUnit\Framework\TestCase;

class DeletedResourceTest extends TestCase
{
public function test(): void
{
$this->assertEquals(
expected: [
'message' => 'deleted',
],
actual: (new DeletedResource())->toArray(new Request())
);
}
}
29 changes: 29 additions & 0 deletions tests/Unit/Http/Resources/ResourceArrayResource.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?php

declare(strict_types=1);

namespace Tests\LaraStrict\Unit\Http\Resources;

use Illuminate\Http\Resources\Json\JsonResource as BaseJsonResource;
use LaraStrict\Http\Resources\JsonResource;

/**
* @property BaseJsonResource $resource
*/
class ResourceArrayResource extends JsonResource
{
public function __construct(?BaseJsonResource $resource)
{
parent::__construct($resource);
}

/**
* @return array<string, array<array<string, mixed>>>
*/
public function toArray($request)
{
return [
'res' => $this->resourceArray($request, $this->resource),
];
}
}
22 changes: 22 additions & 0 deletions tests/Unit/Http/Resources/UpdatedResourceTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?php

declare(strict_types=1);

namespace Tests\LaraStrict\Unit\Http\Resources;

use Illuminate\Http\Request;
use LaraStrict\Http\Resources\UpdatedResource;
use PHPUnit\Framework\TestCase;

class UpdatedResourceTest extends TestCase
{
public function test(): void
{
$this->assertEquals(
expected: [
'message' => 'updated',
],
actual: (new UpdatedResource())->toArray(new Request())
);
}
}

0 comments on commit 6a2788a

Please sign in to comment.