ajuste na pesquisa de informacao, para passar a dar prioridade
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
namespace Tests\Unit;
|
||||
|
||||
use App\Services\FederatedSearch;
|
||||
use App\Services\SearchTerms;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
final class FederatedSearchTest extends TestCase
|
||||
@@ -44,4 +45,24 @@ final class FederatedSearchTest extends TestCase
|
||||
$result = (new FederatedSearch)->page($factories, 1, 5, fn ($item) => $item['score']);
|
||||
$this->assertSame(['Sectores', 'Informação'], array_column($result['data'], 'title'));
|
||||
}
|
||||
|
||||
public function test_direct_matches_precede_associations_across_sources_and_pages(): void
|
||||
{
|
||||
$search = new SearchTerms;
|
||||
$term = 'corredor da beira';
|
||||
$tokens = $search->tokens($term);
|
||||
$sources = [
|
||||
'Oportunidades' => fn () => ['count' => 2, 'fetch' => fn ($offset, $limit) => array_slice([
|
||||
['title' => 'Açúcar no Corredor da Beira'], ['title' => 'Produção de açúcar'],
|
||||
], $offset, $limit)],
|
||||
'Carteira' => fn () => ['count' => 1, 'fetch' => fn ($offset, $limit) => array_slice([
|
||||
['title' => 'Corredor da Beira'],
|
||||
], $offset, $limit)],
|
||||
];
|
||||
$score = fn ($item) => $search->score($item['title'], $term, $tokens);
|
||||
$service = new FederatedSearch;
|
||||
|
||||
$this->assertSame(['Corredor da Beira', 'Açúcar no Corredor da Beira'], array_column($service->page($sources, 1, 2, $score)['data'], 'title'));
|
||||
$this->assertSame(['Produção de açúcar'], array_column($service->page($sources, 2, 2, $score)['data'], 'title'));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user