RankingRulesTest.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. declare(strict_types=1);
  3. namespace Tests\Settings;
  4. use Tests\TestCase;
  5. final class RankingRulesTest extends TestCase
  6. {
  7. private $index;
  8. const DEFAULT_RANKING_RULES = [
  9. 'typo',
  10. 'words',
  11. 'proximity',
  12. 'attribute',
  13. 'wordsPosition',
  14. 'exactness',
  15. ];
  16. protected function setUp(): void
  17. {
  18. parent::setUp();
  19. $this->index = $this->client->createIndex('index');
  20. }
  21. public function testGetDefaultRankingRules(): void
  22. {
  23. $response = $this->index->getRankingRules();
  24. $this->assertIsArray($response);
  25. $this->assertEquals(self::DEFAULT_RANKING_RULES, $response);
  26. }
  27. public function testUpdateRankingRules(): void
  28. {
  29. $newRankingRules = [
  30. 'asc(title)',
  31. 'typo',
  32. 'desc(description)',
  33. ];
  34. $promise = $this->index->updateRankingRules($newRankingRules);
  35. $this->assertIsValidPromise($promise);
  36. $this->index->waitForPendingUpdate($promise['updateId']);
  37. $rankingRules = $this->index->getRankingRules();
  38. $this->assertIsArray($rankingRules);
  39. $this->assertEquals($newRankingRules, $rankingRules);
  40. }
  41. public function testResetRankingRules(): void
  42. {
  43. $promise = $this->index->resetRankingRules();
  44. $this->assertIsValidPromise($promise);
  45. $this->index->waitForPendingUpdate($promise['updateId']);
  46. $rankingRules = $this->index->getRankingRules();
  47. $this->assertIsArray($rankingRules);
  48. $this->assertEquals(self::DEFAULT_RANKING_RULES, $rankingRules);
  49. }
  50. }