1
0
Fork 0
mirror of synced 2024-06-17 02:04:56 +12:00

Updated Mock API

This commit is contained in:
Eldad Fux 2021-03-05 08:40:29 +02:00
parent 30b04baca8
commit c31c7736a1
3 changed files with 124 additions and 30 deletions

View file

@ -2,6 +2,7 @@
global $utopia, $request, $response; global $utopia, $request, $response;
use Appwrite\Database\Document;
use Appwrite\Utopia\Response; use Appwrite\Utopia\Response;
use Utopia\App; use Utopia\App;
use Utopia\Validator\Numeric; use Utopia\Validator\Numeric;
@ -11,13 +12,16 @@ use Utopia\Validator\Host;
use Utopia\Storage\Validator\File; use Utopia\Storage\Validator\File;
App::get('/v1/mock/tests/foo') App::get('/v1/mock/tests/foo')
->desc('Mock a get request for SDK tests') ->desc('Get Foo')
->groups(['mock']) ->groups(['mock'])
->label('scope', 'public') ->label('scope', 'public')
->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER])
->label('sdk.namespace', 'foo') ->label('sdk.namespace', 'foo')
->label('sdk.method', 'get') ->label('sdk.method', 'get')
->label('sdk.description', 'Mock a get request for SDK tests') ->label('sdk.description', 'Mock a get request.')
->label('sdk.response.code', Response::STATUS_CODE_OK)
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
->label('sdk.response.model', Response::MODEL_MOCK)
->label('sdk.mock', true) ->label('sdk.mock', true)
->param('x', '', new Text(100), 'Sample string param') ->param('x', '', new Text(100), 'Sample string param')
->param('y', '', new Numeric(), 'Sample numeric param') ->param('y', '', new Numeric(), 'Sample numeric param')
@ -26,13 +30,16 @@ App::get('/v1/mock/tests/foo')
}); });
App::post('/v1/mock/tests/foo') App::post('/v1/mock/tests/foo')
->desc('Mock a post request for SDK tests') ->desc('Post Foo')
->groups(['mock']) ->groups(['mock'])
->label('scope', 'public') ->label('scope', 'public')
->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER])
->label('sdk.namespace', 'foo') ->label('sdk.namespace', 'foo')
->label('sdk.method', 'post') ->label('sdk.method', 'post')
->label('sdk.description', 'Mock a post request for SDK tests') ->label('sdk.description', 'Mock a post request.')
->label('sdk.response.code', Response::STATUS_CODE_OK)
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
->label('sdk.response.model', Response::MODEL_MOCK)
->label('sdk.mock', true) ->label('sdk.mock', true)
->param('x', '', new Text(100), 'Sample string param') ->param('x', '', new Text(100), 'Sample string param')
->param('y', '', new Numeric(), 'Sample numeric param') ->param('y', '', new Numeric(), 'Sample numeric param')
@ -41,13 +48,16 @@ App::post('/v1/mock/tests/foo')
}); });
App::patch('/v1/mock/tests/foo') App::patch('/v1/mock/tests/foo')
->desc('Mock a patch request for SDK tests') ->desc('Patch Foo')
->groups(['mock']) ->groups(['mock'])
->label('scope', 'public') ->label('scope', 'public')
->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER])
->label('sdk.namespace', 'foo') ->label('sdk.namespace', 'foo')
->label('sdk.method', 'patch') ->label('sdk.method', 'patch')
->label('sdk.description', 'Mock a get request for SDK tests') ->label('sdk.description', 'Mock a patch request.')
->label('sdk.response.code', Response::STATUS_CODE_OK)
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
->label('sdk.response.model', Response::MODEL_MOCK)
->label('sdk.mock', true) ->label('sdk.mock', true)
->param('x', '', new Text(100), 'Sample string param') ->param('x', '', new Text(100), 'Sample string param')
->param('y', '', new Numeric(), 'Sample numeric param') ->param('y', '', new Numeric(), 'Sample numeric param')
@ -56,13 +66,16 @@ App::patch('/v1/mock/tests/foo')
}); });
App::put('/v1/mock/tests/foo') App::put('/v1/mock/tests/foo')
->desc('Mock a put request for SDK tests') ->desc('Put Foo')
->groups(['mock']) ->groups(['mock'])
->label('scope', 'public') ->label('scope', 'public')
->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER])
->label('sdk.namespace', 'foo') ->label('sdk.namespace', 'foo')
->label('sdk.method', 'put') ->label('sdk.method', 'put')
->label('sdk.description', 'Mock a put request for SDK tests') ->label('sdk.description', 'Mock a put request.')
->label('sdk.response.code', Response::STATUS_CODE_OK)
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
->label('sdk.response.model', Response::MODEL_MOCK)
->label('sdk.mock', true) ->label('sdk.mock', true)
->param('x', '', new Text(100), 'Sample string param') ->param('x', '', new Text(100), 'Sample string param')
->param('y', '', new Numeric(), 'Sample numeric param') ->param('y', '', new Numeric(), 'Sample numeric param')
@ -71,13 +84,16 @@ App::put('/v1/mock/tests/foo')
}); });
App::delete('/v1/mock/tests/foo') App::delete('/v1/mock/tests/foo')
->desc('Mock a delete request for SDK tests') ->desc('Delete Foo')
->groups(['mock']) ->groups(['mock'])
->label('scope', 'public') ->label('scope', 'public')
->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER])
->label('sdk.namespace', 'foo') ->label('sdk.namespace', 'foo')
->label('sdk.method', 'delete') ->label('sdk.method', 'delete')
->label('sdk.description', 'Mock a delete request for SDK tests') ->label('sdk.description', 'Mock a delete request.')
->label('sdk.response.code', Response::STATUS_CODE_OK)
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
->label('sdk.response.model', Response::MODEL_MOCK)
->label('sdk.mock', true) ->label('sdk.mock', true)
->param('x', '', new Text(100), 'Sample string param') ->param('x', '', new Text(100), 'Sample string param')
->param('y', '', new Numeric(), 'Sample numeric param') ->param('y', '', new Numeric(), 'Sample numeric param')
@ -86,13 +102,16 @@ App::delete('/v1/mock/tests/foo')
}); });
App::get('/v1/mock/tests/bar') App::get('/v1/mock/tests/bar')
->desc('Mock a get request for SDK tests') ->desc('Get Bar')
->groups(['mock']) ->groups(['mock'])
->label('scope', 'public') ->label('scope', 'public')
->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER])
->label('sdk.namespace', 'bar') ->label('sdk.namespace', 'bar')
->label('sdk.method', 'get') ->label('sdk.method', 'get')
->label('sdk.description', 'Mock a get request for SDK tests') ->label('sdk.description', 'Mock a get request.')
->label('sdk.response.code', Response::STATUS_CODE_OK)
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
->label('sdk.response.model', Response::MODEL_MOCK)
->label('sdk.mock', true) ->label('sdk.mock', true)
->param('x', '', new Text(100), 'Sample string param') ->param('x', '', new Text(100), 'Sample string param')
->param('y', '', new Numeric(), 'Sample numeric param') ->param('y', '', new Numeric(), 'Sample numeric param')
@ -101,13 +120,16 @@ App::get('/v1/mock/tests/bar')
}); });
App::post('/v1/mock/tests/bar') App::post('/v1/mock/tests/bar')
->desc('Mock a post request for SDK tests') ->desc('Post Bar')
->groups(['mock']) ->groups(['mock'])
->label('scope', 'public') ->label('scope', 'public')
->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER])
->label('sdk.namespace', 'bar') ->label('sdk.namespace', 'bar')
->label('sdk.method', 'post') ->label('sdk.method', 'post')
->label('sdk.description', 'Mock a post request for SDK tests') ->label('sdk.description', 'Mock a post request.')
->label('sdk.response.code', Response::STATUS_CODE_OK)
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
->label('sdk.response.model', Response::MODEL_MOCK)
->label('sdk.mock', true) ->label('sdk.mock', true)
->param('x', '', new Text(100), 'Sample string param') ->param('x', '', new Text(100), 'Sample string param')
->param('y', '', new Numeric(), 'Sample numeric param') ->param('y', '', new Numeric(), 'Sample numeric param')
@ -116,13 +138,16 @@ App::post('/v1/mock/tests/bar')
}); });
App::patch('/v1/mock/tests/bar') App::patch('/v1/mock/tests/bar')
->desc('Mock a patch request for SDK tests') ->desc('Patch Bar')
->groups(['mock']) ->groups(['mock'])
->label('scope', 'public') ->label('scope', 'public')
->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER])
->label('sdk.namespace', 'bar') ->label('sdk.namespace', 'bar')
->label('sdk.method', 'patch') ->label('sdk.method', 'patch')
->label('sdk.description', 'Mock a get request for SDK tests') ->label('sdk.description', 'Mock a patch request.')
->label('sdk.response.code', Response::STATUS_CODE_OK)
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
->label('sdk.response.model', Response::MODEL_MOCK)
->label('sdk.mock', true) ->label('sdk.mock', true)
->param('x', '', new Text(100), 'Sample string param') ->param('x', '', new Text(100), 'Sample string param')
->param('y', '', new Numeric(), 'Sample numeric param') ->param('y', '', new Numeric(), 'Sample numeric param')
@ -131,13 +156,16 @@ App::patch('/v1/mock/tests/bar')
}); });
App::put('/v1/mock/tests/bar') App::put('/v1/mock/tests/bar')
->desc('Mock a put request for SDK tests') ->desc('Put Bar')
->groups(['mock']) ->groups(['mock'])
->label('scope', 'public') ->label('scope', 'public')
->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER])
->label('sdk.namespace', 'bar') ->label('sdk.namespace', 'bar')
->label('sdk.method', 'put') ->label('sdk.method', 'put')
->label('sdk.description', 'Mock a put request for SDK tests') ->label('sdk.description', 'Mock a put request.')
->label('sdk.response.code', Response::STATUS_CODE_OK)
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
->label('sdk.response.model', Response::MODEL_MOCK)
->label('sdk.mock', true) ->label('sdk.mock', true)
->param('x', '', new Text(100), 'Sample string param') ->param('x', '', new Text(100), 'Sample string param')
->param('y', '', new Numeric(), 'Sample numeric param') ->param('y', '', new Numeric(), 'Sample numeric param')
@ -146,13 +174,16 @@ App::put('/v1/mock/tests/bar')
}); });
App::delete('/v1/mock/tests/bar') App::delete('/v1/mock/tests/bar')
->desc('Mock a delete request for SDK tests') ->desc('Delete Bar')
->groups(['mock']) ->groups(['mock'])
->label('scope', 'public') ->label('scope', 'public')
->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER])
->label('sdk.namespace', 'bar') ->label('sdk.namespace', 'bar')
->label('sdk.method', 'delete') ->label('sdk.method', 'delete')
->label('sdk.description', 'Mock a delete request for SDK tests') ->label('sdk.description', 'Mock a delete request.')
->label('sdk.response.code', Response::STATUS_CODE_OK)
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
->label('sdk.response.model', Response::MODEL_MOCK)
->label('sdk.mock', true) ->label('sdk.mock', true)
->param('x', '', new Text(100), 'Sample string param') ->param('x', '', new Text(100), 'Sample string param')
->param('y', '', new Numeric(), 'Sample numeric param') ->param('y', '', new Numeric(), 'Sample numeric param')
@ -167,8 +198,11 @@ App::post('/v1/mock/tests/general/upload')
->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER])
->label('sdk.namespace', 'general') ->label('sdk.namespace', 'general')
->label('sdk.method', 'upload') ->label('sdk.method', 'upload')
->label('sdk.description', 'Mock a delete request for SDK tests') ->label('sdk.description', 'Mock a file upload request.')
->label('sdk.request.type', 'multipart/form-data') ->label('sdk.request.type', 'multipart/form-data')
->label('sdk.response.code', Response::STATUS_CODE_OK)
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
->label('sdk.response.model', Response::MODEL_MOCK)
->label('sdk.mock', true) ->label('sdk.mock', true)
->param('x', '', new Text(100), 'Sample string param') ->param('x', '', new Text(100), 'Sample string param')
->param('y', '', new Numeric(), 'Sample numeric param') ->param('y', '', new Numeric(), 'Sample numeric param')
@ -209,7 +243,9 @@ App::get('/v1/mock/tests/general/redirect')
->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER])
->label('sdk.namespace', 'general') ->label('sdk.namespace', 'general')
->label('sdk.method', 'redirect') ->label('sdk.method', 'redirect')
->label('sdk.description', 'Mock a redirect request for SDK tests') ->label('sdk.description', 'Mock a redirect request.')
->label('sdk.response.code', Response::STATUS_CODE_MOVED_PERMANENTLY)
->label('sdk.response.type', Response::CONTENT_TYPE_HTML)
->label('sdk.mock', true) ->label('sdk.mock', true)
->inject('response') ->inject('response')
->action(function ($response) { ->action(function ($response) {
@ -219,13 +255,16 @@ App::get('/v1/mock/tests/general/redirect')
}); });
App::get('/v1/mock/tests/general/redirect/done') App::get('/v1/mock/tests/general/redirect/done')
->desc('Redirect Target') ->desc('Redirected')
->groups(['mock']) ->groups(['mock'])
->label('scope', 'public') ->label('scope', 'public')
->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER])
->label('sdk.namespace', 'general') ->label('sdk.namespace', 'general')
->label('sdk.method', 'redirected') ->label('sdk.method', 'redirected')
->label('sdk.description', 'Mock a redirected request for SDK tests') ->label('sdk.description', 'Mock a redirected request.')
->label('sdk.response.code', Response::STATUS_CODE_OK)
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
->label('sdk.response.model', Response::MODEL_MOCK)
->label('sdk.mock', true) ->label('sdk.mock', true)
->action(function () { ->action(function () {
}); });
@ -238,6 +277,9 @@ App::get('/v1/mock/tests/general/set-cookie')
->label('sdk.namespace', 'general') ->label('sdk.namespace', 'general')
->label('sdk.method', 'setCookie') ->label('sdk.method', 'setCookie')
->label('sdk.description', 'Mock a set cookie request.') ->label('sdk.description', 'Mock a set cookie request.')
->label('sdk.response.code', Response::STATUS_CODE_OK)
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
->label('sdk.response.model', Response::MODEL_MOCK)
->label('sdk.mock', true) ->label('sdk.mock', true)
->inject('response') ->inject('response')
->action(function ($response) { ->action(function ($response) {
@ -254,6 +296,9 @@ App::get('/v1/mock/tests/general/get-cookie')
->label('sdk.namespace', 'general') ->label('sdk.namespace', 'general')
->label('sdk.method', 'getCookie') ->label('sdk.method', 'getCookie')
->label('sdk.description', 'Mock a cookie response.') ->label('sdk.description', 'Mock a cookie response.')
->label('sdk.response.code', Response::STATUS_CODE_OK)
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
->label('sdk.response.model', Response::MODEL_MOCK)
->label('sdk.mock', true) ->label('sdk.mock', true)
->inject('request') ->inject('request')
->action(function ($request) { ->action(function ($request) {
@ -271,7 +316,7 @@ App::get('/v1/mock/tests/general/empty')
->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER])
->label('sdk.namespace', 'general') ->label('sdk.namespace', 'general')
->label('sdk.method', 'empty') ->label('sdk.method', 'empty')
->label('sdk.description', 'Mock a an empty response body.') ->label('sdk.description', 'Mock a an empty response.')
->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT) ->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT)
->label('sdk.response.model', Response::MODEL_NONE) ->label('sdk.response.model', Response::MODEL_NONE)
->label('sdk.mock', true) ->label('sdk.mock', true)
@ -315,7 +360,7 @@ App::get('/v1/mock/tests/general/500-error')
}); });
App::get('/v1/mock/tests/general/oauth2') App::get('/v1/mock/tests/general/oauth2')
->desc('Mock an OAuth2 login route') ->desc('OAuth Login')
->groups(['mock']) ->groups(['mock'])
->label('scope', 'public') ->label('scope', 'public')
->label('docs', false) ->label('docs', false)
@ -332,7 +377,7 @@ App::get('/v1/mock/tests/general/oauth2')
}); });
App::get('/v1/mock/tests/general/oauth2/token') App::get('/v1/mock/tests/general/oauth2/token')
->desc('Mock an OAuth2 login route') ->desc('OAuth2 Token')
->groups(['mock']) ->groups(['mock'])
->label('scope', 'public') ->label('scope', 'public')
->label('docs', false) ->label('docs', false)
@ -361,7 +406,7 @@ App::get('/v1/mock/tests/general/oauth2/token')
}); });
App::get('/v1/mock/tests/general/oauth2/user') App::get('/v1/mock/tests/general/oauth2/user')
->desc('Mock an OAuth2 user route') ->desc('OAuth2 User')
->groups(['mock']) ->groups(['mock'])
->label('scope', 'public') ->label('scope', 'public')
->label('docs', false) ->label('docs', false)
@ -382,8 +427,9 @@ App::get('/v1/mock/tests/general/oauth2/user')
}); });
App::get('/v1/mock/tests/general/oauth2/success') App::get('/v1/mock/tests/general/oauth2/success')
->label('scope', 'public') ->desc('OAuth2 Success')
->groups(['mock']) ->groups(['mock'])
->label('scope', 'public')
->label('docs', false) ->label('docs', false)
->inject('response') ->inject('response')
->action(function ($response) { ->action(function ($response) {
@ -395,6 +441,7 @@ App::get('/v1/mock/tests/general/oauth2/success')
}); });
App::get('/v1/mock/tests/general/oauth2/failure') App::get('/v1/mock/tests/general/oauth2/failure')
->desc('OAuth2 Failure')
->groups(['mock']) ->groups(['mock'])
->label('scope', 'public') ->label('scope', 'public')
->label('docs', false) ->label('docs', false)
@ -431,5 +478,5 @@ App::shutdown(function($utopia, $response, $request) {
throw new Exception('Failed to save resutls', 500); throw new Exception('Failed to save resutls', 500);
} }
$response->json(['result' => $route->getMethod() . ':' . $route->getURL() . ':passed']); $response->dynamic(new Document(['result' => $route->getMethod() . ':' . $route->getURL() . ':passed']), Response::MODEL_MOCK);
}, ['utopia', 'response', 'request'], 'mock'); }, ['utopia', 'response', 'request'], 'mock');

