mirror of
https://github.com/barryvdh/laravel-ide-helper.git
synced 2026-08-18 10:07:12 +00:00
Support both customized namespace factories as well as default resolvable ones (#1201)
This commit is contained in:
@@ -6,7 +6,10 @@ namespace Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\Factories;
|
||||
|
||||
use Barryvdh\LaravelIdeHelper\Console\ModelsCommand;
|
||||
use Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\AbstractModelsCommand;
|
||||
use Closure;
|
||||
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||
use Illuminate\Foundation\Application;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class Test extends AbstractModelsCommand
|
||||
{
|
||||
@@ -18,6 +21,8 @@ class Test extends AbstractModelsCommand
|
||||
);
|
||||
}
|
||||
|
||||
Factory::guessFactoryNamesUsing(static::getFactoryNameResolver());
|
||||
|
||||
$command = $this->app->make(ModelsCommand::class);
|
||||
|
||||
$tester = $this->runCommand($command, [
|
||||
@@ -29,4 +34,19 @@ class Test extends AbstractModelsCommand
|
||||
$this->assertStringNotContainsString('not found', $tester->getDisplay());
|
||||
$this->assertMatchesMockedSnapshot();
|
||||
}
|
||||
|
||||
public static function getFactoryNameResolver(): Closure
|
||||
{
|
||||
// This mimics the default resolver, but with adjusted test namespaces.
|
||||
// Illuminate\Database\Eloquent\Factories\Factory::resolveFactoryName
|
||||
return function (string $modelName): string {
|
||||
$appNamespace = 'Barryvdh\\LaravelIdeHelper\\Tests\\Console\\ModelsCommand\\Factories\\';
|
||||
|
||||
$modelName = Str::startsWith($modelName, $appNamespace . 'Models\\')
|
||||
? Str::after($modelName, $appNamespace . 'Models\\')
|
||||
: Str::after($modelName, $appNamespace);
|
||||
|
||||
return $appNamespace . 'Factories\\' . $modelName . 'Factory';
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user