diff --git a/app/Console/Commands/PluginDisableCommand.php b/app/Console/Commands/PluginDisableCommand.php index 1424bd95..b34394e8 100644 --- a/app/Console/Commands/PluginDisableCommand.php +++ b/app/Console/Commands/PluginDisableCommand.php @@ -28,6 +28,12 @@ class PluginDisableCommand extends Command */ public function handle(PluginManager $plugins) { - $plugins->disable($this->argument('name')); + $plugin = $plugins->get($this->argument('name')); + if ($plugin) { + $plugins->disable($this->argument('name')); + $this->info(trans('admin.plugins.operations.disabled', ['plugin' => $plugin->title])); + } else { + $this->warn(trans('admin.plugins.operations.not-found')); + } } } diff --git a/app/Console/Commands/PluginEnableCommand.php b/app/Console/Commands/PluginEnableCommand.php index 9beb1b94..e62e415d 100644 --- a/app/Console/Commands/PluginEnableCommand.php +++ b/app/Console/Commands/PluginEnableCommand.php @@ -28,6 +28,12 @@ class PluginEnableCommand extends Command */ public function handle(PluginManager $plugins) { - $plugins->enable($this->argument('name')); + $plugin = $plugins->get($this->argument('name')); + if ($plugin) { + $plugins->enable($this->argument('name')); + $this->info(trans('admin.plugins.operations.enabled', ['plugin' => $plugin->title])); + } else { + $this->warn(trans('admin.plugins.operations.not-found')); + } } } diff --git a/tests/CommandsTest/PluginDisableCommandTest.php b/tests/CommandsTest/PluginDisableCommandTest.php index 92a5ed16..5a7d3a64 100644 --- a/tests/CommandsTest/PluginDisableCommandTest.php +++ b/tests/CommandsTest/PluginDisableCommandTest.php @@ -2,6 +2,7 @@ namespace Tests; +use App\Services\Plugin; use App\Services\PluginManager; class PluginDisableCommandTest extends TestCase @@ -9,8 +10,17 @@ class PluginDisableCommandTest extends TestCase public function testDisablePlugin() { $this->mock(PluginManager::class, function ($mock) { + $mock->shouldReceive('get')->with('nope')->once()->andReturn(null); + $mock->shouldReceive('get') + ->with('my-plugin') + ->once() + ->andReturn(new Plugin('', ['title' => 'My Plugin'])); $mock->shouldReceive('disable')->with('my-plugin')->once(); }); - $this->artisan('plugin:disable my-plugin'); + + $this->artisan('plugin:disable nope') + ->expectsOutput(trans('admin.plugins.operations.not-found')); + $this->artisan('plugin:disable my-plugin') + ->expectsOutput(trans('admin.plugins.operations.disabled', ['plugin' => 'My Plugin'])); } } diff --git a/tests/CommandsTest/PluginEnableCommandTest.php b/tests/CommandsTest/PluginEnableCommandTest.php index 7759b49d..3fa7221c 100644 --- a/tests/CommandsTest/PluginEnableCommandTest.php +++ b/tests/CommandsTest/PluginEnableCommandTest.php @@ -2,6 +2,7 @@ namespace Tests; +use App\Services\Plugin; use App\Services\PluginManager; class PluginEnableCommandTest extends TestCase @@ -9,8 +10,17 @@ class PluginEnableCommandTest extends TestCase public function testEnablePlugin() { $this->mock(PluginManager::class, function ($mock) { + $mock->shouldReceive('get')->with('nope')->once()->andReturn(null); + $mock->shouldReceive('get') + ->with('my-plugin') + ->once() + ->andReturn(new Plugin('', ['title' => 'My Plugin'])); $mock->shouldReceive('enable')->with('my-plugin')->once(); }); - $this->artisan('plugin:enable my-plugin'); + + $this->artisan('plugin:enable nope') + ->expectsOutput(trans('admin.plugins.operations.not-found')); + $this->artisan('plugin:enable my-plugin') + ->expectsOutput(trans('admin.plugins.operations.enabled', ['plugin' => 'My Plugin'])); } }