From e1425e5a575bf172ab6058d2cd53dce4186406a1 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 14 Sep 2022 22:32:28 +0000 Subject: [PATCH] fix: preserve default values in x-goog-request-params header (#471) - [ ] Regenerate this pull request now. PiperOrigin-RevId: 474338479 Source-Link: https://github.com/googleapis/googleapis/commit/d5d35e0353b59719e8917103b1bc7df2782bf6ba Source-Link: https://github.com/googleapis/googleapis-gen/commit/efcd3f93962a103f68f003e2a1eecde6fa216a27 Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiZWZjZDNmOTM5NjJhMTAzZjY4ZjAwM2UyYTFlZWNkZTZmYTIxNmEyNyJ9 --- .../src/v1/cloud_scheduler_client.ts | 20 +- .../src/v1beta1/cloud_scheduler_client.ts | 20 +- .../test/gapic_cloud_scheduler_v1.ts | 716 +++++++++--------- .../test/gapic_cloud_scheduler_v1beta1.ts | 716 +++++++++--------- 4 files changed, 710 insertions(+), 762 deletions(-) diff --git a/packages/google-cloud-scheduler/src/v1/cloud_scheduler_client.ts b/packages/google-cloud-scheduler/src/v1/cloud_scheduler_client.ts index e03b3f2f3ae..8da2f136471 100644 --- a/packages/google-cloud-scheduler/src/v1/cloud_scheduler_client.ts +++ b/packages/google-cloud-scheduler/src/v1/cloud_scheduler_client.ts @@ -418,7 +418,7 @@ export class CloudSchedulerClient { 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.getJob(request, options, callback); @@ -508,7 +508,7 @@ export class CloudSchedulerClient { 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.createJob(request, options, callback); @@ -604,7 +604,7 @@ export class CloudSchedulerClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - 'job.name': request.job!.name || '', + 'job.name': request.job!.name ?? '', }); this.initialize(); return this.innerApiCalls.updateJob(request, options, callback); @@ -688,7 +688,7 @@ export class CloudSchedulerClient { 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.deleteJob(request, options, callback); @@ -778,7 +778,7 @@ export class CloudSchedulerClient { 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.pauseJob(request, options, callback); @@ -867,7 +867,7 @@ export class CloudSchedulerClient { 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.resumeJob(request, options, callback); @@ -954,7 +954,7 @@ export class CloudSchedulerClient { 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.runJob(request, options, callback); @@ -1057,7 +1057,7 @@ export class CloudSchedulerClient { 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.listJobs(request, options, callback); @@ -1107,7 +1107,7 @@ export class CloudSchedulerClient { 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['listJobs']; const callSettings = defaultCallSettings.merge(options); @@ -1166,7 +1166,7 @@ export class CloudSchedulerClient { 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['listJobs']; const callSettings = defaultCallSettings.merge(options); diff --git a/packages/google-cloud-scheduler/src/v1beta1/cloud_scheduler_client.ts b/packages/google-cloud-scheduler/src/v1beta1/cloud_scheduler_client.ts index 2098afa1048..1bc4ecbca0d 100644 --- a/packages/google-cloud-scheduler/src/v1beta1/cloud_scheduler_client.ts +++ b/packages/google-cloud-scheduler/src/v1beta1/cloud_scheduler_client.ts @@ -420,7 +420,7 @@ export class CloudSchedulerClient { 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.getJob(request, options, callback); @@ -518,7 +518,7 @@ export class CloudSchedulerClient { 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.createJob(request, options, callback); @@ -622,7 +622,7 @@ export class CloudSchedulerClient { options.otherArgs.headers = options.otherArgs.headers || {}; options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams({ - 'job.name': request.job!.name || '', + 'job.name': request.job!.name ?? '', }); this.initialize(); return this.innerApiCalls.updateJob(request, options, callback); @@ -714,7 +714,7 @@ export class CloudSchedulerClient { 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.deleteJob(request, options, callback); @@ -806,7 +806,7 @@ export class CloudSchedulerClient { 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.pauseJob(request, options, callback); @@ -903,7 +903,7 @@ export class CloudSchedulerClient { 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.resumeJob(request, options, callback); @@ -992,7 +992,7 @@ export class CloudSchedulerClient { 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.runJob(request, options, callback); @@ -1103,7 +1103,7 @@ export class CloudSchedulerClient { 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.listJobs(request, options, callback); @@ -1153,7 +1153,7 @@ export class CloudSchedulerClient { 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['listJobs']; const callSettings = defaultCallSettings.merge(options); @@ -1212,7 +1212,7 @@ export class CloudSchedulerClient { 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['listJobs']; const callSettings = defaultCallSettings.merge(options); diff --git a/packages/google-cloud-scheduler/test/gapic_cloud_scheduler_v1.ts b/packages/google-cloud-scheduler/test/gapic_cloud_scheduler_v1.ts index 0851ef24165..9266ce0a4f1 100644 --- a/packages/google-cloud-scheduler/test/gapic_cloud_scheduler_v1.ts +++ b/packages/google-cloud-scheduler/test/gapic_cloud_scheduler_v1.ts @@ -27,6 +27,21 @@ import {PassThrough} from 'stream'; import {protobuf} 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,23 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.GetJobRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('GetJobRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.cloud.scheduler.v1.Job() ); client.innerApiCalls.getJob = stubSimpleCall(expectedResponse); const [response] = await client.getJob(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.getJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = (client.innerApiCalls.getJob as SinonStub).getCall( + 0 + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes getJob without error using callback', async () => { @@ -253,15 +265,9 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.GetJobRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('GetJobRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.cloud.scheduler.v1.Job() ); @@ -284,11 +290,14 @@ describe('v1.CloudSchedulerClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.getJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = (client.innerApiCalls.getJob as SinonStub).getCall( + 0 + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes getJob with error', async () => { @@ -300,23 +309,20 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.GetJobRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('GetJobRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.getJob = stubSimpleCall(undefined, expectedError); await assert.rejects(client.getJob(request), expectedError); - assert( - (client.innerApiCalls.getJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = (client.innerApiCalls.getJob as SinonStub).getCall( + 0 + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes getJob with closed client', async () => { @@ -328,7 +334,8 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.GetJobRequest() ); - request.name = ''; + const defaultValue1 = getTypeDefaultValue('GetJobRequest', ['name']); + request.name = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.getJob(request), expectedError); @@ -345,26 +352,23 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.CreateJobRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('CreateJobRequest', ['parent']); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.cloud.scheduler.v1.Job() ); client.innerApiCalls.createJob = stubSimpleCall(expectedResponse); const [response] = await client.createJob(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.createJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.createJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes createJob without error using callback', async () => { @@ -376,15 +380,9 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.CreateJobRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('CreateJobRequest', ['parent']); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.cloud.scheduler.v1.Job() ); @@ -407,11 +405,14 @@ describe('v1.CloudSchedulerClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.createJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.createJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes createJob with error', async () => { @@ -423,23 +424,20 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.CreateJobRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('CreateJobRequest', ['parent']); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.createJob = stubSimpleCall(undefined, expectedError); await assert.rejects(client.createJob(request), expectedError); - assert( - (client.innerApiCalls.createJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.createJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes createJob with closed client', async () => { @@ -451,7 +449,8 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.CreateJobRequest() ); - request.parent = ''; + const defaultValue1 = getTypeDefaultValue('CreateJobRequest', ['parent']); + request.parent = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.createJob(request), expectedError); @@ -468,27 +467,27 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.UpdateJobRequest() ); - request.job = {}; - request.job.name = ''; - const expectedHeaderRequestParams = 'job.name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + request.job ??= {}; + const defaultValue1 = getTypeDefaultValue('UpdateJobRequest', [ + 'job', + 'name', + ]); + request.job.name = defaultValue1; + const expectedHeaderRequestParams = `job.name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.cloud.scheduler.v1.Job() ); client.innerApiCalls.updateJob = stubSimpleCall(expectedResponse); const [response] = await client.updateJob(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.updateJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.updateJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes updateJob without error using callback', async () => { @@ -500,16 +499,13 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.UpdateJobRequest() ); - request.job = {}; - request.job.name = ''; - const expectedHeaderRequestParams = 'job.name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + request.job ??= {}; + const defaultValue1 = getTypeDefaultValue('UpdateJobRequest', [ + 'job', + 'name', + ]); + request.job.name = defaultValue1; + const expectedHeaderRequestParams = `job.name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.cloud.scheduler.v1.Job() ); @@ -532,11 +528,14 @@ describe('v1.CloudSchedulerClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.updateJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.updateJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes updateJob with error', async () => { @@ -548,24 +547,24 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.UpdateJobRequest() ); - request.job = {}; - request.job.name = ''; - const expectedHeaderRequestParams = 'job.name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + request.job ??= {}; + const defaultValue1 = getTypeDefaultValue('UpdateJobRequest', [ + 'job', + 'name', + ]); + request.job.name = defaultValue1; + const expectedHeaderRequestParams = `job.name=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.updateJob = stubSimpleCall(undefined, expectedError); await assert.rejects(client.updateJob(request), expectedError); - assert( - (client.innerApiCalls.updateJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.updateJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes updateJob with closed client', async () => { @@ -577,8 +576,12 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.UpdateJobRequest() ); - request.job = {}; - request.job.name = ''; + request.job ??= {}; + const defaultValue1 = getTypeDefaultValue('UpdateJobRequest', [ + 'job', + 'name', + ]); + request.job.name = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.updateJob(request), expectedError); @@ -595,26 +598,23 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.DeleteJobRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('DeleteJobRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.protobuf.Empty() ); client.innerApiCalls.deleteJob = stubSimpleCall(expectedResponse); const [response] = await client.deleteJob(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.deleteJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.deleteJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes deleteJob without error using callback', async () => { @@ -626,15 +626,9 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.DeleteJobRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('DeleteJobRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.protobuf.Empty() ); @@ -657,11 +651,14 @@ describe('v1.CloudSchedulerClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.deleteJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.deleteJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes deleteJob with error', async () => { @@ -673,23 +670,20 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.DeleteJobRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('DeleteJobRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.deleteJob = stubSimpleCall(undefined, expectedError); await assert.rejects(client.deleteJob(request), expectedError); - assert( - (client.innerApiCalls.deleteJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.deleteJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes deleteJob with closed client', async () => { @@ -701,7 +695,8 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.DeleteJobRequest() ); - request.name = ''; + const defaultValue1 = getTypeDefaultValue('DeleteJobRequest', ['name']); + request.name = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.deleteJob(request), expectedError); @@ -718,26 +713,23 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.PauseJobRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('PauseJobRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.cloud.scheduler.v1.Job() ); client.innerApiCalls.pauseJob = stubSimpleCall(expectedResponse); const [response] = await client.pauseJob(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.pauseJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.pauseJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.pauseJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes pauseJob without error using callback', async () => { @@ -749,15 +741,9 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.PauseJobRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('PauseJobRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.cloud.scheduler.v1.Job() ); @@ -780,11 +766,14 @@ describe('v1.CloudSchedulerClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.pauseJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.pauseJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.pauseJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes pauseJob with error', async () => { @@ -796,23 +785,20 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.PauseJobRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('PauseJobRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.pauseJob = stubSimpleCall(undefined, expectedError); await assert.rejects(client.pauseJob(request), expectedError); - assert( - (client.innerApiCalls.pauseJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.pauseJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.pauseJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes pauseJob with closed client', async () => { @@ -824,7 +810,8 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.PauseJobRequest() ); - request.name = ''; + const defaultValue1 = getTypeDefaultValue('PauseJobRequest', ['name']); + request.name = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.pauseJob(request), expectedError); @@ -841,26 +828,23 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.ResumeJobRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ResumeJobRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.cloud.scheduler.v1.Job() ); client.innerApiCalls.resumeJob = stubSimpleCall(expectedResponse); const [response] = await client.resumeJob(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.resumeJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.resumeJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.resumeJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes resumeJob without error using callback', async () => { @@ -872,15 +856,9 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.ResumeJobRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ResumeJobRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.cloud.scheduler.v1.Job() ); @@ -903,11 +881,14 @@ describe('v1.CloudSchedulerClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.resumeJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.resumeJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.resumeJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes resumeJob with error', async () => { @@ -919,23 +900,20 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.ResumeJobRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ResumeJobRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.resumeJob = stubSimpleCall(undefined, expectedError); await assert.rejects(client.resumeJob(request), expectedError); - assert( - (client.innerApiCalls.resumeJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.resumeJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.resumeJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes resumeJob with closed client', async () => { @@ -947,7 +925,8 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.ResumeJobRequest() ); - request.name = ''; + const defaultValue1 = getTypeDefaultValue('ResumeJobRequest', ['name']); + request.name = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.resumeJob(request), expectedError); @@ -964,26 +943,23 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.RunJobRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('RunJobRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.cloud.scheduler.v1.Job() ); client.innerApiCalls.runJob = stubSimpleCall(expectedResponse); const [response] = await client.runJob(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.runJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = (client.innerApiCalls.runJob as SinonStub).getCall( + 0 + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.runJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes runJob without error using callback', async () => { @@ -995,15 +971,9 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.RunJobRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('RunJobRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.cloud.scheduler.v1.Job() ); @@ -1026,11 +996,14 @@ describe('v1.CloudSchedulerClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.runJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = (client.innerApiCalls.runJob as SinonStub).getCall( + 0 + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.runJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes runJob with error', async () => { @@ -1042,23 +1015,20 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.RunJobRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('RunJobRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.runJob = stubSimpleCall(undefined, expectedError); await assert.rejects(client.runJob(request), expectedError); - assert( - (client.innerApiCalls.runJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = (client.innerApiCalls.runJob as SinonStub).getCall( + 0 + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.runJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes runJob with closed client', async () => { @@ -1070,7 +1040,8 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.RunJobRequest() ); - request.name = ''; + const defaultValue1 = getTypeDefaultValue('RunJobRequest', ['name']); + request.name = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.runJob(request), expectedError); @@ -1087,15 +1058,9 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.ListJobsRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ListJobsRequest', ['parent']); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedResponse = [ generateSampleMessage(new protos.google.cloud.scheduler.v1.Job()), generateSampleMessage(new protos.google.cloud.scheduler.v1.Job()), @@ -1104,11 +1069,14 @@ describe('v1.CloudSchedulerClient', () => { client.innerApiCalls.listJobs = stubSimpleCall(expectedResponse); const [response] = await client.listJobs(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.listJobs as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.listJobs as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listJobs as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes listJobs without error using callback', async () => { @@ -1120,15 +1088,9 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.ListJobsRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ListJobsRequest', ['parent']); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedResponse = [ generateSampleMessage(new protos.google.cloud.scheduler.v1.Job()), generateSampleMessage(new protos.google.cloud.scheduler.v1.Job()), @@ -1153,11 +1115,14 @@ describe('v1.CloudSchedulerClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.listJobs as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.listJobs as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listJobs as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes listJobs with error', async () => { @@ -1169,23 +1134,20 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.ListJobsRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ListJobsRequest', ['parent']); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.listJobs = stubSimpleCall(undefined, expectedError); await assert.rejects(client.listJobs(request), expectedError); - assert( - (client.innerApiCalls.listJobs as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.listJobs as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listJobs as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes listJobsStream without error', async () => { @@ -1197,8 +1159,9 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.ListJobsRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; + const defaultValue1 = getTypeDefaultValue('ListJobsRequest', ['parent']); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedResponse = [ generateSampleMessage(new protos.google.cloud.scheduler.v1.Job()), generateSampleMessage(new protos.google.cloud.scheduler.v1.Job()), @@ -1226,10 +1189,12 @@ describe('v1.CloudSchedulerClient', () => { .getCall(0) .calledWith(client.innerApiCalls.listJobs, request) ); - assert.strictEqual( - (client.descriptors.page.listJobs.createStream as SinonStub).getCall(0) - .args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + assert( + (client.descriptors.page.listJobs.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); @@ -1242,8 +1207,9 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.ListJobsRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; + const defaultValue1 = getTypeDefaultValue('ListJobsRequest', ['parent']); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedError = new Error('expected'); client.descriptors.page.listJobs.createStream = stubPageStreamingCall( undefined, @@ -1268,10 +1234,12 @@ describe('v1.CloudSchedulerClient', () => { .getCall(0) .calledWith(client.innerApiCalls.listJobs, request) ); - assert.strictEqual( - (client.descriptors.page.listJobs.createStream as SinonStub).getCall(0) - .args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + assert( + (client.descriptors.page.listJobs.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); @@ -1284,8 +1252,9 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.ListJobsRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; + const defaultValue1 = getTypeDefaultValue('ListJobsRequest', ['parent']); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedResponse = [ generateSampleMessage(new protos.google.cloud.scheduler.v1.Job()), generateSampleMessage(new protos.google.cloud.scheduler.v1.Job()), @@ -1304,10 +1273,12 @@ describe('v1.CloudSchedulerClient', () => { .args[1], request ); - assert.strictEqual( - (client.descriptors.page.listJobs.asyncIterate as SinonStub).getCall(0) - .args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + assert( + (client.descriptors.page.listJobs.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); @@ -1320,8 +1291,9 @@ describe('v1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1.ListJobsRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; + const defaultValue1 = getTypeDefaultValue('ListJobsRequest', ['parent']); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedError = new Error('expected'); client.descriptors.page.listJobs.asyncIterate = stubAsyncIterationCall( undefined, @@ -1339,10 +1311,12 @@ describe('v1.CloudSchedulerClient', () => { .args[1], request ); - assert.strictEqual( - (client.descriptors.page.listJobs.asyncIterate as SinonStub).getCall(0) - .args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + assert( + (client.descriptors.page.listJobs.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); }); diff --git a/packages/google-cloud-scheduler/test/gapic_cloud_scheduler_v1beta1.ts b/packages/google-cloud-scheduler/test/gapic_cloud_scheduler_v1beta1.ts index a7706b7377b..f08b7850ff5 100644 --- a/packages/google-cloud-scheduler/test/gapic_cloud_scheduler_v1beta1.ts +++ b/packages/google-cloud-scheduler/test/gapic_cloud_scheduler_v1beta1.ts @@ -27,6 +27,21 @@ import {PassThrough} from 'stream'; import {protobuf} 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,23 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.GetJobRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('GetJobRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.Job() ); client.innerApiCalls.getJob = stubSimpleCall(expectedResponse); const [response] = await client.getJob(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.getJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = (client.innerApiCalls.getJob as SinonStub).getCall( + 0 + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes getJob without error using callback', async () => { @@ -253,15 +265,9 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.GetJobRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('GetJobRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.Job() ); @@ -284,11 +290,14 @@ describe('v1beta1.CloudSchedulerClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.getJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = (client.innerApiCalls.getJob as SinonStub).getCall( + 0 + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes getJob with error', async () => { @@ -300,23 +309,20 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.GetJobRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('GetJobRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.getJob = stubSimpleCall(undefined, expectedError); await assert.rejects(client.getJob(request), expectedError); - assert( - (client.innerApiCalls.getJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = (client.innerApiCalls.getJob as SinonStub).getCall( + 0 + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes getJob with closed client', async () => { @@ -328,7 +334,8 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.GetJobRequest() ); - request.name = ''; + const defaultValue1 = getTypeDefaultValue('GetJobRequest', ['name']); + request.name = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.getJob(request), expectedError); @@ -345,26 +352,23 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.CreateJobRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('CreateJobRequest', ['parent']); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.Job() ); client.innerApiCalls.createJob = stubSimpleCall(expectedResponse); const [response] = await client.createJob(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.createJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.createJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes createJob without error using callback', async () => { @@ -376,15 +380,9 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.CreateJobRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('CreateJobRequest', ['parent']); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.Job() ); @@ -407,11 +405,14 @@ describe('v1beta1.CloudSchedulerClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.createJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.createJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes createJob with error', async () => { @@ -423,23 +424,20 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.CreateJobRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('CreateJobRequest', ['parent']); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.createJob = stubSimpleCall(undefined, expectedError); await assert.rejects(client.createJob(request), expectedError); - assert( - (client.innerApiCalls.createJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.createJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes createJob with closed client', async () => { @@ -451,7 +449,8 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.CreateJobRequest() ); - request.parent = ''; + const defaultValue1 = getTypeDefaultValue('CreateJobRequest', ['parent']); + request.parent = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.createJob(request), expectedError); @@ -468,27 +467,27 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.UpdateJobRequest() ); - request.job = {}; - request.job.name = ''; - const expectedHeaderRequestParams = 'job.name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + request.job ??= {}; + const defaultValue1 = getTypeDefaultValue('UpdateJobRequest', [ + 'job', + 'name', + ]); + request.job.name = defaultValue1; + const expectedHeaderRequestParams = `job.name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.Job() ); client.innerApiCalls.updateJob = stubSimpleCall(expectedResponse); const [response] = await client.updateJob(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.updateJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.updateJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes updateJob without error using callback', async () => { @@ -500,16 +499,13 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.UpdateJobRequest() ); - request.job = {}; - request.job.name = ''; - const expectedHeaderRequestParams = 'job.name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + request.job ??= {}; + const defaultValue1 = getTypeDefaultValue('UpdateJobRequest', [ + 'job', + 'name', + ]); + request.job.name = defaultValue1; + const expectedHeaderRequestParams = `job.name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.Job() ); @@ -532,11 +528,14 @@ describe('v1beta1.CloudSchedulerClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.updateJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.updateJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes updateJob with error', async () => { @@ -548,24 +547,24 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.UpdateJobRequest() ); - request.job = {}; - request.job.name = ''; - const expectedHeaderRequestParams = 'job.name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + request.job ??= {}; + const defaultValue1 = getTypeDefaultValue('UpdateJobRequest', [ + 'job', + 'name', + ]); + request.job.name = defaultValue1; + const expectedHeaderRequestParams = `job.name=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.updateJob = stubSimpleCall(undefined, expectedError); await assert.rejects(client.updateJob(request), expectedError); - assert( - (client.innerApiCalls.updateJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.updateJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes updateJob with closed client', async () => { @@ -577,8 +576,12 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.UpdateJobRequest() ); - request.job = {}; - request.job.name = ''; + request.job ??= {}; + const defaultValue1 = getTypeDefaultValue('UpdateJobRequest', [ + 'job', + 'name', + ]); + request.job.name = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.updateJob(request), expectedError); @@ -595,26 +598,23 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.DeleteJobRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('DeleteJobRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.protobuf.Empty() ); client.innerApiCalls.deleteJob = stubSimpleCall(expectedResponse); const [response] = await client.deleteJob(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.deleteJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.deleteJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes deleteJob without error using callback', async () => { @@ -626,15 +626,9 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.DeleteJobRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('DeleteJobRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.protobuf.Empty() ); @@ -657,11 +651,14 @@ describe('v1beta1.CloudSchedulerClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.deleteJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.deleteJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes deleteJob with error', async () => { @@ -673,23 +670,20 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.DeleteJobRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('DeleteJobRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.deleteJob = stubSimpleCall(undefined, expectedError); await assert.rejects(client.deleteJob(request), expectedError); - assert( - (client.innerApiCalls.deleteJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.deleteJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes deleteJob with closed client', async () => { @@ -701,7 +695,8 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.DeleteJobRequest() ); - request.name = ''; + const defaultValue1 = getTypeDefaultValue('DeleteJobRequest', ['name']); + request.name = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.deleteJob(request), expectedError); @@ -718,26 +713,23 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.PauseJobRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('PauseJobRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.Job() ); client.innerApiCalls.pauseJob = stubSimpleCall(expectedResponse); const [response] = await client.pauseJob(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.pauseJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.pauseJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.pauseJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes pauseJob without error using callback', async () => { @@ -749,15 +741,9 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.PauseJobRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('PauseJobRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.Job() ); @@ -780,11 +766,14 @@ describe('v1beta1.CloudSchedulerClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.pauseJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.pauseJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.pauseJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes pauseJob with error', async () => { @@ -796,23 +785,20 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.PauseJobRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('PauseJobRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.pauseJob = stubSimpleCall(undefined, expectedError); await assert.rejects(client.pauseJob(request), expectedError); - assert( - (client.innerApiCalls.pauseJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.pauseJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.pauseJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes pauseJob with closed client', async () => { @@ -824,7 +810,8 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.PauseJobRequest() ); - request.name = ''; + const defaultValue1 = getTypeDefaultValue('PauseJobRequest', ['name']); + request.name = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.pauseJob(request), expectedError); @@ -841,26 +828,23 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.ResumeJobRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ResumeJobRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.Job() ); client.innerApiCalls.resumeJob = stubSimpleCall(expectedResponse); const [response] = await client.resumeJob(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.resumeJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.resumeJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.resumeJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes resumeJob without error using callback', async () => { @@ -872,15 +856,9 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.ResumeJobRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ResumeJobRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.Job() ); @@ -903,11 +881,14 @@ describe('v1beta1.CloudSchedulerClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.resumeJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.resumeJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.resumeJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes resumeJob with error', async () => { @@ -919,23 +900,20 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.ResumeJobRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ResumeJobRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.resumeJob = stubSimpleCall(undefined, expectedError); await assert.rejects(client.resumeJob(request), expectedError); - assert( - (client.innerApiCalls.resumeJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.resumeJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.resumeJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes resumeJob with closed client', async () => { @@ -947,7 +925,8 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.ResumeJobRequest() ); - request.name = ''; + const defaultValue1 = getTypeDefaultValue('ResumeJobRequest', ['name']); + request.name = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.resumeJob(request), expectedError); @@ -964,26 +943,23 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.RunJobRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('RunJobRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.Job() ); client.innerApiCalls.runJob = stubSimpleCall(expectedResponse); const [response] = await client.runJob(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.runJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = (client.innerApiCalls.runJob as SinonStub).getCall( + 0 + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.runJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes runJob without error using callback', async () => { @@ -995,15 +971,9 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.RunJobRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('RunJobRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedResponse = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.Job() ); @@ -1026,11 +996,14 @@ describe('v1beta1.CloudSchedulerClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.runJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = (client.innerApiCalls.runJob as SinonStub).getCall( + 0 + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.runJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes runJob with error', async () => { @@ -1042,23 +1015,20 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.RunJobRequest() ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('RunJobRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.runJob = stubSimpleCall(undefined, expectedError); await assert.rejects(client.runJob(request), expectedError); - assert( - (client.innerApiCalls.runJob as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = (client.innerApiCalls.runJob as SinonStub).getCall( + 0 + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.runJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes runJob with closed client', async () => { @@ -1070,7 +1040,8 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.RunJobRequest() ); - request.name = ''; + const defaultValue1 = getTypeDefaultValue('RunJobRequest', ['name']); + request.name = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close(); await assert.rejects(client.runJob(request), expectedError); @@ -1087,15 +1058,9 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.ListJobsRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ListJobsRequest', ['parent']); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedResponse = [ generateSampleMessage(new protos.google.cloud.scheduler.v1beta1.Job()), generateSampleMessage(new protos.google.cloud.scheduler.v1beta1.Job()), @@ -1104,11 +1069,14 @@ describe('v1beta1.CloudSchedulerClient', () => { client.innerApiCalls.listJobs = stubSimpleCall(expectedResponse); const [response] = await client.listJobs(request); assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.listJobs as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.listJobs as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listJobs as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes listJobs without error using callback', async () => { @@ -1120,15 +1088,9 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.ListJobsRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ListJobsRequest', ['parent']); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedResponse = [ generateSampleMessage(new protos.google.cloud.scheduler.v1beta1.Job()), generateSampleMessage(new protos.google.cloud.scheduler.v1beta1.Job()), @@ -1153,11 +1115,14 @@ describe('v1beta1.CloudSchedulerClient', () => { }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.listJobs as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + const actualRequest = ( + client.innerApiCalls.listJobs as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listJobs as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes listJobs with error', async () => { @@ -1169,23 +1134,20 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.ListJobsRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; + const defaultValue1 = getTypeDefaultValue('ListJobsRequest', ['parent']); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedError = new Error('expected'); client.innerApiCalls.listJobs = stubSimpleCall(undefined, expectedError); await assert.rejects(client.listJobs(request), expectedError); - assert( - (client.innerApiCalls.listJobs as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + const actualRequest = ( + client.innerApiCalls.listJobs as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listJobs as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes listJobsStream without error', async () => { @@ -1197,8 +1159,9 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.ListJobsRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; + const defaultValue1 = getTypeDefaultValue('ListJobsRequest', ['parent']); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedResponse = [ generateSampleMessage(new protos.google.cloud.scheduler.v1beta1.Job()), generateSampleMessage(new protos.google.cloud.scheduler.v1beta1.Job()), @@ -1229,10 +1192,12 @@ describe('v1beta1.CloudSchedulerClient', () => { .getCall(0) .calledWith(client.innerApiCalls.listJobs, request) ); - assert.strictEqual( - (client.descriptors.page.listJobs.createStream as SinonStub).getCall(0) - .args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + assert( + (client.descriptors.page.listJobs.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); @@ -1245,8 +1210,9 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.ListJobsRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; + const defaultValue1 = getTypeDefaultValue('ListJobsRequest', ['parent']); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedError = new Error('expected'); client.descriptors.page.listJobs.createStream = stubPageStreamingCall( undefined, @@ -1274,10 +1240,12 @@ describe('v1beta1.CloudSchedulerClient', () => { .getCall(0) .calledWith(client.innerApiCalls.listJobs, request) ); - assert.strictEqual( - (client.descriptors.page.listJobs.createStream as SinonStub).getCall(0) - .args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + assert( + (client.descriptors.page.listJobs.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); @@ -1290,8 +1258,9 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.ListJobsRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; + const defaultValue1 = getTypeDefaultValue('ListJobsRequest', ['parent']); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedResponse = [ generateSampleMessage(new protos.google.cloud.scheduler.v1beta1.Job()), generateSampleMessage(new protos.google.cloud.scheduler.v1beta1.Job()), @@ -1310,10 +1279,12 @@ describe('v1beta1.CloudSchedulerClient', () => { .args[1], request ); - assert.strictEqual( - (client.descriptors.page.listJobs.asyncIterate as SinonStub).getCall(0) - .args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + assert( + (client.descriptors.page.listJobs.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); @@ -1326,8 +1297,9 @@ describe('v1beta1.CloudSchedulerClient', () => { const request = generateSampleMessage( new protos.google.cloud.scheduler.v1beta1.ListJobsRequest() ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; + const defaultValue1 = getTypeDefaultValue('ListJobsRequest', ['parent']); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1}`; const expectedError = new Error('expected'); client.descriptors.page.listJobs.asyncIterate = stubAsyncIterationCall( undefined, @@ -1345,10 +1317,12 @@ describe('v1beta1.CloudSchedulerClient', () => { .args[1], request ); - assert.strictEqual( - (client.descriptors.page.listJobs.asyncIterate as SinonStub).getCall(0) - .args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams + assert( + (client.descriptors.page.listJobs.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams + ) ); }); });