enable tests

This commit is contained in:
Kamil Grygierzec 2024-06-14 08:25:06 +02:00 committed by Grzegorz Sadowski
parent 7cdca5f90f
commit 29affee4cb
6 changed files with 137 additions and 162 deletions

View file

@ -1,158 +0,0 @@
<?php
/*
* This file is part of the Sylius package.
*
* (c) Sylius Sp. z o.o.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
declare(strict_types=1);
namespace Sylius\Tests\Api\Admin;
use Sylius\Component\Core\Model\AdminUserInterface;
use Sylius\Tests\Api\JsonApiTestCase;
use Sylius\Tests\Api\Utils\AdminUserLoginTrait;
use Symfony\Component\HttpFoundation\Response;
final class AdminUsersTest extends JsonApiTestCase
{
use AdminUserLoginTrait;
/** @test */
public function it_allows_admin_users_to_log_in(): void
{
$this->loadFixturesFromFile('authentication/api_administrator.yaml');
$this->client->request(
method: 'POST',
uri: '/api/v2/admin/administrators/token',
server: self::CONTENT_TYPE_HEADER,
content: json_encode([
'email' => 'api@example.com',
'password' => 'sylius',
], \JSON_THROW_ON_ERROR),
);
$response = $this->client->getResponse();
$this->assertResponse($response, 'admin/admin_user/log_in_admin_response', Response::HTTP_OK);
}
/** @test */
public function it_gets_administrators(): void
{
$this->loadFixturesFromFiles(['authentication/api_administrator.yaml', 'administrator.yaml']);
$header = array_merge($this->logInAdminUser('api@example.com'), self::CONTENT_TYPE_HEADER);
$this->client->request(method: 'GET', uri: '/api/v2/admin/administrators', server: $header);
$this->assertResponse(
$this->client->getResponse(),
'admin/admin_user/get_administrators_response',
Response::HTTP_OK,
);
}
/** @test */
public function it_gets_an_administrator(): void
{
$fixtures = $this->loadFixturesFromFiles(['authentication/api_administrator.yaml', 'administrator.yaml']);
$header = array_merge($this->logInAdminUser('api@example.com'), self::CONTENT_TYPE_HEADER);
/** @var AdminUserInterface $administrator */
$administrator = $fixtures['admin_user_wilhelm'];
$this->client->request(
method: 'GET',
uri: sprintf('/api/v2/admin/administrators/%s', $administrator->getId()),
server: $header,
);
$this->assertResponse(
$this->client->getResponse(),
'admin/admin_user/get_administrator_response',
Response::HTTP_OK,
);
}
/** @test */
public function it_creates_an_administrator(): void
{
$this->loadFixturesFromFile('authentication/api_administrator.yaml');
$header = array_merge($this->logInAdminUser('api@example.com'), self::CONTENT_TYPE_HEADER);
$this->client->request(
method: 'POST',
uri: '/api/v2/admin/administrators',
server: $header,
content: json_encode([
'email' => 'j.api@test.com',
'username' => 'johnApi',
'plainPassword' => 'very-secure',
'enabled' => true,
'firstName' => 'John',
'lastName' => 'Api',
'localeCode' => 'ga_IE',
], \JSON_THROW_ON_ERROR),
);
$this->assertResponse(
$this->client->getResponse(),
'admin/admin_user/create_administrator_response',
Response::HTTP_CREATED,
);
}
/** @test */
public function it_updates_an_administrator(): void
{
$fixtures = $this->loadFixturesFromFiles(['authentication/api_administrator.yaml', 'administrator.yaml']);
$header = array_merge($this->logInAdminUser('api@example.com'), self::CONTENT_TYPE_HEADER);
/** @var AdminUserInterface $administrator */
$administrator = $fixtures['admin_user_wilhelm'];
$this->client->request(
method: 'PUT',
uri: sprintf('/api/v2/admin/administrators/%s', $administrator->getId()),
server: $header,
content: json_encode([
'email' => 'j.api@test.com',
'username' => 'johnApi',
'plainPassword' => 'very-secure',
'enabled' => false,
'firstName' => 'John',
'lastName' => 'Api',
'localeCode' => 'ga_IE',
], \JSON_THROW_ON_ERROR),
);
$this->assertResponse(
$this->client->getResponse(),
'admin/admin_user/put_administrator_response',
Response::HTTP_OK,
);
}
/** @test */
public function it_deletes_an_administrator(): void
{
$fixtures = $this->loadFixturesFromFiles(['authentication/api_administrator.yaml', 'administrator.yaml']);
$header = array_merge($this->logInAdminUser('api@example.com'), self::CONTENT_TYPE_HEADER);
/** @var AdminUserInterface $administrator */
$administrator = $fixtures['admin_user_wilhelm'];
$this->client->request(
method: 'DELETE',
uri: sprintf('/api/v2/admin/administrators/%s', $administrator->getId()),
server: $header,
);
$this->assertResponseCode($this->client->getResponse(), Response::HTTP_NO_CONTENT);
}
}

View file

@ -7,7 +7,7 @@ Feature: Adding an avatar to an administrator
Background:
Given I am logged in as an administrator
@ui @api @avatar # temporarily enabled to test only the avatar
@ui @api
Scenario: Adding an avatar to administrator account
Given I am editing my details
When I upload the "troll.jpg" image as my avatar

View file

