This trait is used as a guard in the REST search routes and checks whether the WikibaseCirrusSearch extension is loaded and $isCirrusSearchEnabled = $wgSearchType === 'CirrusSearch' || $wgWBCSUseCirrus is true. The OR (||) in the latter part is a little confusing, and while it may technically be correct, we should either document why, or revisit the logic.
Also note that WBCS itself only checks $wgWBCSUseCirrus before overriding search-related entity type definitions.
We mistakenly used the same logic for the GraphQL search field, where both must be true, i.e. $wgSearchType === 'CirrusSearch' AND $wgWBCSUseCirrus.
Steps:
- understand the configuration flags that are needed to enable CirrusSearch in different domains and CI
- configure domain specific traits that determine if CirrusSearch can be used
- check existing conditions in CirrusSearchEnabledTrait.php , SearchEnabledTestTrait.js, GraphQLTest.js
- take into account QUIBBLE_OPENSEARCH that is needed in CI
- see repo/domains/search/tests/mocha/setup.js, repo/domains/reuse/tests/api-testing/GraphQLTest.js