diff --git a/platform/search/src/services/GenericSearchProvider.js b/platform/search/src/services/GenericSearchProvider.js index 71dfe8c0ed..cc93655f45 100644 --- a/platform/search/src/services/GenericSearchProvider.js +++ b/platform/search/src/services/GenericSearchProvider.js @@ -121,9 +121,13 @@ define([ provider = this; mutationTopic.listen(function (mutatedObject) { - var id = mutatedObject.getId(); - provider.indexedIds[id] = false; - provider.scheduleForIndexing(id); + var status = mutatedObject.getCapability('status'); + if (!status || !status.get('editing')) { + provider.index( + mutatedObject.getId(), + mutatedObject.getModel() + ); + } }); }; diff --git a/platform/search/test/services/GenericSearchProviderSpec.js b/platform/search/test/services/GenericSearchProviderSpec.js index cc80e4210d..97f12966b1 100644 --- a/platform/search/test/services/GenericSearchProviderSpec.js +++ b/platform/search/test/services/GenericSearchProviderSpec.js @@ -99,12 +99,19 @@ define([ .toHaveBeenCalledWith(jasmine.any(Function)); }); - it('reschedules indexing when mutation occurs', function () { + it('re-indexes when mutation occurs', function () { var mockDomainObject = - jasmine.createSpyObj('domainObj', ['getId']); + jasmine.createSpyObj('domainObj', [ + 'getId', + 'getModel', + 'getCapability' + ]), + testModel = { some: 'model' }; mockDomainObject.getId.andReturn("some-id"); + mockDomainObject.getModel.andReturn(testModel); + spyOn(provider, 'index').andCallThrough(); mutationTopic.listen.mostRecentCall.args[0](mockDomainObject); - expect(provider.scheduleForIndexing).toHaveBeenCalledWith('some-id'); + expect(provider.index).toHaveBeenCalledWith('some-id', testModel); }); it('starts indexing roots', function () {