41
41
assertCanBanUsers ();
42
42
});
43
43
44
+ test ('admins can ban a user and delete their threads ' , function () {
45
+ $ this ->loginAsAdmin ();
46
+
47
+ assertCanBanUsersAndDeleteThreads ();
48
+ });
49
+
44
50
test ('moderators can ban a user ' , function () {
45
51
$ this ->loginAsModerator ();
46
52
47
53
assertCanBanUsers ();
48
54
});
49
55
56
+ test ('moderators can ban a user and delete their threads ' , function () {
57
+ $ this ->loginAsModerator ();
58
+
59
+ assertCanBanUsersAndDeleteThreads ();
60
+ });
61
+
50
62
test ('admins can unban a user ' , function () {
51
63
$ this ->loginAsAdmin ();
52
64
@@ -366,11 +378,23 @@ function assertCanBanUsers()
366
378
{
367
379
$ user = User::factory ()->create (['name ' => 'Freek Murze ' ]);
368
380
369
- test ()->put ('/admin/users/ ' .$ user ->username ().'/ban ' , ['reason ' => 'A good reason ' ])
381
+ test ()->put ('/admin/users/ ' .$ user ->username ().'/ban ' , ['reason ' => 'A good reason ' , 'delete_threads ' => false ])
382
+ ->assertRedirect ('/user/ ' .$ user ->username ());
383
+
384
+ test ()->assertDatabaseMissing ('users ' , ['id ' => $ user ->id (), 'banned_at ' => null ]);
385
+ test ()->assertDatabaseHas ('users ' , ['id ' => $ user ->id (), 'banned_reason ' => 'A good reason ' ]);
386
+ }
387
+
388
+ function assertCanBanUsersAndDeleteThreads ()
389
+ {
390
+ $ user = User::factory ()->create (['name ' => 'Freek Murze ' ]);
391
+
392
+ test ()->put ('/admin/users/ ' .$ user ->username ().'/ban ' , ['reason ' => 'A good reason ' , 'delete_threads ' => true ])
370
393
->assertRedirect ('/user/ ' .$ user ->username ());
371
394
372
395
test ()->assertDatabaseMissing ('users ' , ['id ' => $ user ->id (), 'banned_at ' => null ]);
373
396
test ()->assertDatabaseHas ('users ' , ['id ' => $ user ->id (), 'banned_reason ' => 'A good reason ' ]);
397
+ test ()->assertDatabaseMissing ('threads ' , ['author_id ' => $ user ->id ()]);
374
398
}
375
399
376
400
function assertCanUnbanUsers ()
@@ -397,6 +421,6 @@ function assertCannotBanUsersByType(int $type)
397
421
{
398
422
$ user = User::factory ()->create (['type ' => $ type ]);
399
423
400
- test ()->put ('/admin/users/ ' .$ user ->username ().'/ban ' , ['reason ' => 'A good reason ' ])
424
+ test ()->put ('/admin/users/ ' .$ user ->username ().'/ban ' , ['reason ' => 'A good reason ' , ' delete_threads ' => fake ()-> boolean () ])
401
425
->assertForbidden ();
402
426
}
0 commit comments