|
|
|
@@ -0,0 +1,76 @@ |
|
|
|
<?php |
|
|
|
/** |
|
|
|
* @author Daniel Knudsen <d.knudsen@spawntree.de> |
|
|
|
* @date 12.12.23 |
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
|
|
namespace App\Tests\Functional; |
|
|
|
|
|
|
|
use App\Factory\ContactFactory; |
|
|
|
use App\Factory\MediaObjectLogoFactory; |
|
|
|
use App\Factory\MediaObjectContactFactory; |
|
|
|
use App\Factory\MediaObjectProductFactory; |
|
|
|
use App\Factory\MediaObjectUserFactory; |
|
|
|
use App\Factory\PartnerFactory; |
|
|
|
use App\Factory\PostingFactory; |
|
|
|
use App\Factory\UserFactory; |
|
|
|
use Lexik\Bundle\JWTAuthenticationBundle\Services\JWTTokenManagerInterface; |
|
|
|
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase; |
|
|
|
use Zenstruck\Browser\Test\HasBrowser; |
|
|
|
use Zenstruck\Foundry\Test\Factories; |
|
|
|
use Zenstruck\Foundry\Test\ResetDatabase; |
|
|
|
|
|
|
|
class ProductResourceTest extends KernelTestCase |
|
|
|
{ |
|
|
|
use HasBrowser; |
|
|
|
use ResetDatabase; |
|
|
|
use Factories; |
|
|
|
|
|
|
|
private JWTTokenManagerInterface $JWTManager; |
|
|
|
|
|
|
|
protected function setUp(): void |
|
|
|
{ |
|
|
|
parent::setUp(); |
|
|
|
$this->JWTManager = self::getContainer()->get('lexik_jwt_authentication.jwt_manager'); |
|
|
|
} |
|
|
|
|
|
|
|
public function testPostProduct(): void |
|
|
|
{ |
|
|
|
$user = UserFactory::createOne( |
|
|
|
[ |
|
|
|
'email' => 'peter@test.de', |
|
|
|
'firstName' => 'Peter', |
|
|
|
'lastName' => 'Test', |
|
|
|
'password' => 'test', |
|
|
|
] |
|
|
|
); |
|
|
|
|
|
|
|
$mediaObject = MediaObjectProductFactory::createOne(); |
|
|
|
$token = $this->JWTManager->create($user->object()); |
|
|
|
|
|
|
|
$this->browser() |
|
|
|
->post('/api/products' , [ |
|
|
|
'json' => [ |
|
|
|
'name' => 'Test', |
|
|
|
'description' => 'more test', |
|
|
|
'image' => '/api/media/' . $mediaObject->getId(), |
|
|
|
], |
|
|
|
'headers' => [ |
|
|
|
'Authorization' => 'Bearer ' . $token, |
|
|
|
] |
|
|
|
]) |
|
|
|
->assertSuccessful() |
|
|
|
; |
|
|
|
|
|
|
|
$this->browser() |
|
|
|
->get('/api/products', [ |
|
|
|
'headers' => [ |
|
|
|
'Authorization' => 'Bearer ' . $token, |
|
|
|
], |
|
|
|
]) |
|
|
|
->assertSuccessful() |
|
|
|
->assertJsonMatches('"hydra:totalItems"', 1) |
|
|
|
; |
|
|
|
} |
|
|
|
} |