protected function BackendTest::updateIndex in Search API 8
Checks whether changes to the index's fields are picked up by the server.
Overrides BackendTestBase::updateIndex
File
- modules/
search_api_db/ tests/ src/ Kernel/ BackendTest.php, line 177
Class
- BackendTest
- Tests index and search capabilities using the Database search backend.
Namespace
Drupal\Tests\search_api_db\KernelCode
protected function updateIndex() {
/** @var \Drupal\search_api\IndexInterface $index */
$index = $this
->getIndex();
// Remove a field from the index and check if the change is matched in the
// server configuration.
$field = $index
->getField('keywords');
if (!$field) {
throw new \Exception();
}
$index
->removeField('keywords');
$index
->save();
$index_fields = array_keys($index
->getFields());
// Include the three "magic" fields we're indexing with the DB backend.
$index_fields[] = 'search_api_datasource';
$index_fields[] = 'search_api_language';
$db_info = $this
->getIndexDbInfo();
$server_fields = array_keys($db_info['field_tables']);
sort($index_fields);
sort($server_fields);
$this
->assertEquals($index_fields, $server_fields);
// Add the field back for the next assertions.
$index
->addField($field)
->save();
}