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,
    ];
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc