HEX
Server: LiteSpeed
System: Linux premium260.web-hosting.com 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP Wed Mar 26 12:08:09 UTC 2025 x86_64
User: aliazzsr (627)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: /home/aliazzsr/api.crm.vqode.com/tests/api/UsersImageCept.php
<?php
/**
 * @var \Codeception\Scenario $scenario
 */

$I = new ApiTester($scenario);
$I->wantTo('upload user profile image and see avatar');

$I->login();

$I->comment('creating new user');
$newUser = [
    'name' => $I->fake()->name,
    'job_title' => $I->fake()->jobTitle,
    'contact' => $I->fake()->phoneNumber,
    'region_id' => $I->getRandomId('region'),
    'email' => $I->fake()->email,
    'role_id' => \app\models\core\Role::ADMIN,
    'password' => $I->fake()->regexify('[a-z]{4}[A-Z]{4}[0-9]{4}'),
];
$I->sendPOST('users', $newUser);
$I->seeResponseCodeIs(\Codeception\Util\HttpCode::CREATED);
$newUser['id'] = json_decode($I->grabResponse())->id;

$I->comment('get default user avatar');
$I->sendGET('users/' . $newUser['id'] . '/image');
$I->seeResponseCodeIs(\Codeception\Util\HttpCode::OK);
$I->seeHttpHeader('content-type', 'image/png');

$I->comment('adding user avatar');
$imageFile = codecept_data_dir('user-avatar.jpg');
$files = [
    'content' => [
        'name' => 'user-avatar.jpg',
        'type' => 'image/jpeg',
        'size' => filesize($imageFile),
        'tmp_name' => $imageFile,
        'error' => 0,
    ],
];
$I->sendPOST('users/' . $newUser['id'] . '/image', [], $files);

$I->comment('get new user avatar');
$I->sendGET('users/' . $newUser['id'] . '/image');
$I->seeResponseCodeIs(\Codeception\Util\HttpCode::OK);
$I->seeHttpHeader('content-type', $files['content']['type']);
$I->seeHttpHeader('content-length', $files['content']['size']);

$I->comment('delete new user avatar');
$I->sendDELETE('users/' . $newUser['id'] . '/image');
$I->seeResponseCodeIs(\Codeception\Util\HttpCode::NO_CONTENT);

$I->comment('get default user avatar');
$I->sendGET('users/' . $newUser['id'] . '/image');
$I->seeResponseCodeIs(\Codeception\Util\HttpCode::OK);
$I->seeHttpHeader('content-type', 'image/png');