assertStatus(200) ->assertSeeText('14 Tage kostenlos testen') ->assertSeeText('Keine Kreditkarte') ->assertSeeText('Mit Google fortfahren') ->assertSeeText('Mit GitHub fortfahren') ->assertSeeText('Workspace-Name') ->assertSeeText('SSH-First Setup') ->assertSeeText('Stündliche Backups inklusive') ->assertSeeText('Brute-Force-Defense aktiv') ->assertSee('clu-stepper', false) ->assertSee('clu-pw-meter', false) ->assertSee('clu-trial-card', false) ->assertSee('clu-benefit-list', false); }); it('previews a workspace slug', function () { livewire('pages.auth.register') ->set('workspace', 'Acme Cluster GmbH') ->assertSeeText('acme-cluster-gmbh'); }); it('rejects an empty form', function () { livewire('pages.auth.register') ->set('firstname', '') ->set('lastname', '') ->set('email', '') ->set('workspace', '') ->set('password', '') ->set('terms', false) ->call('register') ->assertHasErrors(['firstname', 'lastname', 'email', 'workspace', 'password', 'terms']); }); it('rejects passwords shorter than 10 chars', function () { livewire('pages.auth.register') ->set('firstname', 'Marie') ->set('lastname', 'Weber') ->set('email', 'marie@example.test') ->set('workspace', 'Acme') ->set('password', 'short') ->set('terms', true) ->call('register') ->assertHasErrors('password'); }); it('creates a user and logs them in', function () { livewire('pages.auth.register') ->set('firstname', 'Marie') ->set('lastname', 'Weber') ->set('email', 'marie@example.test') ->set('workspace', 'Acme Cluster') ->set('password', 'longenoughpw!1') ->set('terms', true) ->call('register') ->assertHasNoErrors() ->assertRedirect(route('dashboard', absolute: false)); expect(User::where('email', 'marie@example.test')->exists())->toBeTrue(); expect(auth()->check())->toBeTrue(); }); it('rejects a duplicate email', function () { User::factory()->create(['email' => 'taken@example.test']); livewire('pages.auth.register') ->set('firstname', 'Marie') ->set('lastname', 'Weber') ->set('email', 'taken@example.test') ->set('workspace', 'Acme') ->set('password', 'longenoughpw!1') ->set('terms', true) ->call('register') ->assertHasErrors('email'); });