- $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)
- ->seeInDatabase('users', ['name' => $user->name, 'email' => $user->email]);
+ $resp = $this->get('/register')
+ ->assertSee('Sign Up');
+ $this->withHtml($resp)->assertElementContains('form[action="' . url('/register') . '"]', 'Create Account');
+
+ $resp = $this->post('/register', $user->only('password', 'name', 'email'));
+ $resp->assertRedirect('/');
+
+ $resp = $this->get('/');
+ $resp->assertOk();
+ $resp->assertSee($user->name);
+
+ $this->assertDatabaseHas('users', ['name' => $user->name, 'email' => $user->email]);
+
+ $user = User::query()->where('email', '=', $user->email)->first();
+ $this->assertEquals(1, $user->roles()->count());
+ $this->assertEquals($registrationRole->id, $user->roles()->first()->id);