trypost/tests/Feature/Actions/User/CreateUserTest.php

45 lines
1.3 KiB
PHP
Raw Normal View History

<?php
declare(strict_types=1);
use App\Actions\User\CreateUser;
use App\Models\Account;
use App\Models\Workspace;
test('CreateUser creates user with account but no workspace and no current_workspace_id', function () {
$user = CreateUser::execute([
'name' => 'Jane Doe',
'email' => 'jane@example.com',
'password' => 'secret123',
]);
expect($user->name)->toBe('Jane Doe');
expect($user->email)->toBe('jane@example.com');
expect($user->current_workspace_id)->toBeNull();
expect($user->account_id)->not->toBeNull();
expect(Workspace::count())->toBe(0);
expect(Account::find($user->account_id))->not->toBeNull();
});
test('CreateUser sets account owner_id to the new user', function () {
$user = CreateUser::execute([
'name' => 'Jane Doe',
'email' => 'jane2@example.com',
'password' => 'secret123',
]);
expect($user->account->owner_id)->toBe($user->id);
});
test('CreateUser invite-style still creates user without workspace (workspace assignment happens via invite acceptance)', function () {
$user = CreateUser::execute([
'name' => 'Invited',
'email' => 'invited@example.com',
'password' => 'secret123',
'is_invite' => true,
]);
expect($user->email_verified_at)->not->toBeNull();
expect(Workspace::count())->toBe(0);
});