UNPKG

@google-cloud/tasks

Version:
882 lines 123 kB
// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // https://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // ** This file is automatically generated by gapic-generator-typescript. ** // ** https://github.com/googleapis/gapic-generator-typescript ** // ** All changes to this file may be overwritten. ** // @ts-ignore import * as protos from '../../protos/protos.js'; import assert from 'assert'; import * as sinon from 'sinon'; import { describe, it } from 'mocha'; import * as cloudtasksModule from '../src/index.js'; import { PassThrough } from 'stream'; import { protobuf, LocationProtos } from 'google-gax'; import fs from 'fs'; import path from 'path'; import { fileURLToPath } from 'url'; // @ts-ignore const dirname = path.dirname(fileURLToPath(import.meta.url)); // Dynamically loaded proto JSON is needed to get the type information // to fill in default values for request objects const root = protobuf.Root.fromJSON(JSON.parse(fs.readFileSync(path.join(dirname, '..', '..', 'protos/protos.json'), 'utf8'))); // eslint-disable-next-line @typescript-eslint/no-unused-vars function getTypeDefaultValue(typeName, fields) { let type = root.lookupType(typeName); for (const field of fields.slice(0, -1)) { type = type?.fields[field]?.resolvedType; } return type?.fields[fields[fields.length - 1]]?.defaultValue ?? null; } function generateSampleMessage(instance) { const filledObject = instance.constructor .toObject(instance, { defaults: true }); return instance.constructor.fromObject(filledObject); } function stubSimpleCall(response, error) { return error ? sinon.stub().rejects(error) : sinon.stub().resolves([response]); } function stubSimpleCallWithCallback(response, error) { return error ? sinon.stub().callsArgWith(2, error) : sinon.stub().callsArgWith(2, null, response); } function stubPageStreamingCall(responses, error) { const pagingStub = sinon.stub(); if (responses) { for (let i = 0; i < responses.length; ++i) { pagingStub.onCall(i).callsArgWith(2, null, responses[i]); } } const transformStub = error ? sinon.stub().callsArgWith(2, error) : pagingStub; const mockStream = new PassThrough({ objectMode: true, transform: transformStub, }); // trigger as many responses as needed if (responses) { for (let i = 0; i < responses.length; ++i) { setImmediate(() => { mockStream.write({}); }); } setImmediate(() => { mockStream.end(); }); } else { setImmediate(() => { mockStream.write({}); }); setImmediate(() => { mockStream.end(); }); } return sinon.stub().returns(mockStream); } function stubAsyncIterationCall(responses, error) { let counter = 0; const asyncIterable = { [Symbol.asyncIterator]() { return { async next() { if (error) { return Promise.reject(error); } if (counter >= responses.length) { return Promise.resolve({ done: true, value: undefined }); } return Promise.resolve({ done: false, value: responses[counter++] }); } }; } }; return sinon.stub().returns(asyncIterable); } describe('v2beta3.CloudTasksClient', () => { describe('Common methods', () => { it('has apiEndpoint', () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient(); const apiEndpoint = client.apiEndpoint; assert.strictEqual(apiEndpoint, 'cloudtasks.googleapis.com'); }); it('has universeDomain', () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient(); const universeDomain = client.universeDomain; assert.strictEqual(universeDomain, "googleapis.com"); }); if (typeof process === 'object' && typeof process.emitWarning === 'function') { it('throws DeprecationWarning if static servicePath is used', () => { const stub = sinon.stub(process, 'emitWarning'); const servicePath = cloudtasksModule.v2beta3.CloudTasksClient.servicePath; assert.strictEqual(servicePath, 'cloudtasks.googleapis.com'); assert(stub.called); stub.restore(); }); it('throws DeprecationWarning if static apiEndpoint is used', () => { const stub = sinon.stub(process, 'emitWarning'); const apiEndpoint = cloudtasksModule.v2beta3.CloudTasksClient.apiEndpoint; assert.strictEqual(apiEndpoint, 'cloudtasks.googleapis.com'); assert(stub.called); stub.restore(); }); } it('sets apiEndpoint according to universe domain camelCase', () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ universeDomain: 'example.com' }); const servicePath = client.apiEndpoint; assert.strictEqual(servicePath, 'cloudtasks.example.com'); }); it('sets apiEndpoint according to universe domain snakeCase', () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ universe_domain: 'example.com' }); const servicePath = client.apiEndpoint; assert.strictEqual(servicePath, 'cloudtasks.example.com'); }); if (typeof process === 'object' && 'env' in process) { describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { it('sets apiEndpoint from environment variable', () => { const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; const client = new cloudtasksModule.v2beta3.CloudTasksClient(); const servicePath = client.apiEndpoint; assert.strictEqual(servicePath, 'cloudtasks.example.com'); if (saved) { process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; } else { delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; } }); it('value configured in code has priority over environment variable', () => { const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; const client = new cloudtasksModule.v2beta3.CloudTasksClient({ universeDomain: 'configured.example.com' }); const servicePath = client.apiEndpoint; assert.strictEqual(servicePath, 'cloudtasks.configured.example.com'); if (saved) { process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; } else { delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; } }); }); } it('does not allow setting both universeDomain and universe_domain', () => { assert.throws(() => { new cloudtasksModule.v2beta3.CloudTasksClient({ universe_domain: 'example.com', universeDomain: 'example.net' }); }); }); it('has port', () => { const port = cloudtasksModule.v2beta3.CloudTasksClient.port; assert(port); assert(typeof port === 'number'); }); it('should create a client with no option', () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient(); assert(client); }); it('should create a client with gRPC fallback', () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ fallback: true, }); assert(client); }); it('has initialize method and supports deferred initialization', async () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); assert.strictEqual(client.cloudTasksStub, undefined); await client.initialize(); assert(client.cloudTasksStub); }); it('has close method for the initialized client', done => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); client.initialize().catch(err => { throw err; }); assert(client.cloudTasksStub); client.close().then(() => { done(); }).catch(err => { throw err; }); }); it('has close method for the non-initialized client', done => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); assert.strictEqual(client.cloudTasksStub, undefined); client.close().then(() => { done(); }).catch(err => { throw err; }); }); it('has getProjectId method', async () => { const fakeProjectId = 'fake-project-id'; const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); const result = await client.getProjectId(); assert.strictEqual(result, fakeProjectId); assert(client.auth.getProjectId.calledWithExactly()); }); it('has getProjectId method with callback', async () => { const fakeProjectId = 'fake-project-id'; const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); client.auth.getProjectId = sinon.stub().callsArgWith(0, null, fakeProjectId); const promise = new Promise((resolve, reject) => { client.getProjectId((err, projectId) => { if (err) { reject(err); } else { resolve(projectId); } }); }); const result = await promise; assert.strictEqual(result, fakeProjectId); }); }); describe('getQueue', () => { it('invokes getQueue without error', async () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); await client.initialize(); const request = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.GetQueueRequest()); const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2beta3.GetQueueRequest', ['name']); request.name = defaultValue1; const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; const expectedResponse = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.Queue()); client.innerApiCalls.getQueue = stubSimpleCall(expectedResponse); const [response] = await client.getQueue(request); assert.deepStrictEqual(response, expectedResponse); const actualRequest = client.innerApiCalls.getQueue .getCall(0).args[0]; assert.deepStrictEqual(actualRequest, request); const actualHeaderRequestParams = client.innerApiCalls.getQueue .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes getQueue without error using callback', async () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); await client.initialize(); const request = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.GetQueueRequest()); const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2beta3.GetQueueRequest', ['name']); request.name = defaultValue1; const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; const expectedResponse = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.Queue()); client.innerApiCalls.getQueue = stubSimpleCallWithCallback(expectedResponse); const promise = new Promise((resolve, reject) => { client.getQueue(request, (err, result) => { if (err) { reject(err); } else { resolve(result); } }); }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); const actualRequest = client.innerApiCalls.getQueue .getCall(0).args[0]; assert.deepStrictEqual(actualRequest, request); const actualHeaderRequestParams = client.innerApiCalls.getQueue .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes getQueue with error', async () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); await client.initialize(); const request = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.GetQueueRequest()); const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2beta3.GetQueueRequest', ['name']); request.name = defaultValue1; const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; const expectedError = new Error('expected'); client.innerApiCalls.getQueue = stubSimpleCall(undefined, expectedError); await assert.rejects(client.getQueue(request), expectedError); const actualRequest = client.innerApiCalls.getQueue .getCall(0).args[0]; assert.deepStrictEqual(actualRequest, request); const actualHeaderRequestParams = client.innerApiCalls.getQueue .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes getQueue with closed client', async () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); await client.initialize(); const request = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.GetQueueRequest()); const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2beta3.GetQueueRequest', ['name']); request.name = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close().catch(err => { throw err; }); await assert.rejects(client.getQueue(request), expectedError); }); }); describe('createQueue', () => { it('invokes createQueue without error', async () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); await client.initialize(); const request = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.CreateQueueRequest()); const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2beta3.CreateQueueRequest', ['parent']); request.parent = defaultValue1; const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; const expectedResponse = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.Queue()); client.innerApiCalls.createQueue = stubSimpleCall(expectedResponse); const [response] = await client.createQueue(request); assert.deepStrictEqual(response, expectedResponse); const actualRequest = client.innerApiCalls.createQueue .getCall(0).args[0]; assert.deepStrictEqual(actualRequest, request); const actualHeaderRequestParams = client.innerApiCalls.createQueue .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes createQueue without error using callback', async () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); await client.initialize(); const request = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.CreateQueueRequest()); const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2beta3.CreateQueueRequest', ['parent']); request.parent = defaultValue1; const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; const expectedResponse = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.Queue()); client.innerApiCalls.createQueue = stubSimpleCallWithCallback(expectedResponse); const promise = new Promise((resolve, reject) => { client.createQueue(request, (err, result) => { if (err) { reject(err); } else { resolve(result); } }); }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); const actualRequest = client.innerApiCalls.createQueue .getCall(0).args[0]; assert.deepStrictEqual(actualRequest, request); const actualHeaderRequestParams = client.innerApiCalls.createQueue .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes createQueue with error', async () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); await client.initialize(); const request = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.CreateQueueRequest()); const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2beta3.CreateQueueRequest', ['parent']); request.parent = defaultValue1; const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; const expectedError = new Error('expected'); client.innerApiCalls.createQueue = stubSimpleCall(undefined, expectedError); await assert.rejects(client.createQueue(request), expectedError); const actualRequest = client.innerApiCalls.createQueue .getCall(0).args[0]; assert.deepStrictEqual(actualRequest, request); const actualHeaderRequestParams = client.innerApiCalls.createQueue .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes createQueue with closed client', async () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); await client.initialize(); const request = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.CreateQueueRequest()); const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2beta3.CreateQueueRequest', ['parent']); request.parent = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close().catch(err => { throw err; }); await assert.rejects(client.createQueue(request), expectedError); }); }); describe('updateQueue', () => { it('invokes updateQueue without error', async () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); await client.initialize(); const request = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.UpdateQueueRequest()); request.queue ??= {}; const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2beta3.UpdateQueueRequest', ['queue', 'name']); request.queue.name = defaultValue1; const expectedHeaderRequestParams = `queue.name=${defaultValue1 ?? ''}`; const expectedResponse = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.Queue()); client.innerApiCalls.updateQueue = stubSimpleCall(expectedResponse); const [response] = await client.updateQueue(request); assert.deepStrictEqual(response, expectedResponse); const actualRequest = client.innerApiCalls.updateQueue .getCall(0).args[0]; assert.deepStrictEqual(actualRequest, request); const actualHeaderRequestParams = client.innerApiCalls.updateQueue .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes updateQueue without error using callback', async () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); await client.initialize(); const request = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.UpdateQueueRequest()); request.queue ??= {}; const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2beta3.UpdateQueueRequest', ['queue', 'name']); request.queue.name = defaultValue1; const expectedHeaderRequestParams = `queue.name=${defaultValue1 ?? ''}`; const expectedResponse = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.Queue()); client.innerApiCalls.updateQueue = stubSimpleCallWithCallback(expectedResponse); const promise = new Promise((resolve, reject) => { client.updateQueue(request, (err, result) => { if (err) { reject(err); } else { resolve(result); } }); }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); const actualRequest = client.innerApiCalls.updateQueue .getCall(0).args[0]; assert.deepStrictEqual(actualRequest, request); const actualHeaderRequestParams = client.innerApiCalls.updateQueue .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes updateQueue with error', async () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); await client.initialize(); const request = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.UpdateQueueRequest()); request.queue ??= {}; const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2beta3.UpdateQueueRequest', ['queue', 'name']); request.queue.name = defaultValue1; const expectedHeaderRequestParams = `queue.name=${defaultValue1 ?? ''}`; const expectedError = new Error('expected'); client.innerApiCalls.updateQueue = stubSimpleCall(undefined, expectedError); await assert.rejects(client.updateQueue(request), expectedError); const actualRequest = client.innerApiCalls.updateQueue .getCall(0).args[0]; assert.deepStrictEqual(actualRequest, request); const actualHeaderRequestParams = client.innerApiCalls.updateQueue .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes updateQueue with closed client', async () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); await client.initialize(); const request = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.UpdateQueueRequest()); request.queue ??= {}; const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2beta3.UpdateQueueRequest', ['queue', 'name']); request.queue.name = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close().catch(err => { throw err; }); await assert.rejects(client.updateQueue(request), expectedError); }); }); describe('deleteQueue', () => { it('invokes deleteQueue without error', async () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); await client.initialize(); const request = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.DeleteQueueRequest()); const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2beta3.DeleteQueueRequest', ['name']); request.name = defaultValue1; const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; const expectedResponse = generateSampleMessage(new protos.google.protobuf.Empty()); client.innerApiCalls.deleteQueue = stubSimpleCall(expectedResponse); const [response] = await client.deleteQueue(request); assert.deepStrictEqual(response, expectedResponse); const actualRequest = client.innerApiCalls.deleteQueue .getCall(0).args[0]; assert.deepStrictEqual(actualRequest, request); const actualHeaderRequestParams = client.innerApiCalls.deleteQueue .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes deleteQueue without error using callback', async () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); await client.initialize(); const request = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.DeleteQueueRequest()); const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2beta3.DeleteQueueRequest', ['name']); request.name = defaultValue1; const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; const expectedResponse = generateSampleMessage(new protos.google.protobuf.Empty()); client.innerApiCalls.deleteQueue = stubSimpleCallWithCallback(expectedResponse); const promise = new Promise((resolve, reject) => { client.deleteQueue(request, (err, result) => { if (err) { reject(err); } else { resolve(result); } }); }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); const actualRequest = client.innerApiCalls.deleteQueue .getCall(0).args[0]; assert.deepStrictEqual(actualRequest, request); const actualHeaderRequestParams = client.innerApiCalls.deleteQueue .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes deleteQueue with error', async () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); await client.initialize(); const request = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.DeleteQueueRequest()); const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2beta3.DeleteQueueRequest', ['name']); request.name = defaultValue1; const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; const expectedError = new Error('expected'); client.innerApiCalls.deleteQueue = stubSimpleCall(undefined, expectedError); await assert.rejects(client.deleteQueue(request), expectedError); const actualRequest = client.innerApiCalls.deleteQueue .getCall(0).args[0]; assert.deepStrictEqual(actualRequest, request); const actualHeaderRequestParams = client.innerApiCalls.deleteQueue .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes deleteQueue with closed client', async () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); await client.initialize(); const request = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.DeleteQueueRequest()); const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2beta3.DeleteQueueRequest', ['name']); request.name = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close().catch(err => { throw err; }); await assert.rejects(client.deleteQueue(request), expectedError); }); }); describe('purgeQueue', () => { it('invokes purgeQueue without error', async () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); await client.initialize(); const request = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.PurgeQueueRequest()); const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2beta3.PurgeQueueRequest', ['name']); request.name = defaultValue1; const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; const expectedResponse = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.Queue()); client.innerApiCalls.purgeQueue = stubSimpleCall(expectedResponse); const [response] = await client.purgeQueue(request); assert.deepStrictEqual(response, expectedResponse); const actualRequest = client.innerApiCalls.purgeQueue .getCall(0).args[0]; assert.deepStrictEqual(actualRequest, request); const actualHeaderRequestParams = client.innerApiCalls.purgeQueue .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes purgeQueue without error using callback', async () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); await client.initialize(); const request = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.PurgeQueueRequest()); const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2beta3.PurgeQueueRequest', ['name']); request.name = defaultValue1; const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; const expectedResponse = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.Queue()); client.innerApiCalls.purgeQueue = stubSimpleCallWithCallback(expectedResponse); const promise = new Promise((resolve, reject) => { client.purgeQueue(request, (err, result) => { if (err) { reject(err); } else { resolve(result); } }); }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); const actualRequest = client.innerApiCalls.purgeQueue .getCall(0).args[0]; assert.deepStrictEqual(actualRequest, request); const actualHeaderRequestParams = client.innerApiCalls.purgeQueue .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes purgeQueue with error', async () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); await client.initialize(); const request = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.PurgeQueueRequest()); const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2beta3.PurgeQueueRequest', ['name']); request.name = defaultValue1; const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; const expectedError = new Error('expected'); client.innerApiCalls.purgeQueue = stubSimpleCall(undefined, expectedError); await assert.rejects(client.purgeQueue(request), expectedError); const actualRequest = client.innerApiCalls.purgeQueue .getCall(0).args[0]; assert.deepStrictEqual(actualRequest, request); const actualHeaderRequestParams = client.innerApiCalls.purgeQueue .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes purgeQueue with closed client', async () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); await client.initialize(); const request = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.PurgeQueueRequest()); const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2beta3.PurgeQueueRequest', ['name']); request.name = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close().catch(err => { throw err; }); await assert.rejects(client.purgeQueue(request), expectedError); }); }); describe('pauseQueue', () => { it('invokes pauseQueue without error', async () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); await client.initialize(); const request = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.PauseQueueRequest()); const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2beta3.PauseQueueRequest', ['name']); request.name = defaultValue1; const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; const expectedResponse = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.Queue()); client.innerApiCalls.pauseQueue = stubSimpleCall(expectedResponse); const [response] = await client.pauseQueue(request); assert.deepStrictEqual(response, expectedResponse); const actualRequest = client.innerApiCalls.pauseQueue .getCall(0).args[0]; assert.deepStrictEqual(actualRequest, request); const actualHeaderRequestParams = client.innerApiCalls.pauseQueue .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes pauseQueue without error using callback', async () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); await client.initialize(); const request = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.PauseQueueRequest()); const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2beta3.PauseQueueRequest', ['name']); request.name = defaultValue1; const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; const expectedResponse = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.Queue()); client.innerApiCalls.pauseQueue = stubSimpleCallWithCallback(expectedResponse); const promise = new Promise((resolve, reject) => { client.pauseQueue(request, (err, result) => { if (err) { reject(err); } else { resolve(result); } }); }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); const actualRequest = client.innerApiCalls.pauseQueue .getCall(0).args[0]; assert.deepStrictEqual(actualRequest, request); const actualHeaderRequestParams = client.innerApiCalls.pauseQueue .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes pauseQueue with error', async () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); await client.initialize(); const request = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.PauseQueueRequest()); const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2beta3.PauseQueueRequest', ['name']); request.name = defaultValue1; const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; const expectedError = new Error('expected'); client.innerApiCalls.pauseQueue = stubSimpleCall(undefined, expectedError); await assert.rejects(client.pauseQueue(request), expectedError); const actualRequest = client.innerApiCalls.pauseQueue .getCall(0).args[0]; assert.deepStrictEqual(actualRequest, request); const actualHeaderRequestParams = client.innerApiCalls.pauseQueue .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes pauseQueue with closed client', async () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); await client.initialize(); const request = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.PauseQueueRequest()); const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2beta3.PauseQueueRequest', ['name']); request.name = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close().catch(err => { throw err; }); await assert.rejects(client.pauseQueue(request), expectedError); }); }); describe('resumeQueue', () => { it('invokes resumeQueue without error', async () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); await client.initialize(); const request = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.ResumeQueueRequest()); const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2beta3.ResumeQueueRequest', ['name']); request.name = defaultValue1; const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; const expectedResponse = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.Queue()); client.innerApiCalls.resumeQueue = stubSimpleCall(expectedResponse); const [response] = await client.resumeQueue(request); assert.deepStrictEqual(response, expectedResponse); const actualRequest = client.innerApiCalls.resumeQueue .getCall(0).args[0]; assert.deepStrictEqual(actualRequest, request); const actualHeaderRequestParams = client.innerApiCalls.resumeQueue .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes resumeQueue without error using callback', async () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); await client.initialize(); const request = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.ResumeQueueRequest()); const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2beta3.ResumeQueueRequest', ['name']); request.name = defaultValue1; const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; const expectedResponse = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.Queue()); client.innerApiCalls.resumeQueue = stubSimpleCallWithCallback(expectedResponse); const promise = new Promise((resolve, reject) => { client.resumeQueue(request, (err, result) => { if (err) { reject(err); } else { resolve(result); } }); }); const response = await promise; assert.deepStrictEqual(response, expectedResponse); const actualRequest = client.innerApiCalls.resumeQueue .getCall(0).args[0]; assert.deepStrictEqual(actualRequest, request); const actualHeaderRequestParams = client.innerApiCalls.resumeQueue .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes resumeQueue with error', async () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); await client.initialize(); const request = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.ResumeQueueRequest()); const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2beta3.ResumeQueueRequest', ['name']); request.name = defaultValue1; const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; const expectedError = new Error('expected'); client.innerApiCalls.resumeQueue = stubSimpleCall(undefined, expectedError); await assert.rejects(client.resumeQueue(request), expectedError); const actualRequest = client.innerApiCalls.resumeQueue .getCall(0).args[0]; assert.deepStrictEqual(actualRequest, request); const actualHeaderRequestParams = client.innerApiCalls.resumeQueue .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes resumeQueue with closed client', async () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); await client.initialize(); const request = generateSampleMessage(new protos.google.cloud.tasks.v2beta3.ResumeQueueRequest()); const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2beta3.ResumeQueueRequest', ['name']); request.name = defaultValue1; const expectedError = new Error('The client has already been closed.'); client.close().catch(err => { throw err; }); await assert.rejects(client.resumeQueue(request), expectedError); }); }); describe('getIamPolicy', () => { it('invokes getIamPolicy without error', async () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email: 'bogus', private_key: 'bogus' }, projectId: 'bogus', }); await client.initialize(); const request = generateSampleMessage(new protos.google.iam.v1.GetIamPolicyRequest()); const defaultValue1 = getTypeDefaultValue('.google.iam.v1.GetIamPolicyRequest', ['resource']); request.resource = defaultValue1; const expectedHeaderRequestParams = `resource=${defaultValue1 ?? ''}`; const expectedResponse = generateSampleMessage(new protos.google.iam.v1.Policy()); client.innerApiCalls.getIamPolicy = stubSimpleCall(expectedResponse); const [response] = await client.getIamPolicy(request); assert.deepStrictEqual(response, expectedResponse); const actualRequest = client.innerApiCalls.getIamPolicy .getCall(0).args[0]; assert.deepStrictEqual(actualRequest, request); const actualHeaderRequestParams = client.innerApiCalls.getIamPolicy .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); it('invokes getIamPolicy without error using callback', async () => { const client = new cloudtasksModule.v2beta3.CloudTasksClient({ credentials: { client_email