diff --git a/framework/core/src/Discussion/Search/Gambit/AuthorGambit.php b/framework/core/src/Discussion/Search/Gambit/AuthorGambit.php index 0b321448d..a67f76b8c 100644 --- a/framework/core/src/Discussion/Search/Gambit/AuthorGambit.php +++ b/framework/core/src/Discussion/Search/Gambit/AuthorGambit.php @@ -54,6 +54,6 @@ class AuthorGambit extends AbstractRegexGambit $ids[] = $this->users->getIdForUsername($username); } - $search->getQuery()->whereIn('user_id', $ids, 'and', $negate); + $search->getQuery()->whereIn('discussions.user_id', $ids, 'and', $negate); } } diff --git a/framework/core/tests/Api/Controller/ListDiscussionControllerTest.php b/framework/core/tests/Api/Controller/ListDiscussionControllerTest.php index 695b378c2..9ccd265f3 100644 --- a/framework/core/tests/Api/Controller/ListDiscussionControllerTest.php +++ b/framework/core/tests/Api/Controller/ListDiscussionControllerTest.php @@ -13,9 +13,12 @@ namespace Flarum\Tests\Api\Controller; use Flarum\Api\Controller\ListDiscussionsController; use Flarum\Discussion\Discussion; +use Flarum\Tests\Test\Concerns\RetrievesAuthorizedUsers; class ListDiscussionControllerTest extends ApiControllerTestCase { + use RetrievesAuthorizedUsers; + protected $controller = ListDiscussionsController::class; /** @@ -30,4 +33,21 @@ class ListDiscussionControllerTest extends ApiControllerTestCase $this->assertEquals(Discussion::count(), count($data['data'])); } + + /** + * @test + */ + public function can_search_for_author() + { + $user = $this->getNormalUser(); + + $response = $this->callWith([], [ + 'filter' => [ + 'q' => 'author:'.$user->username.' foo' + ], + 'include' => 'mostRelevantPost' + ]); + + $this->assertEquals(200, $response->getStatusCode()); + } }