|
4 | 4 | use Illuminate\Support\Facades\Hash; |
5 | 5 | use Inertia\Testing\AssertableInertia as Assert; |
6 | 6 |
|
| 7 | +use function Pest\Faker\fake; |
7 | 8 | use function Pest\Laravel\actingAs; |
8 | | -use function Pest\Laravel\from; |
9 | 9 | use function Pest\Laravel\get; |
10 | 10 | use function Pest\Laravel\patch; |
11 | 11 |
|
|
28 | 28 |
|
29 | 29 | test('Can update their details', function () { |
30 | 30 | $user = User::factory()->create([ |
31 | | - 'first_name' => 'Jim', |
32 | | - 'last_name' => 'Gordon', |
33 | | - 'email' => 'jim@test.com', |
34 | | - 'password' => 'oldPassword#123', |
| 31 | + 'first_name' => fake()->firstName(), |
| 32 | + 'last_name' => fake()->lastName(), |
| 33 | + 'email' => fake()->safeEmail(), |
| 34 | + 'password' => fake()->password(), |
35 | 35 | ]); |
36 | 36 |
|
37 | | - from(route('account.edit')) |
38 | | - ->actingAs($user) |
| 37 | + actingAs($user) |
| 38 | + ->fromRoute('account.edit') |
39 | 39 | ->patch(route('account.update'), $newData = [ |
40 | | - 'first_name' => 'Tim', |
41 | | - 'last_name' => 'Drake', |
42 | | - 'email' => 'tim@test.com', |
43 | | - 'password' => 'newPassword#123', |
| 40 | + 'first_name' => fake()->firstName(), |
| 41 | + 'last_name' => fake()->lastName(), |
| 42 | + 'email' => fake()->safeEmail(), |
| 43 | + 'password' => 'newPassword123#', |
44 | 44 | ]) |
45 | | - ->assertRedirectToRoute('account.edit') |
46 | 45 | ->assertSessionDoesntHaveErrors() |
47 | | - ->assertSessionHas('success', __('account.updated')); |
| 46 | + ->assertSessionHas('success', __('account.updated')) |
| 47 | + ->assertRedirectToRoute('account.edit'); |
48 | 48 |
|
49 | 49 | expect($user->refresh()) |
50 | 50 | ->first_name->toBe($newData['first_name']) |
|
55 | 55 | }); |
56 | 56 |
|
57 | 57 | test("Can't update their email to one that already exists", function () { |
58 | | - User::factory()->create([ |
59 | | - 'email' => 'jim@test.com', |
| 58 | + $user1 = User::factory()->create([ |
| 59 | + 'email' => fake()->email(), |
60 | 60 | ]); |
61 | 61 |
|
62 | | - $user = User::factory()->create([ |
63 | | - 'email' => 'jeff@test.com', |
| 62 | + $oldEmail = fake()->email(); |
| 63 | + |
| 64 | + $user2 = User::factory()->create([ |
| 65 | + 'email' => $oldEmail, |
64 | 66 | ]); |
65 | 67 |
|
66 | | - actingAs($user) |
67 | | - ->from(route('account.edit')) |
68 | | - ->patch(route('account.update'), $newData = [ |
69 | | - 'email' => 'jim@test.com', |
| 68 | + actingAs($user2) |
| 69 | + ->fromRoute('account.edit') |
| 70 | + ->patch(route('account.update'), [ |
| 71 | + 'email' => $user1->email, |
| 72 | + ]) |
| 73 | + ->assertSessionHasErrors([ |
| 74 | + 'email' => __('validation.unique', ['attribute' => 'email']), |
70 | 75 | ]) |
71 | | - ->assertSessionHasErrors('email') |
72 | 76 | ->assertRedirectToRoute('account.edit'); |
73 | 77 |
|
74 | | - expect($user->refresh()->email)->not()->toBe($newData['email']); |
| 78 | + expect($user2->refresh()->email)->toBe($oldEmail); |
75 | 79 | }); |
76 | 80 | }); |
77 | 81 |
|
|
83 | 87 |
|
84 | 88 | test("Can't update details", function () { |
85 | 89 | patch(route('account.update')) |
| 90 | + ->assertSessionDoesntHaveErrors() |
86 | 91 | ->assertRedirectToRoute('login'); |
87 | 92 | }); |
88 | 93 | }); |
0 commit comments