/** @test */ public function it_should_not_call_remove_from_indices_if_afterUpdate_is_set_to_false() { $dummyModel = new DummyActiveRecordModel(); $dummyModel->attachBehavior('test', ['class' => SynchronousAutoIndexBehavior::class, 'afterUpdate' => false]); $this->dummyAlgoliaManager->shouldNotReceive('updateInIndices'); $dummyModel->trigger(ActiveRecord::EVENT_AFTER_UPDATE); }
/** @test */ public function it_can_clear_indices_for_given_active_record_class() { $activeRecord1 = new DummyActiveRecordModel(); $activeRecord1->test = 'test'; $activeRecord1->save(); $activeRecord2 = new DummyActiveRecordModel(); $activeRecord2->test = 'test'; $activeRecord2->save(); $index = $this->addSearchableObjectToIndex($activeRecord1); $this->addSearchableObjectToIndex($activeRecord2); $response = $this->algoliaManager->clearIndices(DummyActiveRecordModel::class); $index->waitTask($response[$index->indexName]['taskID']); $searchResult = $index->search('test'); $this->deleteIndex($index); $this->assertCount(0, $searchResult['hits']); }
/** @test */ public function it_can_be_searched_with_addittional_search_parameters() { $searchParameters = ['attributesToRetrieve' => 'firstname,lastname', 'hitsPerPage' => 50]; $this->dummyAlgoliaManager->shouldReceive('search')->once()->with(DummyActiveRecordModel::class, 'query string', $searchParameters)->andReturn('response'); $response = DummyActiveRecordModel::search('query string', $searchParameters); $this->assertEquals('response', $response); }