search_api_meilisearch-1.0.x-dev/tests/src/Kernel/Backend/LoggedErrorsTest.php
tests/src/Kernel/Backend/LoggedErrorsTest.php
<?php
namespace Drupal\Tests\search_api_meilisearch\Kernel\Backend;
use Drupal\Core\Logger\LoggerChannel;
use Drupal\entity_test\Entity\EntityTest;
use PHPUnit\Framework\Attributes\Group;
/**
* Provides tests for logged errors.
*
* @group search_api_meilisearch
*/
#[Group('search_api_meilisearch')]
class LoggedErrorsTest extends BackendKernelTestBase {
protected const TEST_INDEX = 'kernel_backend_logger_errors_test_index';
/**
* Tests that error is logged when server has invalid url added.
*
* When invalid url is added and index needs to be indexed a logged error is
* expected.
*/
public function testLoggedErrorOnInvalidUrl(): void {
$mockLogger = $this->createMock(LoggerChannel::class);
$mockLogger->expects($this->once())->method('error');
$this->container->set('logger.channel.search_api_meilisearch', $mockLogger);
$this->prepareTestIndex(self::TEST_INDEX);
$this->index->getServerInstance()->setBackendConfig([
'meilisearch_host_address' => 'http://non-existing-url',
'meilisearch_host_port' => getenv('MEILI_TEST_PORT') ?: '7700',
'meilisearch_master_key' => getenv('MEILI_TEST_MASTER_KEY') ?: 'MASTER_KEY',
]);
$this->populateIndex();
}
/**
* Tests that error is logged when server has invalid master key added.
*
* When invalid master key is added and index needs to be indexed a logged
* error is expected.
*/
public function testLoggedErrorOnInvalidMasterKey(): void {
$mockLogger = $this->createMock(LoggerChannel::class);
$mockLogger->expects($this->once())->method('error');
$this->container->set('logger.channel.search_api_meilisearch', $mockLogger);
$this->prepareTestIndex(self::TEST_INDEX);
$this->index->getServerInstance()->setBackendConfig([
'meilisearch_host_address' => getenv('MEILI_TEST_HOST') ?: 'http://meilisearch',
'meilisearch_host_port' => getenv('MEILI_TEST_PORT') ?: '7700',
'meilisearch_master_key' => '',
]);
$this->populateIndex();
}
/**
* Populates the index with entities.
*/
protected function populateIndex(): void {
EntityTest::create([
'name' => 'Test entity',
])->save();
$this->index->indexItems();
}
/**
* {@inheritdoc}
*/
protected function getTestIndexes(): array {
return [
self::TEST_INDEX,
];
}
}
