Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>
  • Loading branch information
crynobone committed Sep 14, 2023
1 parent 3dea269 commit b25ca65
Show file tree
Hide file tree
Showing 2 changed files with 88 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/Presets/Preset.php
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ public function factoryNamespace(): string
*/
public function seederNamespace(): string
{
return $this->config('seeder.path', 'Database\Seeders');
return $this->config('seeder.namespace', 'Database\Seeders');
}

/**
Expand Down
87 changes: 87 additions & 0 deletions tests/Feature/GeneratorPresetTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
<?php

namespace Orchestra\Canvas\Tests;

use BadMethodCallException;
use Illuminate\Console\Generators\PresetManager;
use Illuminate\Console\Generators\Presets\Preset;
use Orchestra\Canvas\Presets\Package;
use Orchestra\Testbench\Concerns\WithWorkbench;
use Orchestra\Testbench\TestCase;

class GeneratorPresetTest extends TestCase
{
use WithWorkbench;

/** @test */
public function it_can_be_resolved_and_has_correct_signature_as_laravel_preset()
{
$workingPath = \dirname(__DIR__, 2).'/vendor/orchestra/testbench-core/laravel';

$preset = $this->app[PresetManager::class]->driver('canvas');

$this->assertInstanceOf(Preset::class, $preset);
$this->assertSame('canvas', $preset->name());

$this->assertSame("{$workingPath}", $preset->basePath());
$this->assertSame("{$workingPath}/app", $preset->sourcePath());
$this->assertSame("{$workingPath}/resources", $preset->resourcePath());
$this->assertSame("{$workingPath}/resources/views", $preset->viewPath());
$this->assertSame("{$workingPath}/database/factories", $preset->factoryPath());
$this->assertSame("{$workingPath}/database/migrations", $preset->migrationPath());
$this->assertSame("{$workingPath}/database/seeders", $preset->seederPath());

$this->assertSame('App\\', $preset->rootNamespace());
$this->assertSame('App\Console\Commands\\', $preset->commandNamespace());
$this->assertSame('App\Models\\', $preset->modelNamespace());
$this->assertSame('App\Providers\\', $preset->providerNamespace());
$this->assertSame('Database\Factories\\', $preset->factoryNamespace());
$this->assertSame('Database\Seeders\\', $preset->seederNamespace());

$this->assertTrue($preset->hasCustomStubPath());
$this->assertSame('Illuminate\Foundation\Auth\User', $preset->userProviderModel());
}


/** @test */
public function it_can_be_resolved_and_has_correct_signature_as_package_preset()
{
$workingPath = \dirname(__DIR__, 2);

$this->instance('orchestra.canvas', $this->resolveCanvasPreset($workingPath));

$preset = $this->app[PresetManager::class]->driver('canvas');

$this->assertInstanceOf(Preset::class, $preset);
$this->assertSame('canvas', $preset->name());

$this->assertSame("{$workingPath}", $preset->basePath());
$this->assertSame("{$workingPath}/src", $preset->sourcePath());
$this->assertSame("{$workingPath}/resources", $preset->resourcePath());
$this->assertSame("{$workingPath}/resources/views", $preset->viewPath());
$this->assertSame("{$workingPath}/database/factories", $preset->factoryPath());
$this->assertSame("{$workingPath}/database/migrations", $preset->migrationPath());
$this->assertSame("{$workingPath}/database/seeders", $preset->seederPath());

$this->assertSame('Acme\\', $preset->rootNamespace());
$this->assertSame('Acme\Console\\', $preset->commandNamespace());
$this->assertSame('Acme\\', $preset->modelNamespace());
$this->assertSame('Acme\\', $preset->providerNamespace());
$this->assertSame('Database\Factories\\', $preset->factoryNamespace());
$this->assertSame('Database\Seeders\\', $preset->seederNamespace());

$this->assertFalse($preset->hasCustomStubPath());
$this->assertSame('Illuminate\Foundation\Auth\User', $preset->userProviderModel());
}

protected function resolveCanvasPreset($workingPath): Package
{
return new Package(
basePath: $workingPath,
config: [
'namespace' => 'Acme',
'path' => ['src' => 'src/'],
],
);
}
}

0 comments on commit b25ca65

Please sign in to comment.