84 lines
2.7 KiB
PHP
84 lines
2.7 KiB
PHP
<?php
|
|
|
|
use App\Models\User;
|
|
use function Pest\Laravel\get;
|
|
use function Pest\Livewire\livewire;
|
|
|
|
it('renders the signup page with template chrome', function () {
|
|
$response = get(route('register'));
|
|
|
|
$response->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');
|
|
});
|