瀏覽代碼

Fix domain name for the generated links

Radoslav Vitanov 6 年之前
父節點
當前提交
d915818248
共有 2 個文件被更改,包括 18 次插入0 次删除
  1. 2 0
      src/Commands/GenerateDocumentation.php
  2. 16 0
      tests/GenerateDocumentationTest.php

+ 2 - 0
src/Commands/GenerateDocumentation.php

@@ -8,6 +8,7 @@ use Illuminate\Routing\Route;
 use Illuminate\Console\Command;
 use Mpociot\Reflection\DocBlock;
 use Illuminate\Support\Collection;
+use Illuminate\Support\Facades\URL;
 use Mpociot\ApiDoc\Tools\Generator;
 use Mpociot\ApiDoc\Tools\RouteMatcher;
 use Mpociot\Documentarian\Documentarian;
@@ -46,6 +47,7 @@ class GenerateDocumentation extends Command
      */
     public function handle()
     {
+        URL::forceRootUrl(config('app.url'));
         $usingDingoRouter = strtolower(config('apidoc.router')) == 'dingo';
         if ($usingDingoRouter) {
             $routes = $this->routeMatcher->getDingoRoutesToBeDocumented(config('apidoc.routes'));

+ 16 - 0
tests/GenerateDocumentationTest.php

@@ -3,6 +3,7 @@
 namespace Mpociot\ApiDoc\Tests;
 
 use ReflectionException;
+use Illuminate\Support\Str;
 use RecursiveIteratorIterator;
 use RecursiveDirectoryIterator;
 use Orchestra\Testbench\TestCase;
@@ -230,6 +231,21 @@ class GenerateDocumentationTest extends TestCase
         $this->assertEquals($generatedCollection, $fixtureCollection);
     }
 
+    /** @test */
+    public function generated_postman_collection_domain_is_correct()
+    {
+        $domain = 'http://somedomain.test';
+        RouteFacade::get('/api/test', TestController::class.'@withEndpointDescription');
+
+        config(['app.url' => $domain]);
+        config(['apidoc.routes.0.match.prefixes' => ['api/*']]);
+        $this->artisan('apidoc:generate');
+
+        $generatedCollection = json_decode(file_get_contents(__DIR__.'/../public/docs/collection.json'));
+        $endpointUrl = $generatedCollection->item[0]->item[0]->request->url;
+        $this->assertTrue(Str::startsWith($endpointUrl, $domain));
+    }
+
     /** @test */
     public function generated_postman_collection_can_have_custom_url()
     {