]> BookStack Code Mirror - bookstack/blobdiff - tests/ThemeTest.php
Added test for logical-theme-system command registration
[bookstack] / tests / ThemeTest.php
index 9aa7873b07c93af103206bd7f8608cfdf3622c22..f04250bff57a2719e2cfa6d51df6b182f9ba8f15 100644 (file)
@@ -7,8 +7,10 @@ use BookStack\Entities\Models\Page;
 use BookStack\Entities\Tools\PageContent;
 use BookStack\Facades\Theme;
 use BookStack\Theming\ThemeEvents;
+use Illuminate\Console\Command;
 use Illuminate\Http\Request;
 use Illuminate\Http\Response;
+use Illuminate\Support\Facades\Artisan;
 use Illuminate\Support\Facades\File;
 use League\CommonMark\ConfigurableEnvironmentInterface;
 
@@ -206,6 +208,16 @@ class ThemeTest extends TestCase
         $this->assertStringContainsString('donkey=donut', $redirect);
     }
 
+    public function test_register_command_allows_provided_command_to_be_usable_via_artisan()
+    {
+        Theme::registerCommand(new MyCustomCommand);
+
+        Artisan::call('bookstack:test-custom-command', []);
+        $output = Artisan::output();
+
+        $this->assertStringContainsString('Command ran!', $output);
+    }
+
     protected function usingThemeFolder(callable $callback)
     {
         // Create a folder and configure a theme
@@ -220,3 +232,10 @@ class ThemeTest extends TestCase
         File::deleteDirectory($themeFolderPath);
     }
 }
+
+class MyCustomCommand extends Command {
+    protected $signature = 'bookstack:test-custom-command';
+    public function handle() {
+        $this->line('Command ran!');
+    }
+}
\ No newline at end of file