the browser-facing portion of osu!
at master 2.4 kB view raw
1<?php 2 3// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the GNU Affero General Public License v3.0. 4// See the LICENCE file in the repository root for full licence text. 5 6declare(strict_types=1); 7 8namespace Tests\Controllers; 9 10use App\Models\LegacyIrcKey; 11use App\Models\User; 12use Tests\TestCase; 13 14class LegacyIrcKeyControllerTest extends TestCase 15{ 16 public function testDestroy(): void 17 { 18 $key = LegacyIrcKey::factory()->create(); 19 $user = $key->user; 20 21 $this->expectCountChange(fn () => $user->legacyIrcKey()->count(), -1); 22 23 $this 24 ->actingAsVerified($user) 25 ->delete(route('legacy-irc-key.destroy')) 26 ->assertSuccessful(); 27 } 28 29 public function testDestroyWithoutExisting(): void 30 { 31 $user = User::factory()->create(); 32 33 $this->expectCountChange(fn () => $user->legacyIrcKey()->count(), 0); 34 35 $this 36 ->actingAsVerified($user) 37 ->delete(route('legacy-irc-key.destroy')) 38 ->assertSuccessful(); 39 } 40 41 public function testDestroyGuest(): void 42 { 43 $this->delete(route('legacy-irc-key.destroy'))->assertStatus(401); 44 } 45 46 public function testStore(): void 47 { 48 $user = User::factory()->withPlays(100)->create(); 49 50 $this->expectCountChange(fn () => $user->legacyIrcKey()->count(), 1); 51 52 $this 53 ->actingAsVerified($user) 54 ->post(route('legacy-irc-key.store')) 55 ->assertSuccessful(); 56 } 57 58 public function testStoreNotEnoughPlaycount(): void 59 { 60 $user = User::factory()->withPlays(10)->create(); 61 62 $this->expectCountChange(fn () => $user->legacyIrcKey()->count(), 0); 63 64 $this 65 ->actingAsVerified($user) 66 ->post(route('legacy-irc-key.store')) 67 ->assertStatus(403); 68 } 69 70 public function testStoreWithExisting(): void 71 { 72 $user = User::factory()->withPlays(100)->create(); 73 $key = LegacyIrcKey::factory()->create(['user_id' => $user]); 74 75 $this->expectCountChange(fn () => $user->legacyIrcKey()->count(), 0); 76 77 $this 78 ->actingAsVerified($user) 79 ->post(route('legacy-irc-key.store')) 80 ->assertSuccessful(); 81 } 82 83 public function testStoreGuest(): void 84 { 85 $this->post(route('legacy-irc-key.store'))->assertStatus(401); 86 } 87}