From b7f02525a2fdd20434bb5f158404f4fdc6c736a8 Mon Sep 17 00:00:00 2001 From: Killesreiter Volker Date: Wed, 11 Dec 2024 16:20:49 +0100 Subject: [PATCH] Add test --- .../DataProducer/ThunderSearchApiTest.php | 116 ++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 modules/thunder_gqls/tests/src/Kernel/DataProducer/ThunderSearchApiTest.php diff --git a/modules/thunder_gqls/tests/src/Kernel/DataProducer/ThunderSearchApiTest.php b/modules/thunder_gqls/tests/src/Kernel/DataProducer/ThunderSearchApiTest.php new file mode 100644 index 000000000..cd85c2249 --- /dev/null +++ b/modules/thunder_gqls/tests/src/Kernel/DataProducer/ThunderSearchApiTest.php @@ -0,0 +1,116 @@ +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 = <<setUpSchema($schema); + } + + /** + * Test cache metadata for the query. + */ + public function testQueryCacheMetadata(): void { + $query = <<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); + } + +}