+ public function test_add_social_driver_allows_a_configure_for_redirect_callback_to_be_passed()
+ {
+ Theme::addSocialDriver(
+ 'discord',
+ [
+ 'client_id' => 'abc123',
+ 'client_secret' => 'def456',
+ 'name' => 'Super Cat Name',
+ ],
+ 'SocialiteProviders\Discord\DiscordExtendSocialite@handle',
+ function ($driver) {
+ $driver->with(['donkey' => 'donut']);
+ }
+ );
+
+ $loginResp = $this->get('/login/service/discord');
+ $redirect = $loginResp->headers->get('location');
+ $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);
+ }
+