@ -7,7 +7,7 @@ Feature: Changing an administrator's avatar
Background:
Given I am logged in as an administrator
@ui @api @avatar # temporarily enabled to test only the avatar
@ui @api
Scenario: Changing an avatar of an administrator
Given I have the "ford.jpg" image as my avatar
And I am editing my details

View file

@ -8,7 +8,7 @@ Feature: Removing an administrator avatar
Given I am logged in as an administrator
And this administrator has the "troll.jpg" image as avatar
@ui @api @avatar # temporarily enabled to test only the avatar
@ui @api
Scenario: Removing an administrator avatar
Given I am editing my details
When I remove the avatar

View file

@ -21,5 +21,5 @@ default:
- sylius.behat.context.api.admin.save
filters:
tags: "@managing_administrators&&@api&&@avatar"
tags: "@managing_administrators&&@api"
javascript: false

View file

@ -15,11 +15,144 @@ namespace Sylius\Tests\Api\Admin;
use Sylius\Component\Core\Model\AdminUserInterface;
use Sylius\Tests\Api\JsonApiTestCase;
use Sylius\Tests\Api\Utils\AdminUserLoginTrait;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
final class AdminUsersTest extends JsonApiTestCase
{
use AdminUserLoginTrait;
/** @test */
public function it_allows_admin_users_to_log_in(): void
{
$this->loadFixturesFromFile('authentication/api_administrator.yaml');
$this->client->request(
method: 'POST',
uri: '/api/v2/admin/administrators/token',
server: self::CONTENT_TYPE_HEADER,
content: json_encode([
'email' => 'api@example.com',
'password' => 'sylius',
], \JSON_THROW_ON_ERROR),
);
$response = $this->client->getResponse();
$this->assertResponse($response, 'admin/admin_user/log_in_admin_response', Response::HTTP_OK);
}
/** @test */
public function it_gets_administrators(): void
{
$this->loadFixturesFromFiles(['authentication/api_administrator.yaml', 'administrator.yaml']);
$header = $this->headerBuilder()->withJsonLdAccept()->withAdminUserAuthorization('api@example.com')->build();
$this->requestGet(uri: '/api/v2/admin/administrators', headers: $header);
$this->assertResponse(
$this->client->getResponse(),
'admin/admin_user/get_administrators_response',
Response::HTTP_OK,
);
}
/** @test */
public function it_gets_an_administrator(): void
{
$fixtures = $this->loadFixturesFromFiles(['authentication/api_administrator.yaml', 'administrator.yaml']);
$header = $this->headerBuilder()->withJsonLdAccept()->withAdminUserAuthorization('api@example.com')->build();
/** @var AdminUserInterface $administrator */
$administrator = $fixtures['admin_user_wilhelm'];
$this->requestGet(uri: '/api/v2/admin/administrators/' . $administrator->getId(), headers: $header);
$this->assertResponse(
$this->client->getResponse(),
'admin/admin_user/get_administrator_response',
Response::HTTP_OK,
);
}
/** @test */
public function it_creates_an_administrator(): void
{
$this->loadFixturesFromFile('authentication/api_administrator.yaml');
$header = array_merge($this->logInAdminUser('api@example.com'), self::CONTENT_TYPE_HEADER);
$this->client->request(
method: 'POST',
uri: '/api/v2/admin/administrators',
server: $header,
content: json_encode([
'email' => 'j.api@test.com',
'username' => 'johnApi',
'plainPassword' => 'very-secure',
'enabled' => true,
'firstName' => 'John',
'lastName' => 'Api',
'localeCode' => 'ga_IE',
], \JSON_THROW_ON_ERROR),
);
$this->assertResponse(
$this->client->getResponse(),
'admin/admin_user/create_administrator_response',
Response::HTTP_CREATED,
);
}
/** @test */
public function it_updates_an_administrator(): void
{
$fixtures = $this->loadFixturesFromFiles(['authentication/api_administrator.yaml', 'administrator.yaml']);
$header = array_merge($this->logInAdminUser('api@example.com'), self::CONTENT_TYPE_HEADER);
/** @var AdminUserInterface $administrator */
$administrator = $fixtures['admin_user_wilhelm'];
$this->client->request(
method: 'PUT',
uri: sprintf('/api/v2/admin/administrators/%s', $administrator->getId()),
server: $header,
content: json_encode([
'email' => 'j.api@test.com',
'username' => 'johnApi',
'plainPassword' => 'very-secure',
'enabled' => false,
'firstName' => 'John',
'lastName' => 'Api',
'localeCode' => 'ga_IE',
], \JSON_THROW_ON_ERROR),
);
$this->assertResponse(
$this->client->getResponse(),
'admin/admin_user/put_administrator_response',
Response::HTTP_OK,
);
}
/** @test */
public function it_deletes_an_administrator(): void
{
$fixtures = $this->loadFixturesFromFiles(['authentication/api_administrator.yaml', 'administrator.yaml']);
$header = $this->headerBuilder()->withJsonLdAccept()->withAdminUserAuthorization('api@example.com')->build();
/** @var AdminUserInterface $administrator */
$administrator = $fixtures['admin_user_wilhelm'];
$this->client->request(
method: 'DELETE',
uri: sprintf('/api/v2/admin/administrators/%s', $administrator->getId()),
server: $header,
);
$this->assertResponseCode($this->client->getResponse(), Response::HTTP_NO_CONTENT);
}
/** @test */
public function it_sends_administrator_password_reset_email(): void
{