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');