Skip to content

Commit

Permalink
Add return value to execute method (#333)
Browse files Browse the repository at this point in the history
* Add command for test

* Write test to verify issue

* Make test pass
  • Loading branch information
devonmather authored Mar 21, 2020
1 parent 30bab68 commit cf339a5
Show file tree
Hide file tree
Showing 4 changed files with 76 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/Traits/TenantAwareCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ protected function execute(InputInterface $input, OutputInterface $output)
$this->laravel->call([$this, 'handle']);
});
}

return 1;
}

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

declare(strict_types=1);

namespace Stancl\Tenancy\Tests\Etc;

use Illuminate\Console\Command;
use Illuminate\Support\Str;
use Stancl\Tenancy\Traits\HasATenantsOption;
use Stancl\Tenancy\Traits\TenantAwareCommand;

class AddUserCommand extends Command
{
use TenantAwareCommand, HasATenantsOption;

/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'user:add';

/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
User::create([
'name' => Str::random(10),
'email' => Str::random(10) . '@gmail.com',
'email_verified_at' => now(),
'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
'remember_token' => Str::random(10),
]);
}
}
1 change: 1 addition & 0 deletions tests/Etc/ConsoleKernel.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,6 @@ class ConsoleKernel extends Kernel
*/
protected $commands = [
ExampleCommand::class,
AddUserCommand::class,
];
}
35 changes: 35 additions & 0 deletions tests/Traits/TenantAwareCommandTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<?php

declare(strict_types=1);

namespace Stancl\Tenancy\Tests\Traits;

use Stancl\Tenancy\Tenant;
use Stancl\Tenancy\Tests\TestCase;

class TenantAwareCommandTest extends TestCase
{
public $autoCreateTenant = false;
public $autoInitTenancy = false;

/** @test */
public function commands_run_globally_are_tenant_aware_and_return_valid_exit_code()
{
$tenant1 = Tenant::new()->save();
$tenant2 = Tenant::new()->save();
\Artisan::call('tenants:migrate', [
'--tenants' => [$tenant1['id'], $tenant2['id']],
]);

$this->artisan('user:add')
->assertExitCode(1);

tenancy()->initializeTenancy($tenant1);
$this->assertNotEmpty(\DB::table('users')->get());
tenancy()->end();

tenancy()->initializeTenancy($tenant2);
$this->assertNotEmpty(\DB::table('users')->get());
tenancy()->end();
}
}

0 comments on commit cf339a5

Please sign in to comment.