diff --git a/app/Http/Controllers/Auth/AuthController.php b/app/Http/Controllers/Auth/AuthController.php index 507322c3d..98346b305 100644 --- a/app/Http/Controllers/Auth/AuthController.php +++ b/app/Http/Controllers/Auth/AuthController.php @@ -155,6 +155,7 @@ class AuthController extends Controller return redirect('/register/confirm'); } + $newUser->email_confirmed = true; auth()->login($newUser); session()->flash('success', 'Thanks for signing up! You are now registered and signed in.'); return redirect($this->redirectPath()); diff --git a/database/factories/ModelFactory.php b/database/factories/ModelFactory.php index a47e02b72..6a1ab049c 100644 --- a/database/factories/ModelFactory.php +++ b/database/factories/ModelFactory.php @@ -39,4 +39,4 @@ $factory->define(BookStack\Page::class, function ($faker) { 'name' => $faker->sentence, 'html' => '
' . implode('
', $faker->paragraphs(5)) . '' ]; -}); \ No newline at end of file +}); diff --git a/tests/AuthTest.php b/tests/AuthTest.php index ad9265fc1..343823687 100644 --- a/tests/AuthTest.php +++ b/tests/AuthTest.php @@ -20,6 +20,48 @@ class AuthTest extends TestCase ->see('BookStack'); } + public function testPublicViewing() + { + $settings = app('BookStack\Services\SettingService'); + $settings->put('app-public', 'true'); + $this->visit('/') + ->seePageIs('/') + ->see('Sign In'); + } + + public function testRegistrationShowing() + { + // Ensure registration form is showing + $this->setSettings(['registration-enabled' => 'true']); + $this->visit('/login') + ->see('Sign up') + ->click('Sign up') + ->seePageIs('/register'); + } + + public function testNormalRegistration() + { + $this->setSettings(['registration-enabled' => 'true']); + $user = factory(\BookStack\User::class)->make(); + + $this->visit('/register') + ->see('Sign Up') + ->type($user->name, '#name') + ->type($user->email, '#email') + ->type($user->password, '#password') + ->press('Create Account') + ->seePageIs('/') + ->see($user->name); + } + + private function setSettings($settingsArray) + { + $settings = app('BookStack\Services\SettingService'); + foreach($settingsArray as $key => $value) { + $settings->put($key, $value); + } + } + public function testLogout() { $this->asAdmin()