1
0
Fork 0
mirror of synced 2024-05-20 04:32:37 +12:00

Added option to generate mock API spec

This commit is contained in:
Eldad Fux 2020-12-23 08:09:16 +02:00
parent 4166a497da
commit 40107c4d06
2 changed files with 24 additions and 2 deletions

View file

@ -14,6 +14,7 @@ App::get('/v1/mock/tests/foo')
->desc('Mock a get request for SDK tests')
->groups(['mock'])
->label('scope', 'public')
->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER])
->label('sdk.namespace', 'foo')
->label('sdk.method', 'get')
->label('sdk.description', 'Mock a get request for SDK tests')
@ -28,6 +29,7 @@ App::post('/v1/mock/tests/foo')
->desc('Mock a post request for SDK tests')
->groups(['mock'])
->label('scope', 'public')
->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER])
->label('sdk.namespace', 'foo')
->label('sdk.method', 'post')
->label('sdk.description', 'Mock a post request for SDK tests')
@ -42,6 +44,7 @@ App::patch('/v1/mock/tests/foo')
->desc('Mock a patch request for SDK tests')
->groups(['mock'])
->label('scope', 'public')
->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER])
->label('sdk.namespace', 'foo')
->label('sdk.method', 'patch')
->label('sdk.description', 'Mock a get request for SDK tests')
@ -56,6 +59,7 @@ App::put('/v1/mock/tests/foo')
->desc('Mock a put request for SDK tests')
->groups(['mock'])
->label('scope', 'public')
->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER])
->label('sdk.namespace', 'foo')
->label('sdk.method', 'put')
->label('sdk.description', 'Mock a put request for SDK tests')
@ -70,6 +74,7 @@ App::delete('/v1/mock/tests/foo')
->desc('Mock a delete request for SDK tests')
->groups(['mock'])
->label('scope', 'public')
->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER])
->label('sdk.namespace', 'foo')
->label('sdk.method', 'delete')
->label('sdk.description', 'Mock a delete request for SDK tests')
@ -84,6 +89,7 @@ App::get('/v1/mock/tests/bar')
->desc('Mock a get request for SDK tests')
->groups(['mock'])
->label('scope', 'public')
->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER])
->label('sdk.namespace', 'bar')
->label('sdk.method', 'get')
->label('sdk.description', 'Mock a get request for SDK tests')
@ -98,6 +104,7 @@ App::post('/v1/mock/tests/bar')
->desc('Mock a post request for SDK tests')
->groups(['mock'])
->label('scope', 'public')
->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER])
->label('sdk.namespace', 'bar')
->label('sdk.method', 'post')
->label('sdk.description', 'Mock a post request for SDK tests')
@ -112,6 +119,7 @@ App::patch('/v1/mock/tests/bar')
->desc('Mock a patch request for SDK tests')
->groups(['mock'])
->label('scope', 'public')
->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER])
->label('sdk.namespace', 'bar')
->label('sdk.method', 'patch')
->label('sdk.description', 'Mock a get request for SDK tests')
@ -126,6 +134,7 @@ App::put('/v1/mock/tests/bar')
->desc('Mock a put request for SDK tests')
->groups(['mock'])
->label('scope', 'public')
->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER])
->label('sdk.namespace', 'bar')
->label('sdk.method', 'put')
->label('sdk.description', 'Mock a put request for SDK tests')
@ -140,6 +149,7 @@ App::delete('/v1/mock/tests/bar')
->desc('Mock a delete request for SDK tests')
->groups(['mock'])
->label('scope', 'public')
->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER])
->label('sdk.namespace', 'bar')
->label('sdk.method', 'delete')
->label('sdk.description', 'Mock a delete request for SDK tests')
@ -154,6 +164,7 @@ App::post('/v1/mock/tests/general/upload')
->desc('Mock a post request for SDK tests')
->groups(['mock'])
->label('scope', 'public')
->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER])
->label('sdk.namespace', 'general')
->label('sdk.method', 'upload')
->label('sdk.description', 'Mock a delete request for SDK tests')
@ -194,6 +205,7 @@ App::get('/v1/mock/tests/general/redirect')
->desc('Mock a post request for SDK tests')
->groups(['mock'])
->label('scope', 'public')
->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER])
->label('sdk.namespace', 'general')
->label('sdk.method', 'redirect')
->label('sdk.description', 'Mock a redirect request for SDK tests')
@ -208,6 +220,7 @@ App::get('/v1/mock/tests/general/redirect/done')
->desc('Mock a post request for SDK tests')
->groups(['mock'])
->label('scope', 'public')
->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER])
->label('sdk.namespace', 'general')
->label('sdk.method', 'redirected')
->label('sdk.description', 'Mock a redirected request for SDK tests')
@ -219,6 +232,7 @@ App::get('/v1/mock/tests/general/set-cookie')
->desc('Mock a cookie request for SDK tests')
->groups(['mock'])
->label('scope', 'public')
->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER])
->label('sdk.namespace', 'general')
->label('sdk.method', 'setCookie')
->label('sdk.description', 'Mock a set cookie request for SDK tests')
@ -233,6 +247,7 @@ App::get('/v1/mock/tests/general/get-cookie')
->desc('Mock a cookie request for SDK tests')
->groups(['mock'])
->label('scope', 'public')
->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER])
->label('sdk.namespace', 'general')
->label('sdk.method', 'getCookie')
->label('sdk.description', 'Mock a get cookie request for SDK tests')
@ -249,6 +264,7 @@ App::get('/v1/mock/tests/general/empty')
->desc('Mock a post request for SDK tests')
->groups(['mock'])
->label('scope', 'public')
->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER])
->label('sdk.namespace', 'general')
->label('sdk.method', 'empty')
->label('sdk.description', 'Mock a redirected request for SDK tests')

View file

@ -7,6 +7,7 @@ use Utopia\App;
use Utopia\View;
use Utopia\Config\Config;
use Utopia\Exception;
use Utopia\Validator\Range;
use Utopia\Validator\WhiteList;
App::init(function ($layout) {
@ -188,7 +189,8 @@ App::get('/specs/:format')
->label('docs', false)
->param('format', 'swagger2', new WhiteList(['swagger2', 'open-api3'], true), 'Spec format.', true)
->param('platform', APP_PLATFORM_CLIENT, new WhiteList([APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER, APP_PLATFORM_CONSOLE], true), 'Choose target platform.', true)
->action(function ($format, $platform, $utopia, $request, $response) {
->param('tests', 0, function () {return new Range(0, 1);}, 'Include only test services.', true)
->action(function ($format, $platform, $tests, $utopia, $request, $response) {
/** @var Utopia\App $utopia */
/** @var Utopia\Swoole\Request $request */
/** @var Appwrite\Utopia\Response $response */
@ -277,7 +279,11 @@ App::get('/specs/:format')
continue;
}
if ($route->getLabel('sdk.mock', false)) {
if ($route->getLabel('sdk.mock', false) && !$tests) {
continue;
}
if (!$route->getLabel('sdk.mock', false) && $tests) {
continue;
}