Skip to content

Commit

Permalink
Add test
Browse files Browse the repository at this point in the history
  • Loading branch information
ol0lll committed Dec 11, 2024
1 parent 4f98108 commit b7f0252
Showing 1 changed file with 116 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
<?php

namespace Drupal\Tests\thunder_gqls\Kernel\DataProducer;

use Drupal\search_api\Entity\Index;
use Drupal\search_api\Entity\Server;
use Drupal\Tests\graphql\Kernel\GraphQLTestBase;

/**
* Test entities_with_term data producer.
*
* @group Thunder
*/
class ThunderSearchApiTest extends GraphQLTestBase {

/**
* {@inheritdoc}
*/
protected static $modules = [
'search_api',
'search_api_test',
'thunder_gqls',
];

/**
* The search server used for testing.
*
* @var \Drupal\search_api\ServerInterface
*/
protected $server;

/**
* The search index used for testing.
*
* @var \Drupal\search_api\IndexInterface
*/
protected $index;

/**
* {@inheritdoc}
*/
public function setUp(): void {
parent::setUp();

$this->installSchema('search_api', [
'search_api_item',
]);
$this->installEntitySchema('search_api_task');
$this->installConfig('search_api');

// Create a test server.
$this->server = Server::create([
'name' => 'Test Server',
'id' => 'test_server',
'status' => 1,
'backend' => 'search_api_test',
]);
$this->server->save();

$this->index = Index::create([
'name' => 'Test Index',
'id' => 'test_index',
'status' => 1,
'tracker_settings' => [
'default' => [],
],
'datasource_settings' => [
'entity:node' => [],
],
'server' => $this->server->id(),
'options' => ['index_directly' => FALSE],
]);
$this->index->save();

$schema = <<<GQL
type Query {
search: SearchApiResult
}
type SearchApiResult {
total: Int!
}
GQL;

$this->setUpSchema($schema);
}

/**
* Test cache metadata for the query.
*/
public function testQueryCacheMetadata(): void {
$query = <<<GQL
query {
search {
total
}
}
GQL;

$this->mockResolver('Query', 'search',
$this->builder->produce('thunder_search_api')
->map('index', $this->builder->fromValue('test_index'))
->map('offset', $this->builder->fromValue(0))
->map('limit', $this->builder->fromValue(20))
);
$this->mockResolver('SearchApiResult', 'total', $this->builder->fromValue(1));

$metadata = $this->defaultCacheMetaData();
$metadata->setCacheContexts(['languages:language_interface', 'user.permissions', 'user.node_grants:view']);
$metadata->addCacheTags(['config:search_api.index.test_index', 'node_list']);

$this->assertResults($query, [], [
'search' => ['total' => '1'],
], $metadata);
}

}

0 comments on commit b7f0252

Please sign in to comment.