Improve investor quick search with typed counts, product categories and licensing guidance

This commit is contained in:
2026-11-13 15:06:11 +02:00
parent f53a308327
commit d325b72fad
11 changed files with 508 additions and 21 deletions
+27
View File
@@ -9,6 +9,33 @@ use PHPUnit\Framework\TestCase;
final class SearchTermsTest extends TestCase
{
public function test_count_questions_select_a_category_instead_of_searching_question_words(): void
{
$search = new SearchTerms;
$intent = $search->countIntent('Quantos corredores existem?');
$this->assertSame('corridor', $intent['kind']);
$this->assertSame('', $intent['filter']);
$this->assertSame('corredores', $intent['label']);
$this->assertSame('Oportunidades', $search->countIntent('Quantas oportunidades existem no portal?')['category']);
$this->assertSame('em nampula', $search->countIntent('Quantos corredores existem em Nampula?')['filter']);
$this->assertSame('cluster', $search->countIntent('Qual é o número de clusters disponíveis?')['kind']);
$this->assertNull($search->countIntent('oportunidades nos corredores'));
$this->assertNull($search->countIntent('documentos sobre quantos corredores existem'));
}
public function test_investor_requests_distinguish_products_guidance_and_lists(): void
{
$search = new SearchTerms;
$this->assertSame('guide', $search->requestIntent('como licenciar uma empresa')['type']);
$this->assertSame('guide', $search->requestIntent('como faço para licenciar a empresa em Nampula?')['type']);
$this->assertNull($search->requestIntent('como licenciar software'));
$this->assertSame('list', $search->requestIntent('quais são os corredores existentes')['type']);
$this->assertSame('Produtos financeiros', $search->requestIntent('produtos financeiros em Nampula')['category']);
$this->assertNull($search->requestIntent('tipo de produtos e sua localização')['category']);
$this->assertSame('', $search->requestIntent('tipo de produtos e sua localização')['filter']);
$this->assertSame('grafite em cabo delgado', $search->requestIntent('onde encontrar grafite em Cabo Delgado?')['filter']);
}
public function test_matches_all_words_in_any_order_without_case_or_accents(): void
{
$search = new SearchTerms;