diff --git a/src/v1/publisher_client.ts b/src/v1/publisher_client.ts index 3b127acfb..b9b538214 100644 --- a/src/v1/publisher_client.ts +++ b/src/v1/publisher_client.ts @@ -490,7 +490,7 @@ export class PublisherClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - name: request.name || '', + name: request.name ?? '', }); this.initialize(); return this.innerApiCalls.createTopic(request, options, callback); @@ -578,7 +578,7 @@ export class PublisherClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - 'topic.name': request.topic!.name || '', + 'topic.name': request.topic!.name ?? '', }); this.initialize(); return this.innerApiCalls.updateTopic(request, options, callback); @@ -663,7 +663,7 @@ export class PublisherClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - topic: request.topic || '', + topic: request.topic ?? '', }); this.initialize(); return this.innerApiCalls.publish(request, options, callback); @@ -745,7 +745,7 @@ export class PublisherClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - topic: request.topic || '', + topic: request.topic ?? '', }); this.initialize(); return this.innerApiCalls.getTopic(request, options, callback); @@ -831,7 +831,7 @@ export class PublisherClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - topic: request.topic || '', + topic: request.topic ?? '', }); this.initialize(); return this.innerApiCalls.deleteTopic(request, options, callback); @@ -916,7 +916,7 @@ export class PublisherClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - subscription: request.subscription || '', + subscription: request.subscription ?? '', }); this.initialize(); return this.innerApiCalls.detachSubscription(request, options, callback); @@ -1010,7 +1010,7 @@ export class PublisherClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - project: request.project || '', + project: request.project ?? '', }); this.initialize(); return this.innerApiCalls.listTopics(request, options, callback); @@ -1051,7 +1051,7 @@ export class PublisherClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - project: request.project || '', + project: request.project ?? '', }); const defaultCallSettings = this._defaults['listTopics']; const callSettings = defaultCallSettings.merge(options); @@ -1099,7 +1099,7 @@ export class PublisherClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - project: request.project || '', + project: request.project ?? '', }); const defaultCallSettings = this._defaults['listTopics']; const callSettings = defaultCallSettings.merge(options); @@ -1206,7 +1206,7 @@ export class PublisherClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - topic: request.topic || '', + topic: request.topic ?? '', }); this.initialize(); return this.innerApiCalls.listTopicSubscriptions( @@ -1251,7 +1251,7 @@ export class PublisherClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - topic: request.topic || '', + topic: request.topic ?? '', }); const defaultCallSettings = this._defaults['listTopicSubscriptions']; const callSettings = defaultCallSettings.merge(options); @@ -1299,7 +1299,7 @@ export class PublisherClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - topic: request.topic || '', + topic: request.topic ?? '', }); const defaultCallSettings = this._defaults['listTopicSubscriptions']; const callSettings = defaultCallSettings.merge(options); @@ -1404,7 +1404,7 @@ export class PublisherClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - topic: request.topic || '', + topic: request.topic ?? '', }); this.initialize(); return this.innerApiCalls.listTopicSnapshots(request, options, callback); @@ -1445,7 +1445,7 @@ export class PublisherClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - topic: request.topic || '', + topic: request.topic ?? '', }); const defaultCallSettings = this._defaults['listTopicSnapshots']; const callSettings = defaultCallSettings.merge(options); @@ -1493,7 +1493,7 @@ export class PublisherClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - topic: request.topic || '', + topic: request.topic ?? '', }); const defaultCallSettings = this._defaults['listTopicSnapshots']; const callSettings = defaultCallSettings.merge(options); diff --git a/src/v1/schema_service_client.ts b/src/v1/schema_service_client.ts index b832a5889..6f84acc7b 100644 --- a/src/v1/schema_service_client.ts +++ b/src/v1/schema_service_client.ts @@ -438,7 +438,7 @@ export class SchemaServiceClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - parent: request.parent || '', + parent: request.parent ?? '', }); this.initialize(); return this.innerApiCalls.createSchema(request, options, callback); @@ -524,7 +524,7 @@ export class SchemaServiceClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - name: request.name || '', + name: request.name ?? '', }); this.initialize(); return this.innerApiCalls.getSchema(request, options, callback); @@ -606,7 +606,7 @@ export class SchemaServiceClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - name: request.name || '', + name: request.name ?? '', }); this.initialize(); return this.innerApiCalls.deleteSchema(request, options, callback); @@ -690,7 +690,7 @@ export class SchemaServiceClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - parent: request.parent || '', + parent: request.parent ?? '', }); this.initialize(); return this.innerApiCalls.validateSchema(request, options, callback); @@ -782,7 +782,7 @@ export class SchemaServiceClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - parent: request.parent || '', + parent: request.parent ?? '', }); this.initialize(); return this.innerApiCalls.validateMessage(request, options, callback); @@ -880,7 +880,7 @@ export class SchemaServiceClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - parent: request.parent || '', + parent: request.parent ?? '', }); this.initialize(); return this.innerApiCalls.listSchemas(request, options, callback); @@ -925,7 +925,7 @@ export class SchemaServiceClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - parent: request.parent || '', + parent: request.parent ?? '', }); const defaultCallSettings = this._defaults['listSchemas']; const callSettings = defaultCallSettings.merge(options); @@ -977,7 +977,7 @@ export class SchemaServiceClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - parent: request.parent || '', + parent: request.parent ?? '', }); const defaultCallSettings = this._defaults['listSchemas']; const callSettings = defaultCallSettings.merge(options); diff --git a/src/v1/subscriber_client.ts b/src/v1/subscriber_client.ts index 14e3fd07d..f0dbfd657 100644 --- a/src/v1/subscriber_client.ts +++ b/src/v1/subscriber_client.ts @@ -596,7 +596,7 @@ export class SubscriberClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - name: request.name || '', + name: request.name ?? '', }); this.initialize(); return this.innerApiCalls.createSubscription(request, options, callback); @@ -678,7 +678,7 @@ export class SubscriberClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - subscription: request.subscription || '', + subscription: request.subscription ?? '', }); this.initialize(); return this.innerApiCalls.getSubscription(request, options, callback); @@ -763,7 +763,7 @@ export class SubscriberClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - 'subscription.name': request.subscription!.name || '', + 'subscription.name': request.subscription!.name ?? '', }); this.initialize(); return this.innerApiCalls.updateSubscription(request, options, callback); @@ -849,7 +849,7 @@ export class SubscriberClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - subscription: request.subscription || '', + subscription: request.subscription ?? '', }); this.initialize(); return this.innerApiCalls.deleteSubscription(request, options, callback); @@ -946,7 +946,7 @@ export class SubscriberClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - subscription: request.subscription || '', + subscription: request.subscription ?? '', }); this.initialize(); return this.innerApiCalls.modifyAckDeadline(request, options, callback); @@ -1038,7 +1038,7 @@ export class SubscriberClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - subscription: request.subscription || '', + subscription: request.subscription ?? '', }); this.initialize(); return this.innerApiCalls.acknowledge(request, options, callback); @@ -1134,7 +1134,7 @@ export class SubscriberClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - subscription: request.subscription || '', + subscription: request.subscription ?? '', }); this.initialize(); return this.innerApiCalls.pull(request, options, callback); @@ -1228,7 +1228,7 @@ export class SubscriberClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - subscription: request.subscription || '', + subscription: request.subscription ?? '', }); this.initialize(); return this.innerApiCalls.modifyPushConfig(request, options, callback); @@ -1314,7 +1314,7 @@ export class SubscriberClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - snapshot: request.snapshot || '', + snapshot: request.snapshot ?? '', }); this.initialize(); return this.innerApiCalls.getSnapshot(request, options, callback); @@ -1428,7 +1428,7 @@ export class SubscriberClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - name: request.name || '', + name: request.name ?? '', }); this.initialize(); return this.innerApiCalls.createSnapshot(request, options, callback); @@ -1517,7 +1517,7 @@ export class SubscriberClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - 'snapshot.name': request.snapshot!.name || '', + 'snapshot.name': request.snapshot!.name ?? '', }); this.initialize(); return this.innerApiCalls.updateSnapshot(request, options, callback); @@ -1607,7 +1607,7 @@ export class SubscriberClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - snapshot: request.snapshot || '', + snapshot: request.snapshot ?? '', }); this.initialize(); return this.innerApiCalls.deleteSnapshot(request, options, callback); @@ -1710,7 +1710,7 @@ export class SubscriberClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - subscription: request.subscription || '', + subscription: request.subscription ?? '', }); this.initialize(); return this.innerApiCalls.seek(request, options, callback); @@ -1828,7 +1828,7 @@ export class SubscriberClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - project: request.project || '', + project: request.project ?? '', }); this.initialize(); return this.innerApiCalls.listSubscriptions(request, options, callback); @@ -1869,7 +1869,7 @@ export class SubscriberClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - project: request.project || '', + project: request.project ?? '', }); const defaultCallSettings = this._defaults['listSubscriptions']; const callSettings = defaultCallSettings.merge(options); @@ -1917,7 +1917,7 @@ export class SubscriberClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - project: request.project || '', + project: request.project ?? '', }); const defaultCallSettings = this._defaults['listSubscriptions']; const callSettings = defaultCallSettings.merge(options); @@ -2020,7 +2020,7 @@ export class SubscriberClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - project: request.project || '', + project: request.project ?? '', }); this.initialize(); return this.innerApiCalls.listSnapshots(request, options, callback); @@ -2061,7 +2061,7 @@ export class SubscriberClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - project: request.project || '', + project: request.project ?? '', }); const defaultCallSettings = this._defaults['listSnapshots']; const callSettings = defaultCallSettings.merge(options); @@ -2109,7 +2109,7 @@ export class SubscriberClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - project: request.project || '', + project: request.project ?? '', }); const defaultCallSettings = this._defaults['listSnapshots']; const callSettings = defaultCallSettings.merge(options); diff --git a/test/gapic_publisher_v1.ts b/test/gapic_publisher_v1.ts index 0e93f3ad5..753c73cda 100644 --- a/test/gapic_publisher_v1.ts +++ b/test/gapic_publisher_v1.ts @@ -27,6 +27,21 @@ import {PassThrough} from 'stream'; import {protobuf, IamProtos} from 'google-gax'; +// Dynamically loaded proto JSON is needed to get the type information +// to fill in default values for request objects +const root = protobuf.Root.fromJSON( + require('../protos/protos.json') +).resolveAll(); + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +function getTypeDefaultValue(typeName: string, fields: string[]) { + let type = root.lookupType(typeName) as protobuf.Type; + for (const field of fields.slice(0, -1)) { + type = type.fields[field]?.resolvedType as protobuf.Type; + } + return type.fields[fields[fields.length - 1]]?.defaultValue; +} + function generateSampleMessage(instance: T) { const filledObject = ( instance.constructor as typeof protobuf.Message @@ -220,26 +235,23 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.Topic() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('Topic', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.Topic() ); client.innerApiCalls.createTopic = stubSimpleCall(expectedResponse); const [response] = await client.createTopic(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.createTopic as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.createTopic as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createTopic as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes createTopic without error using callback', async () => { @@ -251,15 +263,9 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.Topic() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('Topic', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.Topic() ); @@ -282,11 +288,14 @@ describe('v1.PublisherClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.createTopic as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.createTopic as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createTopic as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes createTopic with error', async () => { @@ -298,26 +307,23 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.Topic() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('Topic', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.createTopic = stubSimpleCall( undefined, expectedError ); await assert.rejects(client.createTopic(request), expectedError); - assert( - (client.innerApiCalls.createTopic as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.createTopic as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createTopic as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes createTopic with closed client', async () => { @@ -329,7 +335,8 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.Topic() ); - request.name = ''; + const defaultValue1 = getTypeDefaultValue('Topic', ['name']); + request.name = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.createTopic(request), expectedError); @@ -346,27 +353,27 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.UpdateTopicRequest() ); - request.topic = {}; - request.topic.name = ''; - const expectedHeaderRequestParams = 'topic.name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + request.topic ??= {}; + const defaultValue1 = getTypeDefaultValue('UpdateTopicRequest', [ + 'topic', + 'name', + ]); + request.topic.name = defaultValue1; + const expectedHeaderRequestParams = `topic.name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.Topic() ); client.innerApiCalls.updateTopic = stubSimpleCall(expectedResponse); const [response] = await client.updateTopic(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.updateTopic as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.updateTopic as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateTopic as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes updateTopic without error using callback', async () => { @@ -378,16 +385,13 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.UpdateTopicRequest() ); - request.topic = {}; - request.topic.name = ''; - const expectedHeaderRequestParams = 'topic.name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + request.topic ??= {}; + const defaultValue1 = getTypeDefaultValue('UpdateTopicRequest', [ + 'topic', + 'name', + ]); + request.topic.name = defaultValue1; + const expectedHeaderRequestParams = `topic.name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.Topic() ); @@ -410,11 +414,14 @@ describe('v1.PublisherClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.updateTopic as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.updateTopic as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateTopic as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes updateTopic with error', async () => { @@ -426,27 +433,27 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.UpdateTopicRequest() ); - request.topic = {}; - request.topic.name = ''; - const expectedHeaderRequestParams = 'topic.name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + request.topic ??= {}; + const defaultValue1 = getTypeDefaultValue('UpdateTopicRequest', [ + 'topic', + 'name', + ]); + request.topic.name = defaultValue1; + const expectedHeaderRequestParams = `topic.name=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.updateTopic = stubSimpleCall( undefined, expectedError ); await assert.rejects(client.updateTopic(request), expectedError); - assert( - (client.innerApiCalls.updateTopic as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.updateTopic as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateTopic as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes updateTopic with closed client', async () => { @@ -458,8 +465,12 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.UpdateTopicRequest() ); - request.topic = {}; - request.topic.name = ''; + request.topic ??= {}; + const defaultValue1 = getTypeDefaultValue('UpdateTopicRequest', [ + 'topic', + 'name', + ]); + request.topic.name = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.updateTopic(request), expectedError); @@ -476,26 +487,23 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.PublishRequest() ); - request.topic = ''; - const expectedHeaderRequestParams = 'topic='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('PublishRequest', ['topic']); + request.topic = defaultValue1; + const expectedHeaderRequestParams = `topic=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.PublishResponse() ); client.innerApiCalls.publish = stubSimpleCall(expectedResponse); const [response] = await client.publish(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.publish as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = (client.innerApiCalls.publish as SinonStub).getCall( + 0 + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.publish as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes publish without error using callback', async () => { @@ -507,15 +515,9 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.PublishRequest() ); - request.topic = ''; - const expectedHeaderRequestParams = 'topic='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('PublishRequest', ['topic']); + request.topic = defaultValue1; + const expectedHeaderRequestParams = `topic=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.PublishResponse() ); @@ -538,11 +540,14 @@ describe('v1.PublisherClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.publish as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = (client.innerApiCalls.publish as SinonStub).getCall( + 0 + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.publish as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes publish with error', async () => { @@ -554,23 +559,20 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.PublishRequest() ); - request.topic = ''; - const expectedHeaderRequestParams = 'topic='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('PublishRequest', ['topic']); + request.topic = defaultValue1; + const expectedHeaderRequestParams = `topic=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.publish = stubSimpleCall(undefined, expectedError); await assert.rejects(client.publish(request), expectedError); - assert( - (client.innerApiCalls.publish as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = (client.innerApiCalls.publish as SinonStub).getCall( + 0 + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.publish as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes publish with closed client', async () => { @@ -582,7 +584,8 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.PublishRequest() ); - request.topic = ''; + const defaultValue1 = getTypeDefaultValue('PublishRequest', ['topic']); + request.topic = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.publish(request), expectedError); @@ -599,26 +602,23 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.GetTopicRequest() ); - request.topic = ''; - const expectedHeaderRequestParams = 'topic='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('GetTopicRequest', ['topic']); + request.topic = defaultValue1; + const expectedHeaderRequestParams = `topic=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.Topic() ); client.innerApiCalls.getTopic = stubSimpleCall(expectedResponse); const [response] = await client.getTopic(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.getTopic as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.getTopic as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getTopic as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes getTopic without error using callback', async () => { @@ -630,15 +630,9 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.GetTopicRequest() ); - request.topic = ''; - const expectedHeaderRequestParams = 'topic='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('GetTopicRequest', ['topic']); + request.topic = defaultValue1; + const expectedHeaderRequestParams = `topic=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.Topic() ); @@ -661,11 +655,14 @@ describe('v1.PublisherClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.getTopic as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.getTopic as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getTopic as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes getTopic with error', async () => { @@ -677,23 +674,20 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.GetTopicRequest() ); - request.topic = ''; - const expectedHeaderRequestParams = 'topic='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('GetTopicRequest', ['topic']); + request.topic = defaultValue1; + const expectedHeaderRequestParams = `topic=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.getTopic = stubSimpleCall(undefined, expectedError); await assert.rejects(client.getTopic(request), expectedError); - assert( - (client.innerApiCalls.getTopic as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.getTopic as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getTopic as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes getTopic with closed client', async () => { @@ -705,7 +699,8 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.GetTopicRequest() ); - request.topic = ''; + const defaultValue1 = getTypeDefaultValue('GetTopicRequest', ['topic']); + request.topic = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.getTopic(request), expectedError); @@ -722,26 +717,25 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.DeleteTopicRequest() ); - request.topic = ''; - const expectedHeaderRequestParams = 'topic='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('DeleteTopicRequest', [ + 'topic', + ]); + request.topic = defaultValue1; + const expectedHeaderRequestParams = `topic=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.protobuf.Empty() ); client.innerApiCalls.deleteTopic = stubSimpleCall(expectedResponse); const [response] = await client.deleteTopic(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.deleteTopic as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.deleteTopic as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteTopic as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes deleteTopic without error using callback', async () => { @@ -753,15 +747,11 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.DeleteTopicRequest() ); - request.topic = ''; - const expectedHeaderRequestParams = 'topic='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('DeleteTopicRequest', [ + 'topic', + ]); + request.topic = defaultValue1; + const expectedHeaderRequestParams = `topic=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.protobuf.Empty() ); @@ -784,11 +774,14 @@ describe('v1.PublisherClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.deleteTopic as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.deleteTopic as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteTopic as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes deleteTopic with error', async () => { @@ -800,26 +793,25 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.DeleteTopicRequest() ); - request.topic = ''; - const expectedHeaderRequestParams = 'topic='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('DeleteTopicRequest', [ + 'topic', + ]); + request.topic = defaultValue1; + const expectedHeaderRequestParams = `topic=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.deleteTopic = stubSimpleCall( undefined, expectedError ); await assert.rejects(client.deleteTopic(request), expectedError); - assert( - (client.innerApiCalls.deleteTopic as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.deleteTopic as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteTopic as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes deleteTopic with closed client', async () => { @@ -831,7 +823,10 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.DeleteTopicRequest() ); - request.topic = ''; + const defaultValue1 = getTypeDefaultValue('DeleteTopicRequest', [ + 'topic', + ]); + request.topic = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.deleteTopic(request), expectedError); @@ -848,15 +843,11 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.DetachSubscriptionRequest() ); - request.subscription = ''; - const expectedHeaderRequestParams = 'subscription='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('DetachSubscriptionRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; + const expectedHeaderRequestParams = `subscription=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.DetachSubscriptionResponse() ); @@ -864,11 +855,14 @@ describe('v1.PublisherClient', () => { stubSimpleCall(expectedResponse); const [response] = await client.detachSubscription(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.detachSubscription as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.detachSubscription as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.detachSubscription as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes detachSubscription without error using callback', async () => { @@ -880,15 +874,11 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.DetachSubscriptionRequest() ); - request.subscription = ''; - const expectedHeaderRequestParams = 'subscription='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('DetachSubscriptionRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; + const expectedHeaderRequestParams = `subscription=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.DetachSubscriptionResponse() ); @@ -911,11 +901,14 @@ describe('v1.PublisherClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.detachSubscription as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.detachSubscription as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.detachSubscription as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes detachSubscription with error', async () => { @@ -927,26 +920,25 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.DetachSubscriptionRequest() ); - request.subscription = ''; - const expectedHeaderRequestParams = 'subscription='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('DetachSubscriptionRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; + const expectedHeaderRequestParams = `subscription=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.detachSubscription = stubSimpleCall( undefined, expectedError ); await assert.rejects(client.detachSubscription(request), expectedError); - assert( - (client.innerApiCalls.detachSubscription as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.detachSubscription as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.detachSubscription as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes detachSubscription with closed client', async () => { @@ -958,7 +950,10 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.DetachSubscriptionRequest() ); - request.subscription = ''; + const defaultValue1 = getTypeDefaultValue('DetachSubscriptionRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.detachSubscription(request), expectedError); @@ -975,15 +970,11 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListTopicsRequest() ); - request.project = ''; - const expectedHeaderRequestParams = 'project='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ListTopicsRequest', [ + 'project', + ]); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1}`; const expectedResponse = [ generateSampleMessage(new protos.google.pubsub.v1.Topic()), generateSampleMessage(new protos.google.pubsub.v1.Topic()), @@ -992,11 +983,14 @@ describe('v1.PublisherClient', () => { client.innerApiCalls.listTopics = stubSimpleCall(expectedResponse); const [response] = await client.listTopics(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.listTopics as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.listTopics as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listTopics as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes listTopics without error using callback', async () => { @@ -1008,15 +1002,11 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListTopicsRequest() ); - request.project = ''; - const expectedHeaderRequestParams = 'project='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ListTopicsRequest', [ + 'project', + ]); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1}`; const expectedResponse = [ generateSampleMessage(new protos.google.pubsub.v1.Topic()), generateSampleMessage(new protos.google.pubsub.v1.Topic()), @@ -1041,11 +1031,14 @@ describe('v1.PublisherClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.listTopics as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.listTopics as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listTopics as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes listTopics with error', async () => { @@ -1057,26 +1050,25 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListTopicsRequest() ); - request.project = ''; - const expectedHeaderRequestParams = 'project='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ListTopicsRequest', [ + 'project', + ]); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.listTopics = stubSimpleCall( undefined, expectedError ); await assert.rejects(client.listTopics(request), expectedError); - assert( - (client.innerApiCalls.listTopics as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.listTopics as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listTopics as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes listTopicsStream without error', async () => { @@ -1088,8 +1080,11 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListTopicsRequest() ); - request.project = ''; - const expectedHeaderRequestParams = 'project='; + const defaultValue1 = getTypeDefaultValue('ListTopicsRequest', [ + 'project', + ]); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1}`; const expectedResponse = [ generateSampleMessage(new protos.google.pubsub.v1.Topic()), generateSampleMessage(new protos.google.pubsub.v1.Topic()), @@ -1117,11 +1112,12 @@ describe('v1.PublisherClient', () => { .getCall(0) .calledWith(client.innerApiCalls.listTopics, request) ); - assert.strictEqual( - (client.descriptors.page.listTopics.createStream as SinonStub).getCall( - 0 - ).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + assert( + (client.descriptors.page.listTopics.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); @@ -1134,8 +1130,11 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListTopicsRequest() ); - request.project = ''; - const expectedHeaderRequestParams = 'project='; + const defaultValue1 = getTypeDefaultValue('ListTopicsRequest', [ + 'project', + ]); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1}`; const expectedError = new Error('expected'); client.descriptors.page.listTopics.createStream = stubPageStreamingCall( undefined, @@ -1160,11 +1159,12 @@ describe('v1.PublisherClient', () => { .getCall(0) .calledWith(client.innerApiCalls.listTopics, request) ); - assert.strictEqual( - (client.descriptors.page.listTopics.createStream as SinonStub).getCall( - 0 - ).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + assert( + (client.descriptors.page.listTopics.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); @@ -1177,8 +1177,11 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListTopicsRequest() ); - request.project = ''; - const expectedHeaderRequestParams = 'project='; + const defaultValue1 = getTypeDefaultValue('ListTopicsRequest', [ + 'project', + ]); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1}`; const expectedResponse = [ generateSampleMessage(new protos.google.pubsub.v1.Topic()), generateSampleMessage(new protos.google.pubsub.v1.Topic()), @@ -1198,11 +1201,12 @@ describe('v1.PublisherClient', () => { ).args[1], request ); - assert.strictEqual( - (client.descriptors.page.listTopics.asyncIterate as SinonStub).getCall( - 0 - ).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + assert( + (client.descriptors.page.listTopics.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); @@ -1215,8 +1219,11 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListTopicsRequest() ); - request.project = ''; - const expectedHeaderRequestParams = 'project='; + const defaultValue1 = getTypeDefaultValue('ListTopicsRequest', [ + 'project', + ]); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1}`; const expectedError = new Error('expected'); client.descriptors.page.listTopics.asyncIterate = stubAsyncIterationCall( undefined, @@ -1235,11 +1242,12 @@ describe('v1.PublisherClient', () => { ).args[1], request ); - assert.strictEqual( - (client.descriptors.page.listTopics.asyncIterate as SinonStub).getCall( - 0 - ).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + assert( + (client.descriptors.page.listTopics.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); }); @@ -1254,25 +1262,25 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListTopicSubscriptionsRequest() ); - request.topic = ''; - const expectedHeaderRequestParams = 'topic='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue( + 'ListTopicSubscriptionsRequest', + ['topic'] + ); + request.topic = defaultValue1; + const expectedHeaderRequestParams = `topic=${defaultValue1}`; const expectedResponse = [new String(), new String(), new String()]; client.innerApiCalls.listTopicSubscriptions = stubSimpleCall(expectedResponse); const [response] = await client.listTopicSubscriptions(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.listTopicSubscriptions as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.listTopicSubscriptions as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listTopicSubscriptions as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes listTopicSubscriptions without error using callback', async () => { @@ -1284,15 +1292,12 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListTopicSubscriptionsRequest() ); - request.topic = ''; - const expectedHeaderRequestParams = 'topic='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue( + 'ListTopicSubscriptionsRequest', + ['topic'] + ); + request.topic = defaultValue1; + const expectedHeaderRequestParams = `topic=${defaultValue1}`; const expectedResponse = [new String(), new String(), new String()]; client.innerApiCalls.listTopicSubscriptions = stubSimpleCallWithCallback(expectedResponse); @@ -1310,11 +1315,14 @@ describe('v1.PublisherClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.listTopicSubscriptions as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.listTopicSubscriptions as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listTopicSubscriptions as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes listTopicSubscriptions with error', async () => { @@ -1326,15 +1334,12 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListTopicSubscriptionsRequest() ); - request.topic = ''; - const expectedHeaderRequestParams = 'topic='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue( + 'ListTopicSubscriptionsRequest', + ['topic'] + ); + request.topic = defaultValue1; + const expectedHeaderRequestParams = `topic=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.listTopicSubscriptions = stubSimpleCall( undefined, @@ -1344,11 +1349,14 @@ describe('v1.PublisherClient', () => { client.listTopicSubscriptions(request), expectedError ); - assert( - (client.innerApiCalls.listTopicSubscriptions as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.listTopicSubscriptions as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listTopicSubscriptions as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes listTopicSubscriptionsStream without error', async () => { @@ -1360,8 +1368,12 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListTopicSubscriptionsRequest() ); - request.topic = ''; - const expectedHeaderRequestParams = 'topic='; + const defaultValue1 = getTypeDefaultValue( + 'ListTopicSubscriptionsRequest', + ['topic'] + ); + request.topic = defaultValue1; + const expectedHeaderRequestParams = `topic=${defaultValue1}`; const expectedResponse = [new String(), new String(), new String()]; client.descriptors.page.listTopicSubscriptions.createStream = stubPageStreamingCall(expectedResponse); @@ -1388,12 +1400,15 @@ describe('v1.PublisherClient', () => { .getCall(0) .calledWith(client.innerApiCalls.listTopicSubscriptions, request) ); - assert.strictEqual( + assert( ( client.descriptors.page.listTopicSubscriptions .createStream as SinonStub - ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); @@ -1406,8 +1421,12 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListTopicSubscriptionsRequest() ); - request.topic = ''; - const expectedHeaderRequestParams = 'topic='; + const defaultValue1 = getTypeDefaultValue( + 'ListTopicSubscriptionsRequest', + ['topic'] + ); + request.topic = defaultValue1; + const expectedHeaderRequestParams = `topic=${defaultValue1}`; const expectedError = new Error('expected'); client.descriptors.page.listTopicSubscriptions.createStream = stubPageStreamingCall(undefined, expectedError); @@ -1433,12 +1452,15 @@ describe('v1.PublisherClient', () => { .getCall(0) .calledWith(client.innerApiCalls.listTopicSubscriptions, request) ); - assert.strictEqual( + assert( ( client.descriptors.page.listTopicSubscriptions .createStream as SinonStub - ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); @@ -1451,8 +1473,12 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListTopicSubscriptionsRequest() ); - request.topic = ''; - const expectedHeaderRequestParams = 'topic='; + const defaultValue1 = getTypeDefaultValue( + 'ListTopicSubscriptionsRequest', + ['topic'] + ); + request.topic = defaultValue1; + const expectedHeaderRequestParams = `topic=${defaultValue1}`; const expectedResponse = [new String(), new String(), new String()]; client.descriptors.page.listTopicSubscriptions.asyncIterate = stubAsyncIterationCall(expectedResponse); @@ -1469,12 +1495,15 @@ describe('v1.PublisherClient', () => { ).getCall(0).args[1], request ); - assert.strictEqual( + assert( ( client.descriptors.page.listTopicSubscriptions .asyncIterate as SinonStub - ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); @@ -1487,8 +1516,12 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListTopicSubscriptionsRequest() ); - request.topic = ''; - const expectedHeaderRequestParams = 'topic='; + const defaultValue1 = getTypeDefaultValue( + 'ListTopicSubscriptionsRequest', + ['topic'] + ); + request.topic = defaultValue1; + const expectedHeaderRequestParams = `topic=${defaultValue1}`; const expectedError = new Error('expected'); client.descriptors.page.listTopicSubscriptions.asyncIterate = stubAsyncIterationCall(undefined, expectedError); @@ -1506,12 +1539,15 @@ describe('v1.PublisherClient', () => { ).getCall(0).args[1], request ); - assert.strictEqual( + assert( ( client.descriptors.page.listTopicSubscriptions .asyncIterate as SinonStub - ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); }); @@ -1526,25 +1562,24 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListTopicSnapshotsRequest() ); - request.topic = ''; - const expectedHeaderRequestParams = 'topic='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ListTopicSnapshotsRequest', [ + 'topic', + ]); + request.topic = defaultValue1; + const expectedHeaderRequestParams = `topic=${defaultValue1}`; const expectedResponse = [new String(), new String(), new String()]; client.innerApiCalls.listTopicSnapshots = stubSimpleCall(expectedResponse); const [response] = await client.listTopicSnapshots(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.listTopicSnapshots as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.listTopicSnapshots as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listTopicSnapshots as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes listTopicSnapshots without error using callback', async () => { @@ -1556,15 +1591,11 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListTopicSnapshotsRequest() ); - request.topic = ''; - const expectedHeaderRequestParams = 'topic='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ListTopicSnapshotsRequest', [ + 'topic', + ]); + request.topic = defaultValue1; + const expectedHeaderRequestParams = `topic=${defaultValue1}`; const expectedResponse = [new String(), new String(), new String()]; client.innerApiCalls.listTopicSnapshots = stubSimpleCallWithCallback(expectedResponse); @@ -1582,11 +1613,14 @@ describe('v1.PublisherClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.listTopicSnapshots as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.listTopicSnapshots as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listTopicSnapshots as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes listTopicSnapshots with error', async () => { @@ -1598,26 +1632,25 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListTopicSnapshotsRequest() ); - request.topic = ''; - const expectedHeaderRequestParams = 'topic='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ListTopicSnapshotsRequest', [ + 'topic', + ]); + request.topic = defaultValue1; + const expectedHeaderRequestParams = `topic=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.listTopicSnapshots = stubSimpleCall( undefined, expectedError ); await assert.rejects(client.listTopicSnapshots(request), expectedError); - assert( - (client.innerApiCalls.listTopicSnapshots as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.listTopicSnapshots as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listTopicSnapshots as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes listTopicSnapshotsStream without error', async () => { @@ -1629,8 +1662,11 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListTopicSnapshotsRequest() ); - request.topic = ''; - const expectedHeaderRequestParams = 'topic='; + const defaultValue1 = getTypeDefaultValue('ListTopicSnapshotsRequest', [ + 'topic', + ]); + request.topic = defaultValue1; + const expectedHeaderRequestParams = `topic=${defaultValue1}`; const expectedResponse = [new String(), new String(), new String()]; client.descriptors.page.listTopicSnapshots.createStream = stubPageStreamingCall(expectedResponse); @@ -1654,11 +1690,12 @@ describe('v1.PublisherClient', () => { .getCall(0) .calledWith(client.innerApiCalls.listTopicSnapshots, request) ); - assert.strictEqual( - ( - client.descriptors.page.listTopicSnapshots.createStream as SinonStub - ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + assert( + (client.descriptors.page.listTopicSnapshots.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); @@ -1671,8 +1708,11 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListTopicSnapshotsRequest() ); - request.topic = ''; - const expectedHeaderRequestParams = 'topic='; + const defaultValue1 = getTypeDefaultValue('ListTopicSnapshotsRequest', [ + 'topic', + ]); + request.topic = defaultValue1; + const expectedHeaderRequestParams = `topic=${defaultValue1}`; const expectedError = new Error('expected'); client.descriptors.page.listTopicSnapshots.createStream = stubPageStreamingCall(undefined, expectedError); @@ -1695,11 +1735,12 @@ describe('v1.PublisherClient', () => { .getCall(0) .calledWith(client.innerApiCalls.listTopicSnapshots, request) ); - assert.strictEqual( - ( - client.descriptors.page.listTopicSnapshots.createStream as SinonStub - ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + assert( + (client.descriptors.page.listTopicSnapshots.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); @@ -1712,8 +1753,11 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListTopicSnapshotsRequest() ); - request.topic = ''; - const expectedHeaderRequestParams = 'topic='; + const defaultValue1 = getTypeDefaultValue('ListTopicSnapshotsRequest', [ + 'topic', + ]); + request.topic = defaultValue1; + const expectedHeaderRequestParams = `topic=${defaultValue1}`; const expectedResponse = [new String(), new String(), new String()]; client.descriptors.page.listTopicSnapshots.asyncIterate = stubAsyncIterationCall(expectedResponse); @@ -1729,11 +1773,12 @@ describe('v1.PublisherClient', () => { ).getCall(0).args[1], request ); - assert.strictEqual( - ( - client.descriptors.page.listTopicSnapshots.asyncIterate as SinonStub - ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + assert( + (client.descriptors.page.listTopicSnapshots.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); @@ -1746,8 +1791,11 @@ describe('v1.PublisherClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListTopicSnapshotsRequest() ); - request.topic = ''; - const expectedHeaderRequestParams = 'topic='; + const defaultValue1 = getTypeDefaultValue('ListTopicSnapshotsRequest', [ + 'topic', + ]); + request.topic = defaultValue1; + const expectedHeaderRequestParams = `topic=${defaultValue1}`; const expectedError = new Error('expected'); client.descriptors.page.listTopicSnapshots.asyncIterate = stubAsyncIterationCall(undefined, expectedError); @@ -1764,11 +1812,12 @@ describe('v1.PublisherClient', () => { ).getCall(0).args[1], request ); - assert.strictEqual( - ( - client.descriptors.page.listTopicSnapshots.asyncIterate as SinonStub - ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + assert( + (client.descriptors.page.listTopicSnapshots.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); }); diff --git a/test/gapic_schema_service_v1.ts b/test/gapic_schema_service_v1.ts index 763b62eec..1a963ca1d 100644 --- a/test/gapic_schema_service_v1.ts +++ b/test/gapic_schema_service_v1.ts @@ -27,6 +27,21 @@ import {PassThrough} from 'stream'; import {protobuf, IamProtos} from 'google-gax'; +// Dynamically loaded proto JSON is needed to get the type information +// to fill in default values for request objects +const root = protobuf.Root.fromJSON( + require('../protos/protos.json') +).resolveAll(); + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +function getTypeDefaultValue(typeName: string, fields: string[]) { + let type = root.lookupType(typeName) as protobuf.Type; + for (const field of fields.slice(0, -1)) { + type = type.fields[field]?.resolvedType as protobuf.Type; + } + return type.fields[fields[fields.length - 1]]?.defaultValue; +} + function generateSampleMessage(instance: T) { const filledObject = ( instance.constructor as typeof protobuf.Message @@ -222,26 +237,25 @@ describe('v1.SchemaServiceClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.CreateSchemaRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('CreateSchemaRequest', [ + 'parent', + ]); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.Schema() ); client.innerApiCalls.createSchema = stubSimpleCall(expectedResponse); const [response] = await client.createSchema(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.createSchema as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.createSchema as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createSchema as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes createSchema without error using callback', async () => { @@ -253,15 +267,11 @@ describe('v1.SchemaServiceClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.CreateSchemaRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('CreateSchemaRequest', [ + 'parent', + ]); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.Schema() ); @@ -284,11 +294,14 @@ describe('v1.SchemaServiceClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.createSchema as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.createSchema as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createSchema as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes createSchema with error', async () => { @@ -300,26 +313,25 @@ describe('v1.SchemaServiceClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.CreateSchemaRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('CreateSchemaRequest', [ + 'parent', + ]); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.createSchema = stubSimpleCall( undefined, expectedError ); await assert.rejects(client.createSchema(request), expectedError); - assert( - (client.innerApiCalls.createSchema as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.createSchema as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createSchema as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes createSchema with closed client', async () => { @@ -331,7 +343,10 @@ describe('v1.SchemaServiceClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.CreateSchemaRequest() ); - request.parent = ''; + const defaultValue1 = getTypeDefaultValue('CreateSchemaRequest', [ + 'parent', + ]); + request.parent = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.createSchema(request), expectedError); @@ -348,26 +363,23 @@ describe('v1.SchemaServiceClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.GetSchemaRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('GetSchemaRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.Schema() ); client.innerApiCalls.getSchema = stubSimpleCall(expectedResponse); const [response] = await client.getSchema(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.getSchema as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.getSchema as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getSchema as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes getSchema without error using callback', async () => { @@ -379,15 +391,9 @@ describe('v1.SchemaServiceClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.GetSchemaRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('GetSchemaRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.Schema() ); @@ -410,11 +416,14 @@ describe('v1.SchemaServiceClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.getSchema as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.getSchema as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getSchema as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes getSchema with error', async () => { @@ -426,23 +435,20 @@ describe('v1.SchemaServiceClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.GetSchemaRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('GetSchemaRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.getSchema = stubSimpleCall(undefined, expectedError); await assert.rejects(client.getSchema(request), expectedError); - assert( - (client.innerApiCalls.getSchema as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.getSchema as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getSchema as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes getSchema with closed client', async () => { @@ -454,7 +460,8 @@ describe('v1.SchemaServiceClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.GetSchemaRequest() ); - request.name = ''; + const defaultValue1 = getTypeDefaultValue('GetSchemaRequest', ['name']); + request.name = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.getSchema(request), expectedError); @@ -471,26 +478,25 @@ describe('v1.SchemaServiceClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.DeleteSchemaRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('DeleteSchemaRequest', [ + 'name', + ]); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.protobuf.Empty() ); client.innerApiCalls.deleteSchema = stubSimpleCall(expectedResponse); const [response] = await client.deleteSchema(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.deleteSchema as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.deleteSchema as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteSchema as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes deleteSchema without error using callback', async () => { @@ -502,15 +508,11 @@ describe('v1.SchemaServiceClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.DeleteSchemaRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('DeleteSchemaRequest', [ + 'name', + ]); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.protobuf.Empty() ); @@ -533,11 +535,14 @@ describe('v1.SchemaServiceClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.deleteSchema as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.deleteSchema as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteSchema as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes deleteSchema with error', async () => { @@ -549,26 +554,25 @@ describe('v1.SchemaServiceClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.DeleteSchemaRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('DeleteSchemaRequest', [ + 'name', + ]); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.deleteSchema = stubSimpleCall( undefined, expectedError ); await assert.rejects(client.deleteSchema(request), expectedError); - assert( - (client.innerApiCalls.deleteSchema as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.deleteSchema as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteSchema as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes deleteSchema with closed client', async () => { @@ -580,7 +584,10 @@ describe('v1.SchemaServiceClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.DeleteSchemaRequest() ); - request.name = ''; + const defaultValue1 = getTypeDefaultValue('DeleteSchemaRequest', [ + 'name', + ]); + request.name = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.deleteSchema(request), expectedError); @@ -597,26 +604,25 @@ describe('v1.SchemaServiceClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ValidateSchemaRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ValidateSchemaRequest', [ + 'parent', + ]); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.ValidateSchemaResponse() ); client.innerApiCalls.validateSchema = stubSimpleCall(expectedResponse); const [response] = await client.validateSchema(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.validateSchema as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.validateSchema as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.validateSchema as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes validateSchema without error using callback', async () => { @@ -628,15 +634,11 @@ describe('v1.SchemaServiceClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ValidateSchemaRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ValidateSchemaRequest', [ + 'parent', + ]); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.ValidateSchemaResponse() ); @@ -659,11 +661,14 @@ describe('v1.SchemaServiceClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.validateSchema as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.validateSchema as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.validateSchema as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes validateSchema with error', async () => { @@ -675,26 +680,25 @@ describe('v1.SchemaServiceClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ValidateSchemaRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ValidateSchemaRequest', [ + 'parent', + ]); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.validateSchema = stubSimpleCall( undefined, expectedError ); await assert.rejects(client.validateSchema(request), expectedError); - assert( - (client.innerApiCalls.validateSchema as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.validateSchema as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.validateSchema as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes validateSchema with closed client', async () => { @@ -706,7 +710,10 @@ describe('v1.SchemaServiceClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ValidateSchemaRequest() ); - request.parent = ''; + const defaultValue1 = getTypeDefaultValue('ValidateSchemaRequest', [ + 'parent', + ]); + request.parent = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.validateSchema(request), expectedError); @@ -723,26 +730,25 @@ describe('v1.SchemaServiceClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ValidateMessageRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ValidateMessageRequest', [ + 'parent', + ]); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.ValidateMessageResponse() ); client.innerApiCalls.validateMessage = stubSimpleCall(expectedResponse); const [response] = await client.validateMessage(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.validateMessage as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.validateMessage as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.validateMessage as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes validateMessage without error using callback', async () => { @@ -754,15 +760,11 @@ describe('v1.SchemaServiceClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ValidateMessageRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ValidateMessageRequest', [ + 'parent', + ]); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.ValidateMessageResponse() ); @@ -785,11 +787,14 @@ describe('v1.SchemaServiceClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.validateMessage as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.validateMessage as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.validateMessage as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes validateMessage with error', async () => { @@ -801,26 +806,25 @@ describe('v1.SchemaServiceClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ValidateMessageRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ValidateMessageRequest', [ + 'parent', + ]); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.validateMessage = stubSimpleCall( undefined, expectedError ); await assert.rejects(client.validateMessage(request), expectedError); - assert( - (client.innerApiCalls.validateMessage as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.validateMessage as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.validateMessage as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes validateMessage with closed client', async () => { @@ -832,7 +836,10 @@ describe('v1.SchemaServiceClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ValidateMessageRequest() ); - request.parent = ''; + const defaultValue1 = getTypeDefaultValue('ValidateMessageRequest', [ + 'parent', + ]); + request.parent = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.validateMessage(request), expectedError); @@ -849,15 +856,11 @@ describe('v1.SchemaServiceClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListSchemasRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ListSchemasRequest', [ + 'parent', + ]); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedResponse = [ generateSampleMessage(new protos.google.pubsub.v1.Schema()), generateSampleMessage(new protos.google.pubsub.v1.Schema()), @@ -866,11 +869,14 @@ describe('v1.SchemaServiceClient', () => { client.innerApiCalls.listSchemas = stubSimpleCall(expectedResponse); const [response] = await client.listSchemas(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.listSchemas as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.listSchemas as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listSchemas as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes listSchemas without error using callback', async () => { @@ -882,15 +888,11 @@ describe('v1.SchemaServiceClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListSchemasRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ListSchemasRequest', [ + 'parent', + ]); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedResponse = [ generateSampleMessage(new protos.google.pubsub.v1.Schema()), generateSampleMessage(new protos.google.pubsub.v1.Schema()), @@ -915,11 +917,14 @@ describe('v1.SchemaServiceClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.listSchemas as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.listSchemas as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listSchemas as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes listSchemas with error', async () => { @@ -931,26 +936,25 @@ describe('v1.SchemaServiceClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListSchemasRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ListSchemasRequest', [ + 'parent', + ]); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.listSchemas = stubSimpleCall( undefined, expectedError ); await assert.rejects(client.listSchemas(request), expectedError); - assert( - (client.innerApiCalls.listSchemas as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.listSchemas as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listSchemas as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes listSchemasStream without error', async () => { @@ -962,8 +966,11 @@ describe('v1.SchemaServiceClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListSchemasRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; + const defaultValue1 = getTypeDefaultValue('ListSchemasRequest', [ + 'parent', + ]); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedResponse = [ generateSampleMessage(new protos.google.pubsub.v1.Schema()), generateSampleMessage(new protos.google.pubsub.v1.Schema()), @@ -991,11 +998,12 @@ describe('v1.SchemaServiceClient', () => { .getCall(0) .calledWith(client.innerApiCalls.listSchemas, request) ); - assert.strictEqual( - (client.descriptors.page.listSchemas.createStream as SinonStub).getCall( - 0 - ).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + assert( + (client.descriptors.page.listSchemas.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); @@ -1008,8 +1016,11 @@ describe('v1.SchemaServiceClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListSchemasRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; + const defaultValue1 = getTypeDefaultValue('ListSchemasRequest', [ + 'parent', + ]); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedError = new Error('expected'); client.descriptors.page.listSchemas.createStream = stubPageStreamingCall( undefined, @@ -1034,11 +1045,12 @@ describe('v1.SchemaServiceClient', () => { .getCall(0) .calledWith(client.innerApiCalls.listSchemas, request) ); - assert.strictEqual( - (client.descriptors.page.listSchemas.createStream as SinonStub).getCall( - 0 - ).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + assert( + (client.descriptors.page.listSchemas.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); @@ -1051,8 +1063,11 @@ describe('v1.SchemaServiceClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListSchemasRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; + const defaultValue1 = getTypeDefaultValue('ListSchemasRequest', [ + 'parent', + ]); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedResponse = [ generateSampleMessage(new protos.google.pubsub.v1.Schema()), generateSampleMessage(new protos.google.pubsub.v1.Schema()), @@ -1072,11 +1087,12 @@ describe('v1.SchemaServiceClient', () => { ).args[1], request ); - assert.strictEqual( - (client.descriptors.page.listSchemas.asyncIterate as SinonStub).getCall( - 0 - ).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + assert( + (client.descriptors.page.listSchemas.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); @@ -1089,8 +1105,11 @@ describe('v1.SchemaServiceClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListSchemasRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; + const defaultValue1 = getTypeDefaultValue('ListSchemasRequest', [ + 'parent', + ]); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedError = new Error('expected'); client.descriptors.page.listSchemas.asyncIterate = stubAsyncIterationCall( undefined, @@ -1109,11 +1128,12 @@ describe('v1.SchemaServiceClient', () => { ).args[1], request ); - assert.strictEqual( - (client.descriptors.page.listSchemas.asyncIterate as SinonStub).getCall( - 0 - ).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + assert( + (client.descriptors.page.listSchemas.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); }); diff --git a/test/gapic_subscriber_v1.ts b/test/gapic_subscriber_v1.ts index a8d955ba3..0160c85b4 100644 --- a/test/gapic_subscriber_v1.ts +++ b/test/gapic_subscriber_v1.ts @@ -27,6 +27,21 @@ import {PassThrough} from 'stream'; import {protobuf, IamProtos} from 'google-gax'; +// Dynamically loaded proto JSON is needed to get the type information +// to fill in default values for request objects +const root = protobuf.Root.fromJSON( + require('../protos/protos.json') +).resolveAll(); + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +function getTypeDefaultValue(typeName: string, fields: string[]) { + let type = root.lookupType(typeName) as protobuf.Type; + for (const field of fields.slice(0, -1)) { + type = type.fields[field]?.resolvedType as protobuf.Type; + } + return type.fields[fields[fields.length - 1]]?.defaultValue; +} + function generateSampleMessage(instance: T) { const filledObject = ( instance.constructor as typeof protobuf.Message @@ -234,15 +249,9 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.Subscription() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('Subscription', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.Subscription() ); @@ -250,11 +259,14 @@ describe('v1.SubscriberClient', () => { stubSimpleCall(expectedResponse); const [response] = await client.createSubscription(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.createSubscription as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.createSubscription as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createSubscription as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes createSubscription without error using callback', async () => { @@ -266,15 +278,9 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.Subscription() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('Subscription', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.Subscription() ); @@ -297,11 +303,14 @@ describe('v1.SubscriberClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.createSubscription as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.createSubscription as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createSubscription as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes createSubscription with error', async () => { @@ -313,26 +322,23 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.Subscription() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('Subscription', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.createSubscription = stubSimpleCall( undefined, expectedError ); await assert.rejects(client.createSubscription(request), expectedError); - assert( - (client.innerApiCalls.createSubscription as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.createSubscription as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createSubscription as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes createSubscription with closed client', async () => { @@ -344,7 +350,8 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.Subscription() ); - request.name = ''; + const defaultValue1 = getTypeDefaultValue('Subscription', ['name']); + request.name = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.createSubscription(request), expectedError); @@ -361,26 +368,25 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.GetSubscriptionRequest() ); - request.subscription = ''; - const expectedHeaderRequestParams = 'subscription='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('GetSubscriptionRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; + const expectedHeaderRequestParams = `subscription=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.Subscription() ); client.innerApiCalls.getSubscription = stubSimpleCall(expectedResponse); const [response] = await client.getSubscription(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.getSubscription as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.getSubscription as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getSubscription as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes getSubscription without error using callback', async () => { @@ -392,15 +398,11 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.GetSubscriptionRequest() ); - request.subscription = ''; - const expectedHeaderRequestParams = 'subscription='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('GetSubscriptionRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; + const expectedHeaderRequestParams = `subscription=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.Subscription() ); @@ -423,11 +425,14 @@ describe('v1.SubscriberClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.getSubscription as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.getSubscription as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getSubscription as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes getSubscription with error', async () => { @@ -439,26 +444,25 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.GetSubscriptionRequest() ); - request.subscription = ''; - const expectedHeaderRequestParams = 'subscription='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('GetSubscriptionRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; + const expectedHeaderRequestParams = `subscription=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.getSubscription = stubSimpleCall( undefined, expectedError ); await assert.rejects(client.getSubscription(request), expectedError); - assert( - (client.innerApiCalls.getSubscription as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.getSubscription as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getSubscription as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes getSubscription with closed client', async () => { @@ -470,7 +474,10 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.GetSubscriptionRequest() ); - request.subscription = ''; + const defaultValue1 = getTypeDefaultValue('GetSubscriptionRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.getSubscription(request), expectedError); @@ -487,16 +494,13 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.UpdateSubscriptionRequest() ); - request.subscription = {}; - request.subscription.name = ''; - const expectedHeaderRequestParams = 'subscription.name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + request.subscription ??= {}; + const defaultValue1 = getTypeDefaultValue('UpdateSubscriptionRequest', [ + 'subscription', + 'name', + ]); + request.subscription.name = defaultValue1; + const expectedHeaderRequestParams = `subscription.name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.Subscription() ); @@ -504,11 +508,14 @@ describe('v1.SubscriberClient', () => { stubSimpleCall(expectedResponse); const [response] = await client.updateSubscription(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.updateSubscription as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.updateSubscription as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateSubscription as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes updateSubscription without error using callback', async () => { @@ -520,16 +527,13 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.UpdateSubscriptionRequest() ); - request.subscription = {}; - request.subscription.name = ''; - const expectedHeaderRequestParams = 'subscription.name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + request.subscription ??= {}; + const defaultValue1 = getTypeDefaultValue('UpdateSubscriptionRequest', [ + 'subscription', + 'name', + ]); + request.subscription.name = defaultValue1; + const expectedHeaderRequestParams = `subscription.name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.Subscription() ); @@ -552,11 +556,14 @@ describe('v1.SubscriberClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.updateSubscription as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.updateSubscription as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateSubscription as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes updateSubscription with error', async () => { @@ -568,27 +575,27 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.UpdateSubscriptionRequest() ); - request.subscription = {}; - request.subscription.name = ''; - const expectedHeaderRequestParams = 'subscription.name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + request.subscription ??= {}; + const defaultValue1 = getTypeDefaultValue('UpdateSubscriptionRequest', [ + 'subscription', + 'name', + ]); + request.subscription.name = defaultValue1; + const expectedHeaderRequestParams = `subscription.name=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.updateSubscription = stubSimpleCall( undefined, expectedError ); await assert.rejects(client.updateSubscription(request), expectedError); - assert( - (client.innerApiCalls.updateSubscription as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.updateSubscription as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateSubscription as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes updateSubscription with closed client', async () => { @@ -600,8 +607,12 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.UpdateSubscriptionRequest() ); - request.subscription = {}; - request.subscription.name = ''; + request.subscription ??= {}; + const defaultValue1 = getTypeDefaultValue('UpdateSubscriptionRequest', [ + 'subscription', + 'name', + ]); + request.subscription.name = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.updateSubscription(request), expectedError); @@ -618,15 +629,11 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.DeleteSubscriptionRequest() ); - request.subscription = ''; - const expectedHeaderRequestParams = 'subscription='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('DeleteSubscriptionRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; + const expectedHeaderRequestParams = `subscription=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.protobuf.Empty() ); @@ -634,11 +641,14 @@ describe('v1.SubscriberClient', () => { stubSimpleCall(expectedResponse); const [response] = await client.deleteSubscription(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.deleteSubscription as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.deleteSubscription as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteSubscription as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes deleteSubscription without error using callback', async () => { @@ -650,15 +660,11 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.DeleteSubscriptionRequest() ); - request.subscription = ''; - const expectedHeaderRequestParams = 'subscription='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('DeleteSubscriptionRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; + const expectedHeaderRequestParams = `subscription=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.protobuf.Empty() ); @@ -681,11 +687,14 @@ describe('v1.SubscriberClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.deleteSubscription as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.deleteSubscription as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteSubscription as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes deleteSubscription with error', async () => { @@ -697,26 +706,25 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.DeleteSubscriptionRequest() ); - request.subscription = ''; - const expectedHeaderRequestParams = 'subscription='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('DeleteSubscriptionRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; + const expectedHeaderRequestParams = `subscription=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.deleteSubscription = stubSimpleCall( undefined, expectedError ); await assert.rejects(client.deleteSubscription(request), expectedError); - assert( - (client.innerApiCalls.deleteSubscription as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.deleteSubscription as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteSubscription as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes deleteSubscription with closed client', async () => { @@ -728,7 +736,10 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.DeleteSubscriptionRequest() ); - request.subscription = ''; + const defaultValue1 = getTypeDefaultValue('DeleteSubscriptionRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.deleteSubscription(request), expectedError); @@ -745,26 +756,25 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ModifyAckDeadlineRequest() ); - request.subscription = ''; - const expectedHeaderRequestParams = 'subscription='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ModifyAckDeadlineRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; + const expectedHeaderRequestParams = `subscription=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.protobuf.Empty() ); client.innerApiCalls.modifyAckDeadline = stubSimpleCall(expectedResponse); const [response] = await client.modifyAckDeadline(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.modifyAckDeadline as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.modifyAckDeadline as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.modifyAckDeadline as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes modifyAckDeadline without error using callback', async () => { @@ -776,15 +786,11 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ModifyAckDeadlineRequest() ); - request.subscription = ''; - const expectedHeaderRequestParams = 'subscription='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ModifyAckDeadlineRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; + const expectedHeaderRequestParams = `subscription=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.protobuf.Empty() ); @@ -807,11 +813,14 @@ describe('v1.SubscriberClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.modifyAckDeadline as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.modifyAckDeadline as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.modifyAckDeadline as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes modifyAckDeadline with error', async () => { @@ -823,26 +832,25 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ModifyAckDeadlineRequest() ); - request.subscription = ''; - const expectedHeaderRequestParams = 'subscription='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ModifyAckDeadlineRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; + const expectedHeaderRequestParams = `subscription=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.modifyAckDeadline = stubSimpleCall( undefined, expectedError ); await assert.rejects(client.modifyAckDeadline(request), expectedError); - assert( - (client.innerApiCalls.modifyAckDeadline as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.modifyAckDeadline as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.modifyAckDeadline as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes modifyAckDeadline with closed client', async () => { @@ -854,7 +862,10 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ModifyAckDeadlineRequest() ); - request.subscription = ''; + const defaultValue1 = getTypeDefaultValue('ModifyAckDeadlineRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.modifyAckDeadline(request), expectedError); @@ -871,26 +882,25 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.AcknowledgeRequest() ); - request.subscription = ''; - const expectedHeaderRequestParams = 'subscription='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('AcknowledgeRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; + const expectedHeaderRequestParams = `subscription=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.protobuf.Empty() ); client.innerApiCalls.acknowledge = stubSimpleCall(expectedResponse); const [response] = await client.acknowledge(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.acknowledge as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.acknowledge as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.acknowledge as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes acknowledge without error using callback', async () => { @@ -902,15 +912,11 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.AcknowledgeRequest() ); - request.subscription = ''; - const expectedHeaderRequestParams = 'subscription='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('AcknowledgeRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; + const expectedHeaderRequestParams = `subscription=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.protobuf.Empty() ); @@ -933,11 +939,14 @@ describe('v1.SubscriberClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.acknowledge as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.acknowledge as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.acknowledge as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes acknowledge with error', async () => { @@ -949,26 +958,25 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.AcknowledgeRequest() ); - request.subscription = ''; - const expectedHeaderRequestParams = 'subscription='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('AcknowledgeRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; + const expectedHeaderRequestParams = `subscription=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.acknowledge = stubSimpleCall( undefined, expectedError ); await assert.rejects(client.acknowledge(request), expectedError); - assert( - (client.innerApiCalls.acknowledge as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.acknowledge as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.acknowledge as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes acknowledge with closed client', async () => { @@ -980,7 +988,10 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.AcknowledgeRequest() ); - request.subscription = ''; + const defaultValue1 = getTypeDefaultValue('AcknowledgeRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.acknowledge(request), expectedError); @@ -997,26 +1008,24 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.PullRequest() ); - request.subscription = ''; - const expectedHeaderRequestParams = 'subscription='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('PullRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; + const expectedHeaderRequestParams = `subscription=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.PullResponse() ); client.innerApiCalls.pull = stubSimpleCall(expectedResponse); const [response] = await client.pull(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.pull as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = (client.innerApiCalls.pull as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.pull as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes pull without error using callback', async () => { @@ -1028,15 +1037,11 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.PullRequest() ); - request.subscription = ''; - const expectedHeaderRequestParams = 'subscription='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('PullRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; + const expectedHeaderRequestParams = `subscription=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.PullResponse() ); @@ -1058,11 +1063,13 @@ describe('v1.SubscriberClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.pull as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = (client.innerApiCalls.pull as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.pull as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes pull with error', async () => { @@ -1074,23 +1081,21 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.PullRequest() ); - request.subscription = ''; - const expectedHeaderRequestParams = 'subscription='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('PullRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; + const expectedHeaderRequestParams = `subscription=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.pull = stubSimpleCall(undefined, expectedError); await assert.rejects(client.pull(request), expectedError); - assert( - (client.innerApiCalls.pull as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = (client.innerApiCalls.pull as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.pull as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes pull with closed client', async () => { @@ -1102,7 +1107,10 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.PullRequest() ); - request.subscription = ''; + const defaultValue1 = getTypeDefaultValue('PullRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.pull(request), expectedError); @@ -1119,26 +1127,25 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ModifyPushConfigRequest() ); - request.subscription = ''; - const expectedHeaderRequestParams = 'subscription='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ModifyPushConfigRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; + const expectedHeaderRequestParams = `subscription=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.protobuf.Empty() ); client.innerApiCalls.modifyPushConfig = stubSimpleCall(expectedResponse); const [response] = await client.modifyPushConfig(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.modifyPushConfig as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.modifyPushConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.modifyPushConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes modifyPushConfig without error using callback', async () => { @@ -1150,15 +1157,11 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ModifyPushConfigRequest() ); - request.subscription = ''; - const expectedHeaderRequestParams = 'subscription='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ModifyPushConfigRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; + const expectedHeaderRequestParams = `subscription=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.protobuf.Empty() ); @@ -1181,11 +1184,14 @@ describe('v1.SubscriberClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.modifyPushConfig as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.modifyPushConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.modifyPushConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes modifyPushConfig with error', async () => { @@ -1197,26 +1203,25 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ModifyPushConfigRequest() ); - request.subscription = ''; - const expectedHeaderRequestParams = 'subscription='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ModifyPushConfigRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; + const expectedHeaderRequestParams = `subscription=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.modifyPushConfig = stubSimpleCall( undefined, expectedError ); await assert.rejects(client.modifyPushConfig(request), expectedError); - assert( - (client.innerApiCalls.modifyPushConfig as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.modifyPushConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.modifyPushConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes modifyPushConfig with closed client', async () => { @@ -1228,7 +1233,10 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ModifyPushConfigRequest() ); - request.subscription = ''; + const defaultValue1 = getTypeDefaultValue('ModifyPushConfigRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.modifyPushConfig(request), expectedError); @@ -1239,32 +1247,31 @@ describe('v1.SubscriberClient', () => { it('invokes getSnapshot without error', async () => { const client = new subscriberModule.v1.SubscriberClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.pubsub.v1.GetSnapshotRequest() - ); - request.snapshot = ''; - const expectedHeaderRequestParams = 'snapshot='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.pubsub.v1.GetSnapshotRequest() + ); + const defaultValue1 = getTypeDefaultValue('GetSnapshotRequest', [ + 'snapshot', + ]); + request.snapshot = defaultValue1; + const expectedHeaderRequestParams = `snapshot=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.Snapshot() ); client.innerApiCalls.getSnapshot = stubSimpleCall(expectedResponse); const [response] = await client.getSnapshot(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.getSnapshot as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.getSnapshot as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getSnapshot as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes getSnapshot without error using callback', async () => { @@ -1276,15 +1283,11 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.GetSnapshotRequest() ); - request.snapshot = ''; - const expectedHeaderRequestParams = 'snapshot='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('GetSnapshotRequest', [ + 'snapshot', + ]); + request.snapshot = defaultValue1; + const expectedHeaderRequestParams = `snapshot=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.Snapshot() ); @@ -1307,11 +1310,14 @@ describe('v1.SubscriberClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.getSnapshot as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.getSnapshot as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getSnapshot as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes getSnapshot with error', async () => { @@ -1323,26 +1329,25 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.GetSnapshotRequest() ); - request.snapshot = ''; - const expectedHeaderRequestParams = 'snapshot='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('GetSnapshotRequest', [ + 'snapshot', + ]); + request.snapshot = defaultValue1; + const expectedHeaderRequestParams = `snapshot=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.getSnapshot = stubSimpleCall( undefined, expectedError ); await assert.rejects(client.getSnapshot(request), expectedError); - assert( - (client.innerApiCalls.getSnapshot as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.getSnapshot as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getSnapshot as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes getSnapshot with closed client', async () => { @@ -1354,7 +1359,10 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.GetSnapshotRequest() ); - request.snapshot = ''; + const defaultValue1 = getTypeDefaultValue('GetSnapshotRequest', [ + 'snapshot', + ]); + request.snapshot = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.getSnapshot(request), expectedError); @@ -1371,26 +1379,25 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.CreateSnapshotRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('CreateSnapshotRequest', [ + 'name', + ]); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.Snapshot() ); client.innerApiCalls.createSnapshot = stubSimpleCall(expectedResponse); const [response] = await client.createSnapshot(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.createSnapshot as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.createSnapshot as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createSnapshot as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes createSnapshot without error using callback', async () => { @@ -1402,15 +1409,11 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.CreateSnapshotRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('CreateSnapshotRequest', [ + 'name', + ]); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.Snapshot() ); @@ -1433,11 +1436,14 @@ describe('v1.SubscriberClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.createSnapshot as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.createSnapshot as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createSnapshot as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes createSnapshot with error', async () => { @@ -1449,26 +1455,25 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.CreateSnapshotRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('CreateSnapshotRequest', [ + 'name', + ]); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.createSnapshot = stubSimpleCall( undefined, expectedError ); await assert.rejects(client.createSnapshot(request), expectedError); - assert( - (client.innerApiCalls.createSnapshot as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.createSnapshot as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createSnapshot as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes createSnapshot with closed client', async () => { @@ -1480,7 +1485,10 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.CreateSnapshotRequest() ); - request.name = ''; + const defaultValue1 = getTypeDefaultValue('CreateSnapshotRequest', [ + 'name', + ]); + request.name = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.createSnapshot(request), expectedError); @@ -1497,27 +1505,27 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.UpdateSnapshotRequest() ); - request.snapshot = {}; - request.snapshot.name = ''; - const expectedHeaderRequestParams = 'snapshot.name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + request.snapshot ??= {}; + const defaultValue1 = getTypeDefaultValue('UpdateSnapshotRequest', [ + 'snapshot', + 'name', + ]); + request.snapshot.name = defaultValue1; + const expectedHeaderRequestParams = `snapshot.name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.Snapshot() ); client.innerApiCalls.updateSnapshot = stubSimpleCall(expectedResponse); const [response] = await client.updateSnapshot(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.updateSnapshot as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.updateSnapshot as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateSnapshot as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes updateSnapshot without error using callback', async () => { @@ -1529,16 +1537,13 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.UpdateSnapshotRequest() ); - request.snapshot = {}; - request.snapshot.name = ''; - const expectedHeaderRequestParams = 'snapshot.name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + request.snapshot ??= {}; + const defaultValue1 = getTypeDefaultValue('UpdateSnapshotRequest', [ + 'snapshot', + 'name', + ]); + request.snapshot.name = defaultValue1; + const expectedHeaderRequestParams = `snapshot.name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.Snapshot() ); @@ -1561,11 +1566,14 @@ describe('v1.SubscriberClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.updateSnapshot as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.updateSnapshot as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateSnapshot as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes updateSnapshot with error', async () => { @@ -1577,27 +1585,27 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.UpdateSnapshotRequest() ); - request.snapshot = {}; - request.snapshot.name = ''; - const expectedHeaderRequestParams = 'snapshot.name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + request.snapshot ??= {}; + const defaultValue1 = getTypeDefaultValue('UpdateSnapshotRequest', [ + 'snapshot', + 'name', + ]); + request.snapshot.name = defaultValue1; + const expectedHeaderRequestParams = `snapshot.name=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.updateSnapshot = stubSimpleCall( undefined, expectedError ); await assert.rejects(client.updateSnapshot(request), expectedError); - assert( - (client.innerApiCalls.updateSnapshot as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.updateSnapshot as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateSnapshot as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes updateSnapshot with closed client', async () => { @@ -1609,8 +1617,12 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.UpdateSnapshotRequest() ); - request.snapshot = {}; - request.snapshot.name = ''; + request.snapshot ??= {}; + const defaultValue1 = getTypeDefaultValue('UpdateSnapshotRequest', [ + 'snapshot', + 'name', + ]); + request.snapshot.name = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.updateSnapshot(request), expectedError); @@ -1627,26 +1639,25 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.DeleteSnapshotRequest() ); - request.snapshot = ''; - const expectedHeaderRequestParams = 'snapshot='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('DeleteSnapshotRequest', [ + 'snapshot', + ]); + request.snapshot = defaultValue1; + const expectedHeaderRequestParams = `snapshot=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.protobuf.Empty() ); client.innerApiCalls.deleteSnapshot = stubSimpleCall(expectedResponse); const [response] = await client.deleteSnapshot(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.deleteSnapshot as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.deleteSnapshot as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteSnapshot as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes deleteSnapshot without error using callback', async () => { @@ -1658,15 +1669,11 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.DeleteSnapshotRequest() ); - request.snapshot = ''; - const expectedHeaderRequestParams = 'snapshot='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('DeleteSnapshotRequest', [ + 'snapshot', + ]); + request.snapshot = defaultValue1; + const expectedHeaderRequestParams = `snapshot=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.protobuf.Empty() ); @@ -1689,11 +1696,14 @@ describe('v1.SubscriberClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.deleteSnapshot as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.deleteSnapshot as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteSnapshot as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes deleteSnapshot with error', async () => { @@ -1705,26 +1715,25 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.DeleteSnapshotRequest() ); - request.snapshot = ''; - const expectedHeaderRequestParams = 'snapshot='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('DeleteSnapshotRequest', [ + 'snapshot', + ]); + request.snapshot = defaultValue1; + const expectedHeaderRequestParams = `snapshot=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.deleteSnapshot = stubSimpleCall( undefined, expectedError ); await assert.rejects(client.deleteSnapshot(request), expectedError); - assert( - (client.innerApiCalls.deleteSnapshot as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.deleteSnapshot as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteSnapshot as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes deleteSnapshot with closed client', async () => { @@ -1736,7 +1745,10 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.DeleteSnapshotRequest() ); - request.snapshot = ''; + const defaultValue1 = getTypeDefaultValue('DeleteSnapshotRequest', [ + 'snapshot', + ]); + request.snapshot = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.deleteSnapshot(request), expectedError); @@ -1753,26 +1765,24 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.SeekRequest() ); - request.subscription = ''; - const expectedHeaderRequestParams = 'subscription='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('SeekRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; + const expectedHeaderRequestParams = `subscription=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.SeekResponse() ); client.innerApiCalls.seek = stubSimpleCall(expectedResponse); const [response] = await client.seek(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.seek as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = (client.innerApiCalls.seek as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.seek as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes seek without error using callback', async () => { @@ -1784,15 +1794,11 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.SeekRequest() ); - request.subscription = ''; - const expectedHeaderRequestParams = 'subscription='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('SeekRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; + const expectedHeaderRequestParams = `subscription=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.SeekResponse() ); @@ -1814,11 +1820,13 @@ describe('v1.SubscriberClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.seek as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = (client.innerApiCalls.seek as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.seek as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes seek with error', async () => { @@ -1830,23 +1838,21 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.SeekRequest() ); - request.subscription = ''; - const expectedHeaderRequestParams = 'subscription='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('SeekRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; + const expectedHeaderRequestParams = `subscription=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.seek = stubSimpleCall(undefined, expectedError); await assert.rejects(client.seek(request), expectedError); - assert( - (client.innerApiCalls.seek as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = (client.innerApiCalls.seek as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.seek as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes seek with closed client', async () => { @@ -1858,7 +1864,10 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.SeekRequest() ); - request.subscription = ''; + const defaultValue1 = getTypeDefaultValue('SeekRequest', [ + 'subscription', + ]); + request.subscription = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.seek(request), expectedError); @@ -1875,6 +1884,7 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.StreamingPullRequest() ); + const expectedResponse = generateSampleMessage( new protos.google.pubsub.v1.StreamingPullResponse() ); @@ -1960,15 +1970,11 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListSubscriptionsRequest() ); - request.project = ''; - const expectedHeaderRequestParams = 'project='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ListSubscriptionsRequest', [ + 'project', + ]); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1}`; const expectedResponse = [ generateSampleMessage(new protos.google.pubsub.v1.Subscription()), generateSampleMessage(new protos.google.pubsub.v1.Subscription()), @@ -1977,11 +1983,14 @@ describe('v1.SubscriberClient', () => { client.innerApiCalls.listSubscriptions = stubSimpleCall(expectedResponse); const [response] = await client.listSubscriptions(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.listSubscriptions as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.listSubscriptions as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listSubscriptions as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes listSubscriptions without error using callback', async () => { @@ -1993,15 +2002,11 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListSubscriptionsRequest() ); - request.project = ''; - const expectedHeaderRequestParams = 'project='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ListSubscriptionsRequest', [ + 'project', + ]); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1}`; const expectedResponse = [ generateSampleMessage(new protos.google.pubsub.v1.Subscription()), generateSampleMessage(new protos.google.pubsub.v1.Subscription()), @@ -2026,11 +2031,14 @@ describe('v1.SubscriberClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.listSubscriptions as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.listSubscriptions as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listSubscriptions as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes listSubscriptions with error', async () => { @@ -2042,26 +2050,25 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListSubscriptionsRequest() ); - request.project = ''; - const expectedHeaderRequestParams = 'project='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ListSubscriptionsRequest', [ + 'project', + ]); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.listSubscriptions = stubSimpleCall( undefined, expectedError ); await assert.rejects(client.listSubscriptions(request), expectedError); - assert( - (client.innerApiCalls.listSubscriptions as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.listSubscriptions as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listSubscriptions as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes listSubscriptionsStream without error', async () => { @@ -2073,8 +2080,11 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListSubscriptionsRequest() ); - request.project = ''; - const expectedHeaderRequestParams = 'project='; + const defaultValue1 = getTypeDefaultValue('ListSubscriptionsRequest', [ + 'project', + ]); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1}`; const expectedResponse = [ generateSampleMessage(new protos.google.pubsub.v1.Subscription()), generateSampleMessage(new protos.google.pubsub.v1.Subscription()), @@ -2102,11 +2112,12 @@ describe('v1.SubscriberClient', () => { .getCall(0) .calledWith(client.innerApiCalls.listSubscriptions, request) ); - assert.strictEqual( - ( - client.descriptors.page.listSubscriptions.createStream as SinonStub - ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + assert( + (client.descriptors.page.listSubscriptions.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); @@ -2119,8 +2130,11 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListSubscriptionsRequest() ); - request.project = ''; - const expectedHeaderRequestParams = 'project='; + const defaultValue1 = getTypeDefaultValue('ListSubscriptionsRequest', [ + 'project', + ]); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1}`; const expectedError = new Error('expected'); client.descriptors.page.listSubscriptions.createStream = stubPageStreamingCall(undefined, expectedError); @@ -2143,11 +2157,12 @@ describe('v1.SubscriberClient', () => { .getCall(0) .calledWith(client.innerApiCalls.listSubscriptions, request) ); - assert.strictEqual( - ( - client.descriptors.page.listSubscriptions.createStream as SinonStub - ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + assert( + (client.descriptors.page.listSubscriptions.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); @@ -2160,8 +2175,11 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListSubscriptionsRequest() ); - request.project = ''; - const expectedHeaderRequestParams = 'project='; + const defaultValue1 = getTypeDefaultValue('ListSubscriptionsRequest', [ + 'project', + ]); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1}`; const expectedResponse = [ generateSampleMessage(new protos.google.pubsub.v1.Subscription()), generateSampleMessage(new protos.google.pubsub.v1.Subscription()), @@ -2181,11 +2199,12 @@ describe('v1.SubscriberClient', () => { ).getCall(0).args[1], request ); - assert.strictEqual( - ( - client.descriptors.page.listSubscriptions.asyncIterate as SinonStub - ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + assert( + (client.descriptors.page.listSubscriptions.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); @@ -2198,8 +2217,11 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListSubscriptionsRequest() ); - request.project = ''; - const expectedHeaderRequestParams = 'project='; + const defaultValue1 = getTypeDefaultValue('ListSubscriptionsRequest', [ + 'project', + ]); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1}`; const expectedError = new Error('expected'); client.descriptors.page.listSubscriptions.asyncIterate = stubAsyncIterationCall(undefined, expectedError); @@ -2216,11 +2238,12 @@ describe('v1.SubscriberClient', () => { ).getCall(0).args[1], request ); - assert.strictEqual( - ( - client.descriptors.page.listSubscriptions.asyncIterate as SinonStub - ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + assert( + (client.descriptors.page.listSubscriptions.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); }); @@ -2235,15 +2258,11 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListSnapshotsRequest() ); - request.project = ''; - const expectedHeaderRequestParams = 'project='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ListSnapshotsRequest', [ + 'project', + ]); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1}`; const expectedResponse = [ generateSampleMessage(new protos.google.pubsub.v1.Snapshot()), generateSampleMessage(new protos.google.pubsub.v1.Snapshot()), @@ -2252,11 +2271,14 @@ describe('v1.SubscriberClient', () => { client.innerApiCalls.listSnapshots = stubSimpleCall(expectedResponse); const [response] = await client.listSnapshots(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.listSnapshots as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.listSnapshots as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listSnapshots as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes listSnapshots without error using callback', async () => { @@ -2268,15 +2290,11 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListSnapshotsRequest() ); - request.project = ''; - const expectedHeaderRequestParams = 'project='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ListSnapshotsRequest', [ + 'project', + ]); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1}`; const expectedResponse = [ generateSampleMessage(new protos.google.pubsub.v1.Snapshot()), generateSampleMessage(new protos.google.pubsub.v1.Snapshot()), @@ -2301,11 +2319,14 @@ describe('v1.SubscriberClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.listSnapshots as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.listSnapshots as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listSnapshots as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes listSnapshots with error', async () => { @@ -2317,26 +2338,25 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListSnapshotsRequest() ); - request.project = ''; - const expectedHeaderRequestParams = 'project='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ListSnapshotsRequest', [ + 'project', + ]); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.listSnapshots = stubSimpleCall( undefined, expectedError ); await assert.rejects(client.listSnapshots(request), expectedError); - assert( - (client.innerApiCalls.listSnapshots as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.listSnapshots as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listSnapshots as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes listSnapshotsStream without error', async () => { @@ -2348,8 +2368,11 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListSnapshotsRequest() ); - request.project = ''; - const expectedHeaderRequestParams = 'project='; + const defaultValue1 = getTypeDefaultValue('ListSnapshotsRequest', [ + 'project', + ]); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1}`; const expectedResponse = [ generateSampleMessage(new protos.google.pubsub.v1.Snapshot()), generateSampleMessage(new protos.google.pubsub.v1.Snapshot()), @@ -2377,11 +2400,12 @@ describe('v1.SubscriberClient', () => { .getCall(0) .calledWith(client.innerApiCalls.listSnapshots, request) ); - assert.strictEqual( - ( - client.descriptors.page.listSnapshots.createStream as SinonStub - ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + assert( + (client.descriptors.page.listSnapshots.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); @@ -2394,8 +2418,11 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListSnapshotsRequest() ); - request.project = ''; - const expectedHeaderRequestParams = 'project='; + const defaultValue1 = getTypeDefaultValue('ListSnapshotsRequest', [ + 'project', + ]); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1}`; const expectedError = new Error('expected'); client.descriptors.page.listSnapshots.createStream = stubPageStreamingCall(undefined, expectedError); @@ -2418,11 +2445,12 @@ describe('v1.SubscriberClient', () => { .getCall(0) .calledWith(client.innerApiCalls.listSnapshots, request) ); - assert.strictEqual( - ( - client.descriptors.page.listSnapshots.createStream as SinonStub - ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + assert( + (client.descriptors.page.listSnapshots.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); @@ -2435,8 +2463,11 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListSnapshotsRequest() ); - request.project = ''; - const expectedHeaderRequestParams = 'project='; + const defaultValue1 = getTypeDefaultValue('ListSnapshotsRequest', [ + 'project', + ]); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1}`; const expectedResponse = [ generateSampleMessage(new protos.google.pubsub.v1.Snapshot()), generateSampleMessage(new protos.google.pubsub.v1.Snapshot()), @@ -2456,11 +2487,12 @@ describe('v1.SubscriberClient', () => { ).getCall(0).args[1], request ); - assert.strictEqual( - ( - client.descriptors.page.listSnapshots.asyncIterate as SinonStub - ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + assert( + (client.descriptors.page.listSnapshots.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); @@ -2473,8 +2505,11 @@ describe('v1.SubscriberClient', () => { const request = generateSampleMessage( new protos.google.pubsub.v1.ListSnapshotsRequest() ); - request.project = ''; - const expectedHeaderRequestParams = 'project='; + const defaultValue1 = getTypeDefaultValue('ListSnapshotsRequest', [ + 'project', + ]); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1}`; const expectedError = new Error('expected'); client.descriptors.page.listSnapshots.asyncIterate = stubAsyncIterationCall(undefined, expectedError); @@ -2491,11 +2526,12 @@ describe('v1.SubscriberClient', () => { ).getCall(0).args[1], request ); - assert.strictEqual( - ( - client.descriptors.page.listSnapshots.asyncIterate as SinonStub - ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + assert( + (client.descriptors.page.listSnapshots.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); });