From b0af012288ccc4568f7619d4a9799d756cc154c1 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Wed, 5 May 2021 18:13:44 +0200 Subject: [PATCH 1/3] feat(shell-api): provide bulk.find().delete() instead of .remove() This happens to account for the changes made in NODE-2978 (https://github.com/mongodb/node-mongodb-native/commit/c3a183938289). The old names are kept as deprecated aliases. --- packages/shell-api/src/bulk.spec.ts | 52 ++++++++++++++++++++++++----- packages/shell-api/src/bulk.ts | 22 +++++++++--- 2 files changed, 60 insertions(+), 14 deletions(-) diff --git a/packages/shell-api/src/bulk.spec.ts b/packages/shell-api/src/bulk.spec.ts index 1400a222fe..3a47d54d00 100644 --- a/packages/shell-api/src/bulk.spec.ts +++ b/packages/shell-api/src/bulk.spec.ts @@ -280,9 +280,9 @@ describe('Bulk API', () => { }); describe('remove', () => { - it('calls serviceProviderBulkOp.remove and returns parent', () => { + it('calls serviceProviderBulkOp.delete and returns parent', () => { bulkFindOp.remove(); - expect(innerStub.remove).to.have.been.calledWith(); + expect(innerStub.delete).to.have.been.calledWith(); expect(bulk._batchCounts.nRemoveOps).to.equal(1); }); @@ -290,27 +290,61 @@ describe('Bulk API', () => { expect(bulkFindOp.remove()).to.equal(bulk); }); - it('throws if serviceProviderBulkOp.remove throws', async() => { + it('throws if serviceProviderBulkOp.delete throws', async() => { const expectedError = new Error(); - innerStub.remove.throws(expectedError); + innerStub.delete.throws(expectedError); expect(() => bulkFindOp.remove()).to.throw(expectedError); }); }); describe('removeOne', () => { - it('calls serviceProviderBulkOp.removeOne and returns parent', () => { + it('calls serviceProviderBulkOp.deleteOne and returns parent', () => { bulkFindOp.removeOne(); - expect(innerStub.removeOne).to.have.been.calledWith(); + expect(innerStub.deleteOne).to.have.been.calledWith(); expect(bulk._batchCounts.nRemoveOps).to.equal(1); }); it('returns self', () => { - expect(bulkFindOp.removeOne()).to.equal(bulk); + expect(bulkFindOp.deleteOne()).to.equal(bulk); }); - it('throws if serviceProviderBulkOp.removeOne throws', async() => { + it('throws if serviceProviderBulkOp.deleteOne throws', async() => { const expectedError = new Error(); innerStub.removeOne.throws(expectedError); - expect(() => bulkFindOp.removeOne()).to.throw(expectedError); + expect(() => bulkFindOp.deleteOne()).to.throw(expectedError); + }); + }); + describe('delete', () => { + it('calls serviceProviderBulkOp.delete and returns parent', () => { + bulkFindOp.delete(); + expect(innerStub.delete).to.have.been.calledWith(); + expect(bulk._batchCounts.ndeleteOps).to.equal(1); + }); + + it('returns self', () => { + expect(bulkFindOp.delete()).to.equal(bulk); + }); + + it('throws if serviceProviderBulkOp.delete throws', async() => { + const expectedError = new Error(); + innerStub.delete.throws(expectedError); + expect(() => bulkFindOp.delete()).to.throw(expectedError); + }); + }); + describe('deleteOne', () => { + it('calls serviceProviderBulkOp.deleteOne and returns parent', () => { + bulkFindOp.deleteOne(); + expect(innerStub.deleteOne).to.have.been.calledWith(); + expect(bulk._batchCounts.ndeleteOps).to.equal(1); + }); + + it('returns self', () => { + expect(bulkFindOp.deleteOne()).to.equal(bulk); + }); + + it('throws if serviceProviderBulkOp.deleteOne throws', async() => { + const expectedError = new Error(); + innerStub.deleteOne.throws(expectedError); + expect(() => bulkFindOp.deleteOne()).to.throw(expectedError); }); }); describe('upsert', () => { diff --git a/packages/shell-api/src/bulk.ts b/packages/shell-api/src/bulk.ts index 494ef6db8c..8c71c5d42b 100644 --- a/packages/shell-api/src/bulk.ts +++ b/packages/shell-api/src/bulk.ts @@ -1,4 +1,4 @@ -import { hasAsyncChild, returnsPromise, ShellApiClass, shellApiClassDefault, returnType } from './decorators'; +import { hasAsyncChild, returnsPromise, ShellApiClass, shellApiClassDefault, returnType, deprecated } from './decorators'; import Mongo from './mongo'; import { CommonErrors, MongoshInvalidInputError, MongoshUnimplementedError } from '@mongosh/errors'; import { @@ -55,19 +55,31 @@ export class BulkFindOp extends ShellApiClass { } @returnType('Bulk') - remove(): Bulk { + delete(): Bulk { this._parentBulk._batchCounts.nRemoveOps++; - this._serviceProviderBulkFindOp.remove(); + this._serviceProviderBulkFindOp.delete(); return this._parentBulk; } @returnType('Bulk') - removeOne(): Bulk { + deleteOne(): Bulk { this._parentBulk._batchCounts.nRemoveOps++; - this._serviceProviderBulkFindOp.removeOne(); + this._serviceProviderBulkFindOp.deleteOne(); return this._parentBulk; } + @returnType('Bulk') + @deprecated + remove(): Bulk { + return this.delete(); + } + + @returnType('Bulk') + @deprecated + removeOne(): Bulk { + return this.deleteOne(); + } + @returnType('Bulk') replaceOne(replacement: Document): Bulk { this._parentBulk._batchCounts.nUpdateOps++; From c4051c65613a01b7d4a608121a434d2e100630e4 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Wed, 5 May 2021 21:28:21 +0200 Subject: [PATCH 2/3] fixup --- packages/i18n/src/locales/en_US.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/i18n/src/locales/en_US.ts b/packages/i18n/src/locales/en_US.ts index 0db3384350..dee047ca9d 100644 --- a/packages/i18n/src/locales/en_US.ts +++ b/packages/i18n/src/locales/en_US.ts @@ -1979,6 +1979,16 @@ const translations: Catalog = { description: 'Adds an removeOne to the bulk operation.', example: 'bulkOp.find(...).removeOne()', }, + 'delete': { + link: 'https://docs.mongodb.com/manual/reference/method/Bulk.find.delete/', + description: 'Adds an delete to the bulk operation.', + example: 'bulkOp.find(...).delete()', + }, + 'deleteOne': { + link: 'https://docs.mongodb.com/manual/reference/method/Bulk.find.deleteOne/', + description: 'Adds an deleteOne to the bulk operation.', + example: 'bulkOp.find(...).deleteOne()', + }, 'replaceOne': { link: 'https://docs.mongodb.com/manual/reference/method/Bulk.find.replaceOne/', description: 'Adds an replaceOne to the bulk operation.', From a712facadcdf47d228b79df70e8fa7da61313925 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Thu, 6 May 2021 11:23:36 +0200 Subject: [PATCH 3/3] fixup! fixup --- packages/shell-api/src/bulk.spec.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/shell-api/src/bulk.spec.ts b/packages/shell-api/src/bulk.spec.ts index 3a47d54d00..53b5e5a421 100644 --- a/packages/shell-api/src/bulk.spec.ts +++ b/packages/shell-api/src/bulk.spec.ts @@ -309,15 +309,15 @@ describe('Bulk API', () => { it('throws if serviceProviderBulkOp.deleteOne throws', async() => { const expectedError = new Error(); - innerStub.removeOne.throws(expectedError); - expect(() => bulkFindOp.deleteOne()).to.throw(expectedError); + innerStub.deleteOne.throws(expectedError); + expect(() => bulkFindOp.removeOne()).to.throw(expectedError); }); }); describe('delete', () => { it('calls serviceProviderBulkOp.delete and returns parent', () => { bulkFindOp.delete(); expect(innerStub.delete).to.have.been.calledWith(); - expect(bulk._batchCounts.ndeleteOps).to.equal(1); + expect(bulk._batchCounts.nRemoveOps).to.equal(1); }); it('returns self', () => { @@ -334,7 +334,7 @@ describe('Bulk API', () => { it('calls serviceProviderBulkOp.deleteOne and returns parent', () => { bulkFindOp.deleteOne(); expect(innerStub.deleteOne).to.have.been.calledWith(); - expect(bulk._batchCounts.ndeleteOps).to.equal(1); + expect(bulk._batchCounts.nRemoveOps).to.equal(1); }); it('returns self', () => {