%PDF- %PDF-
Direktori : /home/graphicd/public_html/vebto/vendor/meilisearch/meilisearch-php/tests/Settings/ |
Current File : /home/graphicd/public_html/vebto/vendor/meilisearch/meilisearch-php/tests/Settings/SettingsTest.php |
<?php declare(strict_types=1); namespace Tests\Settings; use Tests\TestCase; final class SettingsTest extends TestCase { public const DEFAULT_RANKING_RULES = [ 'typo', 'words', 'proximity', 'attribute', 'wordsPosition', 'exactness', ]; public const DEFAULT_SEARCHABLE_ATTRIBUTES = ['*']; public const DEFAULT_DISPLAYED_ATTRIBUTES = ['*']; public function testGetDefaultSettings(): void { $primaryKey = 'ObjectID'; $settingA = $this->client ->createIndex('indexA') ->getSettings(); $settingB = $this->client ->createIndex( 'indexB', ['primaryKey' => $primaryKey] )->getSettings(); $this->assertEquals(self::DEFAULT_RANKING_RULES, $settingA['rankingRules']); $this->assertNull($settingA['distinctAttribute']); $this->assertIsArray($settingA['searchableAttributes']); $this->assertEquals(self::DEFAULT_SEARCHABLE_ATTRIBUTES, $settingA['searchableAttributes']); $this->assertIsArray($settingA['displayedAttributes']); $this->assertEquals(self::DEFAULT_DISPLAYED_ATTRIBUTES, $settingA['displayedAttributes']); $this->assertIsArray($settingA['stopWords']); $this->assertEmpty($settingA['stopWords']); $this->assertIsArray($settingA['synonyms']); $this->assertEmpty($settingA['synonyms']); $this->assertEquals(self::DEFAULT_RANKING_RULES, $settingB['rankingRules']); $this->assertNull($settingB['distinctAttribute']); $this->assertEquals(self::DEFAULT_SEARCHABLE_ATTRIBUTES, $settingB['searchableAttributes']); $this->assertEquals(self::DEFAULT_DISPLAYED_ATTRIBUTES, $settingB['displayedAttributes']); $this->assertIsArray($settingB['stopWords']); $this->assertEmpty($settingB['stopWords']); $this->assertIsArray($settingB['synonyms']); $this->assertEmpty($settingB['synonyms']); } public function testUpdateSettings(): void { $index = $this->client->createIndex('index'); $promise = $index->updateSettings([ 'distinctAttribute' => 'title', 'rankingRules' => ['asc(title)', 'typo'], 'stopWords' => ['the'], ]); $this->assertIsValidPromise($promise); $index->waitForPendingUpdate($promise['updateId']); $settings = $index->getSettings(); $this->assertEquals(['asc(title)', 'typo'], $settings['rankingRules']); $this->assertEquals('title', $settings['distinctAttribute']); $this->assertIsArray($settings['searchableAttributes']); $this->assertEquals(self::DEFAULT_SEARCHABLE_ATTRIBUTES, $settings['searchableAttributes']); $this->assertIsArray($settings['displayedAttributes']); $this->assertEquals(self::DEFAULT_DISPLAYED_ATTRIBUTES, $settings['displayedAttributes']); $this->assertEquals(['the'], $settings['stopWords']); $this->assertIsArray($settings['synonyms']); $this->assertEmpty($settings['synonyms']); } public function testUpdateSettingsWithoutOverwritingThem(): void { $index = $this->client->createIndex('index'); $promise = $index->updateSettings([ 'distinctAttribute' => 'title', 'rankingRules' => ['asc(title)', 'typo'], 'stopWords' => ['the'], ]); $this->assertIsValidPromise($promise); $index->waitForPendingUpdate($promise['updateId']); $promise = $index->updateSettings([ 'searchableAttributes' => ['title'], ]); $this->assertIsValidPromise($promise); $index->waitForPendingUpdate($promise['updateId']); $settings = $index->getSettings(); $this->assertEquals(['asc(title)', 'typo'], $settings['rankingRules']); $this->assertEquals('title', $settings['distinctAttribute']); $this->assertEquals(['title'], $settings['searchableAttributes']); $this->assertIsArray($settings['displayedAttributes']); $this->assertEquals(self::DEFAULT_SEARCHABLE_ATTRIBUTES, $settings['displayedAttributes']); $this->assertEquals(['the'], $settings['stopWords']); $this->assertIsArray($settings['synonyms']); $this->assertEmpty($settings['synonyms']); } public function testResetSettings(): void { $index = $this->client->createIndex('index'); $promise = $index->updateSettings([ 'distinctAttribute' => 'title', 'rankingRules' => ['asc(title)', 'typo'], 'stopWords' => ['the'], ]); $this->assertIsValidPromise($promise); $index->waitForPendingUpdate($promise['updateId']); $promise = $index->resetSettings(); $this->assertIsValidPromise($promise); $index->waitForPendingUpdate($promise['updateId']); $settings = $index->getSettings(); $this->assertEquals(self::DEFAULT_RANKING_RULES, $settings['rankingRules']); $this->assertNull($settings['distinctAttribute']); $this->assertIsArray($settings['searchableAttributes']); $this->assertEquals(self::DEFAULT_SEARCHABLE_ATTRIBUTES, $settings['searchableAttributes']); $this->assertIsArray($settings['displayedAttributes']); $this->assertEquals(self::DEFAULT_SEARCHABLE_ATTRIBUTES, $settings['displayedAttributes']); $this->assertIsArray($settings['stopWords']); $this->assertEmpty($settings['stopWords']); $this->assertIsArray($settings['synonyms']); $this->assertEmpty($settings['synonyms']); } }