fix media test

This commit is contained in:
Dennis Eichhorn 2023-09-29 16:42:23 +00:00
parent e868ad0e11
commit c4d1048431
3 changed files with 34 additions and 4 deletions

View File

@ -562,6 +562,13 @@ final class ApiController extends Controller
*/
public function apiMediaUpdate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
{
if (!empty($val = $this->validateMediaUpdate($request))) {
$response->header->status = RequestStatusCode::R_400;
$this->createInvalidUpdateResponse($request, $response, $val);
return;
}
/** @var Media $old */
$old = MediaMapper::get()->where('id', (int) $request->getData('id'))->execute();
$new = $this->updateMediaFromRequest($request, clone $old);
@ -570,6 +577,25 @@ final class ApiController extends Controller
$this->createStandardUpdateResponse($request, $response, $new);
}
/**
* Validate media update request
*
* @param RequestAbstract $request Request
*
* @return array<string, bool> Returns the validation array of the request
*
* @since 1.0.0
*/
private function validateMediaUpdate(RequestAbstract $request) : array
{
$val = [];
if (($val['id'] = !$request->hasData('id'))) {
return $val;
}
return [];
}
/**
* Method to update media from request.
*
@ -599,6 +625,7 @@ final class ApiController extends Controller
return $new;
}
// @todo: create test for this content change and the parsed content change
if ($request->hasData('content')) {
\file_put_contents(
$new->isAbsolute

View File

@ -244,8 +244,9 @@ trait ApiControllerMediaTrait
$request->header->account = 1;
$request->setData('id', $id);
$request->setData('name', 'Test Changed');
$request->setData('content', 'Test Changed');
$request->setData('name', 'New name');
$request->setData('description', 'New description');
$request->setData('content', 'New content');
$this->module->apiMediaUpdate($request, $response);
$media = MediaMapper::get()
@ -253,8 +254,9 @@ trait ApiControllerMediaTrait
->where('id', $id)
->execute();
self::assertEquals('Test Changed', $media->name);
self::assertEquals('Test Changed', $media->content?->content);
self::assertEquals('New name', $media->name);
self::assertEquals('New description', $media->description);
self::AssertEquals('New content', \file_get_contents($media->getAbsolutePath()));
Directory::delete(__DIR__ . '/../test');
}

View File

@ -46,6 +46,7 @@ final class ApiControllerTest extends \PHPUnit\Framework\TestCase
$this->app = new class() extends ApplicationAbstract
{
protected string $appName = 'Api';
protected int $appId = 1;
};
$this->app->dbPool = $GLOBALS['dbpool'];