diff --git a/src/services/schema/update/analyzer/mongo-collections-analyzer.js b/src/services/schema/update/analyzer/mongo-collections-analyzer.js index f7ae4452a..08ba5c227 100644 --- a/src/services/schema/update/analyzer/mongo-collections-analyzer.js +++ b/src/services/schema/update/analyzer/mongo-collections-analyzer.js @@ -186,7 +186,7 @@ class MongoCollectionsAnalyzer { if (err) { if ( err.message && - (err.message.startsWith('CMD_NOT_ALLOWED') || err.message.startsWith('MapReduce')) + (err.message.startsWith('CMD_NOT_ALLOWED') || /mapreduce/gim.test(err.message)) ) { return resolve(MAP_REDUCE_ERROR_STRING); } diff --git a/test/services/analyzer/mongo-collections-analyzer.test.js b/test/services/analyzer/mongo-collections-analyzer.test.js index cef188877..33eedd13b 100644 --- a/test/services/analyzer/mongo-collections-analyzer.test.js +++ b/test/services/analyzer/mongo-collections-analyzer.test.js @@ -1206,6 +1206,26 @@ describe('services > mongoCollectionsAnalyzer', () => { }); }); + describe('when there is a message containing mapReduce', () => { + it('should resolve an error and display a log', async () => { + expect.assertions(2); + + const analyzer = new MongoCollectionsAnalyzer(makeContext()); + + const resolve = jest.fn(); + const reject = jest.fn(); + + const callback = analyzer.mapReduceErrors(resolve, reject); + + // Cosmos db from Azure error message + const error = { message: 'MongoError: Command mapReduce not supported.' }; + callback(error, null); + + expect(resolve).toHaveBeenCalledTimes(1); + expect(resolve).toHaveBeenLastCalledWith('MapReduceError'); + }); + }); + describe('when there is "CommandNotSupportedOnView" codeName', () => { it('should resolve an error', async () => { expect.assertions(2);