Skip to content

Commit b8c5d29

Browse files
author
Kapitanov Andrey
committed
#104744
2 parents c15463a + 80b45a4 commit b8c5d29

File tree

2 files changed

+76
-0
lines changed

2 files changed

+76
-0
lines changed

tests/GenerateServerTest.php

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,10 @@
6060
$this->makeFilePath('/app/Http/Resources/ResourcesDataDataResource.php'),
6161
$this->makeFilePath('/app/Http/Resources/ResourceRootResource.php'),
6262

63+
$this->makeFilePath('/app/Http/Controllers/Controller11.php'),
64+
$this->makeFilePath('/app/Http/Controllers/Controller2.php'),
65+
$this->makeFilePath('/app/Http/Controllers/FooItemsController.php'),
66+
$this->makeFilePath('/app/Http/Controllers/FoosController.php'),
6367
$this->makeFilePath('/app/Http/Controllers/PoliciesController.php'),
6468
$this->makeFilePath('/app/Http/Tests/PoliciesComponentTest.php'),
6569
$this->makeFilePath('/app/Http/Policies/PoliciesControllerPolicy.php'),
@@ -121,3 +125,39 @@
121125
'WithoutResponsesController function parameter'
122126
);
123127
});
128+
129+
130+
test('namespace sorting', function () {
131+
/** @var TestCase $this */
132+
$mapping = Config::get('openapi-server-generator.api_docs_mappings');
133+
$mappingValue = current($mapping);
134+
$mapping = [$this->makeFilePath(__DIR__ . '/resources/index.yaml') => $mappingValue];
135+
Config::set('openapi-server-generator.api_docs_mappings', $mapping);
136+
137+
$filesystem = $this->mock(Filesystem::class);
138+
$filesystem->shouldReceive('exists')->andReturn(false);
139+
$filesystem->shouldReceive('get')->withArgs(function ($path) {
140+
return (bool)strstr($path, '.template');
141+
})->andReturnUsing(function ($path) {
142+
return file_get_contents($path);
143+
});
144+
$filesystem->shouldReceive('cleanDirectory', 'ensureDirectoryExists');
145+
$routes = '';
146+
$filesystem->shouldReceive('put')->withArgs(function ($path, $content) use (&$routes, &$rr) {
147+
if (str_contains($path, 'routes.php')) {
148+
$routes = $content;
149+
}
150+
151+
return true;
152+
});
153+
154+
artisan(GenerateServer::class, ['-e' => 'routes']);
155+
156+
assertStringContainsString(
157+
"use App\Http\Controllers\Controller11;\n".
158+
"use App\Http\Controllers\Controller2;\n".
159+
"use App\Http\Controllers\FooItemsController;\n".
160+
"use App\Http\Controllers\FoosController;\n",
161+
$routes
162+
);
163+
});

tests/resources/index.yaml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,42 @@ paths:
171171
responses:
172172
"200":
173173
description: Успешный ответ c контекстом
174+
/namespace-sort-1:
175+
post:
176+
operationId: namespaceSort1
177+
x-lg-handler: '\App\Http\Controllers\FooItemsController@test'
178+
x-lg-skip-request-generation: true
179+
x-lg-skip-tests-generation: true
180+
responses:
181+
"200":
182+
description: Успешный ответ
183+
/namespace-sort-2:
184+
post:
185+
operationId: namespaceSort2
186+
x-lg-handler: '\App\Http\Controllers\FoosController@test'
187+
x-lg-skip-request-generation: true
188+
x-lg-skip-tests-generation: true
189+
responses:
190+
"200":
191+
description: Успешный ответ
192+
/namespace-sort-3:
193+
post:
194+
operationId: namespaceSort3
195+
x-lg-handler: '\App\Http\Controllers\Controller11@test'
196+
x-lg-skip-request-generation: true
197+
x-lg-skip-tests-generation: true
198+
responses:
199+
"200":
200+
description: Успешный ответ
201+
/namespace-sort-4:
202+
post:
203+
operationId: namespaceSort4
204+
x-lg-handler: '\App\Http\Controllers\Controller2@test'
205+
x-lg-skip-request-generation: true
206+
x-lg-skip-tests-generation: true
207+
responses:
208+
"200":
209+
description: Успешный ответ
174210
components:
175211
responses:
176212
ServerError:

0 commit comments

Comments
 (0)