From b048aca93b4cb26db493f60d8c4029fdfb1a4db5 Mon Sep 17 00:00:00 2001 From: myrmidex Date: Thu, 20 Aug 2026 23:36:30 +0200 Subject: [PATCH] 55 - Add browser test for registration --- tests/Browser/Auth/RegisterTest.php | 49 +++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 tests/Browser/Auth/RegisterTest.php diff --git a/tests/Browser/Auth/RegisterTest.php b/tests/Browser/Auth/RegisterTest.php new file mode 100644 index 0000000..253c89f --- /dev/null +++ b/tests/Browser/Auth/RegisterTest.php @@ -0,0 +1,49 @@ +type('input[id="name"]', 'Test User') + ->type('input[id="email"]', 'new@example.com') + ->type('input[id="password"]', 'password123') + ->type('input[id="password_confirmation"]', 'password123') + ->press('Register') + ->assertPathIs('/dashboard') + ->assertSee('Test User'); +}); + +it('requires all registration fields', function () { + visit('/register') + ->assertScript("document.querySelector('input[id=\"name\"]').required") + ->assertScript("document.querySelector('input[id=\"email\"]').required") + ->assertScript("document.querySelector('input[id=\"password\"]').required") + ->assertScript("document.querySelector('input[id=\"password_confirmation\"]').required") + ->assertAttribute('input[id="email"]', 'type', 'email') + ->assertAttribute('input[id="password"]', 'type', 'password') + ->assertAttribute('input[id="password_confirmation"]', 'type', 'password') + ->press('Register') + ->assertPathIs('/register'); +}); + +it('rejects a mismatched password confirmation', function () { + visit('/register') + ->type('input[id="name"]', 'Test User') + ->type('input[id="email"]', 'new@example.com') + ->type('input[id="password"]', 'password123') + ->type('input[id="password_confirmation"]', 'different123') + ->press('Register') + ->assertPathIs('/register') + ->assertSee('confirmation does not match'); +}); + +it('rejects a duplicate email', function () { + createPlanner('taken@example.com'); + + visit('/register') + ->type('input[id="name"]', 'Test User') + ->type('input[id="email"]', 'taken@example.com') + ->type('input[id="password"]', 'password123') + ->type('input[id="password_confirmation"]', 'password123') + ->press('Register') + ->assertPathIs('/register') + ->assertSee('has already been taken'); +});