the browser-facing portion of osu!
at master 1.3 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 6namespace Tests\Libraries\Search; 7 8use App\Libraries\Search\UserSearch; 9use App\Libraries\Search\UserSearchParams; 10use App\Models\User; 11use Tests\TestCase; 12 13class UserSearchTest extends TestCase 14{ 15 public function testQueryString() 16 { 17 $searchUser1 = User::factory()->create(['username' => 'hello']); 18 $searchUser1->esIndexDocument(); 19 $searchUser2 = User::factory()->create(['username' => 'hello world']); 20 $searchUser2->esIndexDocument(); 21 $user3 = User::factory()->create(['username' => 'aaaaaa']); 22 $user3->esIndexDocument(); 23 (new UserSearch())->refresh(); 24 25 $params = new UserSearchParams(); 26 $params->queryString = $searchUser1->username; 27 $search = new UserSearch($params); 28 $userIds = array_map('intval', $search->response()->ids()); 29 sort($userIds); 30 31 $this->assertSame(2, count($userIds)); 32 $this->assertSame($searchUser1->getKey(), $userIds[0]); 33 $this->assertSame($searchUser2->getKey(), $userIds[1]); 34 } 35 36 protected function setUp(): void 37 { 38 parent::setUp(); 39 40 (new UserSearch())->deleteAll(); 41 } 42}