Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/Generators/AbstractTestsGenerator.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ abstract class AbstractTestsGenerator extends EntityGenerator
protected array $fakerProperties = [];
protected array $getFields = [];
protected bool $withAuth = false;
protected string $entity;

const array FIXTURE_TYPES = [
'create' => ['request', 'response'],
Expand Down Expand Up @@ -186,7 +187,6 @@ protected function getMockModel($model): array
protected function generateFixtures(): void
{
$object = $this->getFixtureValuesList($this->model);
$entity = Str::snake($this->model);

$this->createFixtureFolder();

Expand All @@ -195,7 +195,7 @@ protected function generateFixtures(): void
foreach ($modifications as $modification) {
$excepts = ($modification === 'request') ? ['id'] : [];

$this->generateFixture("{$type}_{$entity}_{$modification}.json", Arr::except($object, $excepts));
$this->generateFixture("{$type}_" . Str::snake($this->entity) . "_{$modification}.json", Arr::except($object, $excepts));
}
}
}
Expand Down
14 changes: 7 additions & 7 deletions src/Generators/NovaTestGenerator.php
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@ public function generate(): void

$this->novaResourceClassName = Arr::first($novaResources);

$this->entity = Str::afterLast($this->novaResourceClassName, '\\');

parent::generate();
} else {
event(new SuccessCreateMessage("Nova is not installed and NovaTest is skipped"));
Expand All @@ -66,14 +68,12 @@ public function generateTests(): void
$actions = $this->getActions();
$filters = $this->collectFilters();

$resourceClass = Str::afterLast($this->novaResourceClassName, '\\');

$fileContent = $this->getStub('nova_test', [
'entity_namespace' => $this->getNamespace('models', $this->modelSubFolder),
'entity' => $this->model,
'resource_name' => $resourceClass,
'resource_name' => $this->entity,
'resource_namespace' => $this->novaResourceClassName,
'snake_resource' => Str::snake($resourceClass),
'snake_resource' => Str::snake($this->entity),
'dromedary_entity' => Str::lcfirst($this->model),
'lower_entities' => $this->getPluralName(Str::snake($this->model)),
'actions' => $actions,
Expand Down Expand Up @@ -161,7 +161,7 @@ protected function loadNovaFilters()

public function getTestClassName(): string
{
return "Nova{$this->model}Test";
return "Nova{$this->entity}Test";
}

protected function isFixtureNeeded($type): bool
Expand Down Expand Up @@ -219,8 +219,8 @@ protected function getFilters(): array

protected function getDumpName(): string
{
$modelName = Str::snake($this->model);
$entityName = Str::snake($this->entity);

return "nova_{$modelName}_dump.sql";
return "nova_{$entityName}_dump.sql";
}
}
7 changes: 7 additions & 0 deletions src/Generators/TestsGenerator.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,13 @@

class TestsGenerator extends AbstractTestsGenerator
{
public function generate(): void
{
$this->entity = $this->model;

parent::generate();
}

public function getTestClassName(): string
{
return "{$this->model}Test";
Expand Down
16 changes: 8 additions & 8 deletions tests/CommandTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -91,10 +91,10 @@ public function testCallCommand()
$this->assertGeneratedFileEquals('validation.php', 'lang/en/validation.php');
$this->assertGeneratedFileEquals('nova_resource.php', 'app/Nova/PostResource.php');
$this->assertGeneratedFileEquals('nova_test.php', 'tests/NovaPostResourceTest.php');
$this->assertGeneratedFileEquals('nova_dump.php', 'tests/fixtures/NovaPostTest/nova_post_dump.sql');
$this->assertGeneratedFileEquals('create_request.json', 'tests/fixtures/NovaPostTest/create_post_request.json');
$this->assertGeneratedFileEquals('create_response.json', 'tests/fixtures/NovaPostTest/create_post_response.json');
$this->assertGeneratedFileEquals('update_request.json', 'tests/fixtures/NovaPostTest/update_post_request.json');
$this->assertGeneratedFileEquals('nova_dump.php', 'tests/fixtures/NovaPostResourceTest/nova_post_resource_dump.sql');
$this->assertGeneratedFileEquals('create_request.json', 'tests/fixtures/NovaPostResourceTest/create_post_resource_request.json');
$this->assertGeneratedFileEquals('create_response.json', 'tests/fixtures/NovaPostResourceTest/create_post_resource_response.json');
$this->assertGeneratedFileEquals('update_request.json', 'tests/fixtures/NovaPostResourceTest/update_post_resource_request.json');
}

public function testCallCommandSubFoldersModel()
Expand Down Expand Up @@ -137,10 +137,10 @@ public function testCallCommandSubFoldersModel()
$this->assertGeneratedFileEquals('create_response.json', 'tests/fixtures/PostTest/create_post_response.json');
$this->assertGeneratedFileEquals('update_request.json', 'tests/fixtures/PostTest/update_post_request.json');
$this->assertGeneratedFileEquals('validation.php', 'lang/en/validation.php');
$this->assertGeneratedFileEquals('nova_dump.php', 'tests/fixtures/NovaPostTest/nova_post_dump.sql');
$this->assertGeneratedFileEquals('create_request.json', 'tests/fixtures/NovaPostTest/create_post_request.json');
$this->assertGeneratedFileEquals('create_response.json', 'tests/fixtures/NovaPostTest/create_post_response.json');
$this->assertGeneratedFileEquals('update_request.json', 'tests/fixtures/NovaPostTest/update_post_request.json');
$this->assertGeneratedFileEquals('nova_dump.php', 'tests/fixtures/NovaPostResourceTest/nova_post_resource_dump.sql');
$this->assertGeneratedFileEquals('create_request.json', 'tests/fixtures/NovaPostResourceTest/create_post_resource_request.json');
$this->assertGeneratedFileEquals('create_response.json', 'tests/fixtures/NovaPostResourceTest/create_post_resource_response.json');
$this->assertGeneratedFileEquals('update_request.json', 'tests/fixtures/NovaPostResourceTest/update_post_resource_request.json');
}

public function testMakeOnly()
Expand Down
24 changes: 12 additions & 12 deletions tests/NovaTestGeneratorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -107,10 +107,10 @@ public function testNovaTestStubNotExist()
->generate();

$this->assertFileDoesNotExist('tests/NovaWelcomeBonusTest.php');
$this->assertGeneratedFileEquals('dump.sql', 'tests/fixtures/NovaWelcomeBonusTest/nova_welcome_bonus_dump.sql');
$this->assertGeneratedFileEquals('create_welcome_bonus_request.json', 'tests/fixtures/NovaWelcomeBonusTest/create_welcome_bonus_request.json');
$this->assertGeneratedFileEquals('create_welcome_bonus_response.json', 'tests/fixtures/NovaWelcomeBonusTest/create_welcome_bonus_response.json');
$this->assertGeneratedFileEquals('update_welcome_bonus_request.json', 'tests/fixtures/NovaWelcomeBonusTest/update_welcome_bonus_request.json');
$this->assertGeneratedFileEquals('dump.sql', 'tests/fixtures/NovaWelcomeBonusResourceTest/nova_welcome_bonus_resource_dump.sql');
$this->assertGeneratedFileEquals('create_welcome_bonus_request.json', 'tests/fixtures/NovaWelcomeBonusResourceTest/create_welcome_bonus_resource_request.json');
$this->assertGeneratedFileEquals('create_welcome_bonus_response.json', 'tests/fixtures/NovaWelcomeBonusResourceTest/create_welcome_bonus_resource_response.json');
$this->assertGeneratedFileEquals('update_welcome_bonus_request.json', 'tests/fixtures/NovaWelcomeBonusResourceTest/update_welcome_bonus_resource_request.json');

$this->assertEventPushed(
className: WarningEvent::class,
Expand Down Expand Up @@ -140,10 +140,10 @@ public function testDumpStubNotExist()
->generate();

$this->assertGeneratedFileEquals('created_resource_test.php', 'tests/NovaWelcomeBonusResourceTest.php');
$this->assertFileDoesNotExist('tests/fixtures/NovaWelcomeBonusTest/nova_welcome_bonus_dump.sql');
$this->assertGeneratedFileEquals('create_welcome_bonus_request.json', 'tests/fixtures/NovaWelcomeBonusTest/create_welcome_bonus_request.json');
$this->assertGeneratedFileEquals('create_welcome_bonus_response.json', 'tests/fixtures/NovaWelcomeBonusTest/create_welcome_bonus_response.json');
$this->assertGeneratedFileEquals('update_welcome_bonus_request.json', 'tests/fixtures/NovaWelcomeBonusTest/update_welcome_bonus_request.json');
$this->assertFileDoesNotExist('tests/fixtures/NovaWelcomeBonusResourceTest/nova_welcome_bonus_resource_dump.sql');
$this->assertGeneratedFileEquals('create_welcome_bonus_request.json', 'tests/fixtures/NovaWelcomeBonusResourceTest/create_welcome_bonus_resource_request.json');
$this->assertGeneratedFileEquals('create_welcome_bonus_response.json', 'tests/fixtures/NovaWelcomeBonusResourceTest/create_welcome_bonus_resource_response.json');
$this->assertGeneratedFileEquals('update_welcome_bonus_request.json', 'tests/fixtures/NovaWelcomeBonusResourceTest/update_welcome_bonus_resource_request.json');

$this->assertEventPushed(
className: WarningEvent::class,
Expand Down Expand Up @@ -177,10 +177,10 @@ public function testSuccess()
->generate();

$this->assertGeneratedFileEquals('created_resource_test.php', 'tests/NovaWelcomeBonusResourceTest.php');
$this->assertGeneratedFileEquals('dump.sql', 'tests/fixtures/NovaWelcomeBonusTest/nova_welcome_bonus_dump.sql');
$this->assertGeneratedFileEquals('create_welcome_bonus_request.json', 'tests/fixtures/NovaWelcomeBonusTest/create_welcome_bonus_request.json');
$this->assertGeneratedFileEquals('create_welcome_bonus_response.json', 'tests/fixtures/NovaWelcomeBonusTest/create_welcome_bonus_response.json');
$this->assertGeneratedFileEquals('update_welcome_bonus_request.json', 'tests/fixtures/NovaWelcomeBonusTest/update_welcome_bonus_request.json');
$this->assertGeneratedFileEquals('dump.sql', 'tests/fixtures/NovaWelcomeBonusResourceTest/nova_welcome_bonus_resource_dump.sql');
$this->assertGeneratedFileEquals('create_welcome_bonus_request.json', 'tests/fixtures/NovaWelcomeBonusResourceTest/create_welcome_bonus_resource_request.json');
$this->assertGeneratedFileEquals('create_welcome_bonus_response.json', 'tests/fixtures/NovaWelcomeBonusResourceTest/create_welcome_bonus_resource_response.json');
$this->assertGeneratedFileEquals('update_welcome_bonus_request.json', 'tests/fixtures/NovaWelcomeBonusResourceTest/update_welcome_bonus_resource_request.json');
}

public function testGenerateNovaPackageNotInstall()
Expand Down