BaseLaravelTest.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <?php
  2. namespace Knuckles\Scribe\Tests;
  3. use DMS\PHPUnitExtensions\ArraySubset\ArraySubsetAsserts;
  4. use Knuckles\Scribe\Config\AuthIn;
  5. use Knuckles\Scribe\ScribeServiceProvider;
  6. use Orchestra\Testbench\TestCase;
  7. use function Knuckles\Scribe\Config\configureStrategy;
  8. use Knuckles\Scribe\Config;
  9. use Knuckles\Scribe\Extracting\Strategies;
  10. class BaseLaravelTest extends TestCase
  11. {
  12. use TestHelpers;
  13. use ArraySubsetAsserts;
  14. protected function getEnvironmentSetUp($app)
  15. {
  16. $app['config']->set('database.default', 'test');
  17. $app['config']->set('database.connections.test', [
  18. 'driver' => 'sqlite',
  19. 'database' => ':memory:',
  20. 'prefix' => '',
  21. ]);
  22. $app['config']->set('database.default', 'sqlite');
  23. $app['config']->set('database.connections.sqlite', [
  24. 'driver' => 'sqlite',
  25. 'database' => ':memory:',
  26. 'prefix' => '',
  27. ]);
  28. ScribeServiceProvider::$customTranslationLayerLoaded = false;
  29. }
  30. /**
  31. * @param \Illuminate\Foundation\Application $app
  32. *
  33. * @return array
  34. */
  35. protected function getPackageProviders($app)
  36. {
  37. $providers = [
  38. ScribeServiceProvider::class,
  39. ];
  40. return $providers;
  41. }
  42. protected function setUp(): void
  43. {
  44. parent::setUp();
  45. $this->setConfig([
  46. 'title' => config('app.name').' API Documentation',
  47. 'type' => 'laravel',
  48. 'theme' => 'default',
  49. 'laravel.docs_url' => '/apidocs',
  50. 'base_url' => config("app.base_url"),
  51. // Skip these for faster tests
  52. 'postman.enabled' => false,
  53. 'openApi.enabled' => false,
  54. 'routes' => [
  55. [
  56. 'match' => [
  57. 'prefixes' => ['*'],
  58. 'domains' => ['*'],
  59. ],
  60. ],
  61. ],
  62. 'groups.default' => 'Endpoints',
  63. 'auth' => [
  64. 'enabled' => false,
  65. 'default' => false,
  66. 'in' => AuthIn::BEARER->value,
  67. 'name' => 'key',
  68. 'use_value' => env('SCRIBE_AUTH_KEY'),
  69. 'placeholder' => '{YOUR_AUTH_KEY}',
  70. ],
  71. 'strategies' => [
  72. 'metadata' => Config\Defaults::METADATA_STRATEGIES,
  73. 'urlParameters' => Config\Defaults::URL_PARAMETERS_STRATEGIES,
  74. 'queryParameters' => Config\Defaults::QUERY_PARAMETERS_STRATEGIES,
  75. 'headers' => Config\Defaults::HEADERS_STRATEGIES,
  76. 'bodyParameters' => Config\Defaults::BODY_PARAMETERS_STRATEGIES,
  77. 'responses' => configureStrategy(
  78. Config\Defaults::RESPONSES_STRATEGIES,
  79. Strategies\Responses\ResponseCalls::withSettings(
  80. only: [],
  81. except: ['*'], // Disabled to speed up tests
  82. config: [
  83. 'app.env' => 'documentation',
  84. ],
  85. )
  86. ),
  87. 'responseFields' => Config\Defaults::RESPONSE_FIELDS_STRATEGIES,
  88. ],
  89. 'examples.faker_seed' => 1234,
  90. 'database_connections_to_transact' => [],
  91. ]);
  92. }
  93. protected function setConfig($configValues): void
  94. {
  95. foreach ($configValues as $key => $value) {
  96. config(["scribe.$key" => $value]);
  97. }
  98. }
  99. }