View file

@ -39,6 +39,7 @@ use Appwrite\Utopia\Response\Model\Tag;
use Appwrite\Utopia\Response\Model\Task; use Appwrite\Utopia\Response\Model\Task;
use Appwrite\Utopia\Response\Model\Token; use Appwrite\Utopia\Response\Model\Token;
use Appwrite\Utopia\Response\Model\Webhook; use Appwrite\Utopia\Response\Model\Webhook;
use Appwrite\Utopia\Response\Model\Mock; // Keep last
use stdClass; use stdClass;
/** /**
@ -115,6 +116,9 @@ class Response extends SwooleResponse
const MODEL_PLATFORM_LIST = 'platformList'; const MODEL_PLATFORM_LIST = 'platformList';
const MODEL_DOMAIN = 'domain'; const MODEL_DOMAIN = 'domain';
const MODEL_DOMAIN_LIST = 'domainList'; const MODEL_DOMAIN_LIST = 'domainList';
// Tests (keep last)
const MODEL_MOCK = 'mock';
/** /**
* @var Filter * @var Filter
@ -191,6 +195,8 @@ class Response extends SwooleResponse
->setModel(new Phone()) ->setModel(new Phone())
// Verification // Verification
// Recovery // Recovery
// Tests (keep last)
->setModel(new Mock())
; ;
parent::__construct($response); parent::__construct($response);

View file

@ -0,0 +1,41 @@
<?php
namespace Appwrite\Utopia\Response\Model;
use Appwrite\Utopia\Response;
use Appwrite\Utopia\Response\Model;
class Mock extends Model
{
public function __construct()
{
$this
->addRule('result', [
'type' => self::TYPE_STRING,
'description' => 'Result message.',
'default' => '',
'example' => 'Success',
])
;
}
/**
* Get Name
*
* @return string
*/
public function getName():string
{
return 'Mock';
}
/**
* Get Collection
*
* @return string
*/
public function getType():string
{
return Response::MODEL_MOCK;
}
}