mirror of
https://github.com/ambieco/scribe.git
synced 2026-04-27 09:38:28 +08:00
Fixed Dingo part of issue #30
This commit is contained in:
@@ -280,8 +280,12 @@ class GenerateDocumentation extends Command
|
||||
$parsedRoutes = [];
|
||||
foreach ($routes as $route) {
|
||||
if (empty($allowedRoutes) || in_array($route->getName(), $allowedRoutes) || str_is($routePrefix, $route->uri()) || in_array($middleware, $route->middleware())) {
|
||||
$parsedRoutes[] = $generator->processRoute($route, $bindings, $this->option('header'), $withResponse);
|
||||
$this->info('Processed route: ['.implode(',', $route->getMethods()).'] '.$route->uri());
|
||||
if ($this->isValidRoute($route) && $this->isRouteVisibleForDocumentation($route->getAction()['uses'])) {
|
||||
$parsedRoutes[] = $generator->processRoute($route, $bindings, $this->option('header'), $withResponse);
|
||||
$this->info('Processed route: [' . implode(',', $route->getMethods()) . '] ' . $route->uri());
|
||||
} else {
|
||||
$this->warn('Skipping route: ['.implode(',', $route->getMethods()).'] '.$route->uri());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,10 +2,12 @@
|
||||
|
||||
namespace Mpociot\ApiDoc\Tests;
|
||||
|
||||
use Dingo\Api\Provider\LaravelServiceProvider;
|
||||
use Illuminate\Contracts\Console\Kernel;
|
||||
use Illuminate\Routing\Route;
|
||||
use Mpociot\ApiDoc\ApiDocGeneratorServiceProvider;
|
||||
use Mpociot\ApiDoc\Generators\LaravelGenerator;
|
||||
use Mpociot\ApiDoc\Tests\Fixtures\DingoTestController;
|
||||
use Orchestra\Testbench\TestCase;
|
||||
use Mpociot\ApiDoc\Tests\Fixtures\TestController;
|
||||
use Illuminate\Support\Facades\Route as RouteFacade;
|
||||
@@ -39,7 +41,10 @@ class GenerateDocumentationTest extends TestCase
|
||||
*/
|
||||
protected function getPackageProviders($app)
|
||||
{
|
||||
return [ApiDocGeneratorServiceProvider::class];
|
||||
return [
|
||||
LaravelServiceProvider::class,
|
||||
ApiDocGeneratorServiceProvider::class
|
||||
];
|
||||
}
|
||||
|
||||
public function testConsoleCommandNeedsAPrefixOrRoute()
|
||||
@@ -62,6 +67,24 @@ class GenerateDocumentationTest extends TestCase
|
||||
$this->assertContains('Processed route: [GET,HEAD] api/test', $output);
|
||||
}
|
||||
|
||||
public function testConsoleCommandDoesNotWorkWithClosureUsingDingo()
|
||||
{
|
||||
$api = app('Dingo\Api\Routing\Router');
|
||||
$api->version('v1', function ($api) {
|
||||
$api->get('/closure', function () {
|
||||
return 'foo';
|
||||
});
|
||||
$api->get('/test', DingoTestController::class.'@parseMethodDescription');
|
||||
|
||||
$output = $this->artisan('api:generate', [
|
||||
'--router' => 'dingo',
|
||||
'--routePrefix' => 'v1',
|
||||
]);
|
||||
$this->assertContains('Skipping route: [GET,HEAD] closure', $output);
|
||||
$this->assertContains('Processed route: [GET,HEAD] test', $output);
|
||||
});
|
||||
}
|
||||
|
||||
public function testCanSkipSingleRoutesCommandDoesNotWorkWithClosure()
|
||||
{
|
||||
RouteFacade::get('/api/skip', TestController::class.'@skip');
|
||||
|
||||
Reference in New Issue
Block a user