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;
Theme::listen(ThemeEvents::AUTH_REGISTER, $callback);
$this->setSettings(['registration-enabled' => 'true']);
- $user = factory(User::class)->make();
+ $user = User::factory()->make();
$this->post('/register', ['email' => $user->email, 'name' => $user->name, 'password' => 'password']);
$this->assertCount(2, $args);
$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
File::deleteDirectory($themeFolderPath);
}
}
+
+class MyCustomCommand extends Command
+{
+ protected $signature = 'bookstack:test-custom-command';
+
+ public function handle()
+ {
+ $this->line('Command ran!');
+ }
+}