@google-cloud/tasks
Version:
Cloud Tasks API client for Node.js
891 lines • 122 kB
JavaScript
// 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('v2.CloudTasksClient', () => {
describe('Common methods', () => {
it('has apiEndpoint', () => {
const client = new cloudtasksModule.v2.CloudTasksClient();
const apiEndpoint = client.apiEndpoint;
assert.strictEqual(apiEndpoint, 'cloudtasks.googleapis.com');
});
it('has universeDomain', () => {
const client = new cloudtasksModule.v2.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.v2.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.v2.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.v2.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.v2.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.v2.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.v2.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.v2.CloudTasksClient({ universe_domain: 'example.com', universeDomain: 'example.net' }); });
});
it('has port', () => {
const port = cloudtasksModule.v2.CloudTasksClient.port;
assert(port);
assert(typeof port === 'number');
});
it('should create a client with no option', () => {
const client = new cloudtasksModule.v2.CloudTasksClient();
assert(client);
});
it('should create a client with gRPC fallback', () => {
const client = new cloudtasksModule.v2.CloudTasksClient({
fallback: true,
});
assert(client);
});
it('has initialize method and supports deferred initialization', async () => {
const client = new cloudtasksModule.v2.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.v2.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.v2.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.v2.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.v2.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.v2.CloudTasksClient({
credentials: { client_email: 'bogus', private_key: 'bogus' },
projectId: 'bogus',
});
await client.initialize();
const request = generateSampleMessage(new protos.google.cloud.tasks.v2.GetQueueRequest());
const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2.GetQueueRequest', ['name']);
request.name = defaultValue1;
const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`;
const expectedResponse = generateSampleMessage(new protos.google.cloud.tasks.v2.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.v2.CloudTasksClient({
credentials: { client_email: 'bogus', private_key: 'bogus' },
projectId: 'bogus',
});
await client.initialize();
const request = generateSampleMessage(new protos.google.cloud.tasks.v2.GetQueueRequest());
const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2.GetQueueRequest', ['name']);
request.name = defaultValue1;
const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`;
const expectedResponse = generateSampleMessage(new protos.google.cloud.tasks.v2.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.v2.CloudTasksClient({
credentials: { client_email: 'bogus', private_key: 'bogus' },
projectId: 'bogus',
});
await client.initialize();
const request = generateSampleMessage(new protos.google.cloud.tasks.v2.GetQueueRequest());
const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2.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.v2.CloudTasksClient({
credentials: { client_email: 'bogus', private_key: 'bogus' },
projectId: 'bogus',
});
await client.initialize();
const request = generateSampleMessage(new protos.google.cloud.tasks.v2.GetQueueRequest());
const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2.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.v2.CloudTasksClient({
credentials: { client_email: 'bogus', private_key: 'bogus' },
projectId: 'bogus',
});
await client.initialize();
const request = generateSampleMessage(new protos.google.cloud.tasks.v2.CreateQueueRequest());
const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2.CreateQueueRequest', ['parent']);
request.parent = defaultValue1;
const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`;
const expectedResponse = generateSampleMessage(new protos.google.cloud.tasks.v2.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.v2.CloudTasksClient({
credentials: { client_email: 'bogus', private_key: 'bogus' },
projectId: 'bogus',
});
await client.initialize();
const request = generateSampleMessage(new protos.google.cloud.tasks.v2.CreateQueueRequest());
const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2.CreateQueueRequest', ['parent']);
request.parent = defaultValue1;
const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`;
const expectedResponse = generateSampleMessage(new protos.google.cloud.tasks.v2.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.v2.CloudTasksClient({
credentials: { client_email: 'bogus', private_key: 'bogus' },
projectId: 'bogus',
});
await client.initialize();
const request = generateSampleMessage(new protos.google.cloud.tasks.v2.CreateQueueRequest());
const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2.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.v2.CloudTasksClient({
credentials: { client_email: 'bogus', private_key: 'bogus' },
projectId: 'bogus',
});
await client.initialize();
const request = generateSampleMessage(new protos.google.cloud.tasks.v2.CreateQueueRequest());
const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2.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.v2.CloudTasksClient({
credentials: { client_email: 'bogus', private_key: 'bogus' },
projectId: 'bogus',
});
await client.initialize();
const request = generateSampleMessage(new protos.google.cloud.tasks.v2.UpdateQueueRequest());
request.queue ??= {};
const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2.UpdateQueueRequest', ['queue', 'name']);
request.queue.name = defaultValue1;
const expectedHeaderRequestParams = `queue.name=${defaultValue1 ?? ''}`;
const expectedResponse = generateSampleMessage(new protos.google.cloud.tasks.v2.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.v2.CloudTasksClient({
credentials: { client_email: 'bogus', private_key: 'bogus' },
projectId: 'bogus',
});
await client.initialize();
const request = generateSampleMessage(new protos.google.cloud.tasks.v2.UpdateQueueRequest());
request.queue ??= {};
const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2.UpdateQueueRequest', ['queue', 'name']);
request.queue.name = defaultValue1;
const expectedHeaderRequestParams = `queue.name=${defaultValue1 ?? ''}`;
const expectedResponse = generateSampleMessage(new protos.google.cloud.tasks.v2.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.v2.CloudTasksClient({
credentials: { client_email: 'bogus', private_key: 'bogus' },
projectId: 'bogus',
});
await client.initialize();
const request = generateSampleMessage(new protos.google.cloud.tasks.v2.UpdateQueueRequest());
request.queue ??= {};
const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2.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.v2.CloudTasksClient({
credentials: { client_email: 'bogus', private_key: 'bogus' },
projectId: 'bogus',
});
await client.initialize();
const request = generateSampleMessage(new protos.google.cloud.tasks.v2.UpdateQueueRequest());
request.queue ??= {};
const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2.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.v2.CloudTasksClient({
credentials: { client_email: 'bogus', private_key: 'bogus' },
projectId: 'bogus',
});
await client.initialize();
const request = generateSampleMessage(new protos.google.cloud.tasks.v2.DeleteQueueRequest());
const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2.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.v2.CloudTasksClient({
credentials: { client_email: 'bogus', private_key: 'bogus' },
projectId: 'bogus',
});
await client.initialize();
const request = generateSampleMessage(new protos.google.cloud.tasks.v2.DeleteQueueRequest());
const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2.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.v2.CloudTasksClient({
credentials: { client_email: 'bogus', private_key: 'bogus' },
projectId: 'bogus',
});
await client.initialize();
const request = generateSampleMessage(new protos.google.cloud.tasks.v2.DeleteQueueRequest());
const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2.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.v2.CloudTasksClient({
credentials: { client_email: 'bogus', private_key: 'bogus' },
projectId: 'bogus',
});
await client.initialize();
const request = generateSampleMessage(new protos.google.cloud.tasks.v2.DeleteQueueRequest());
const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2.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.v2.CloudTasksClient({
credentials: { client_email: 'bogus', private_key: 'bogus' },
projectId: 'bogus',
});
await client.initialize();
const request = generateSampleMessage(new protos.google.cloud.tasks.v2.PurgeQueueRequest());
const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2.PurgeQueueRequest', ['name']);
request.name = defaultValue1;
const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`;
const expectedResponse = generateSampleMessage(new protos.google.cloud.tasks.v2.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.v2.CloudTasksClient({
credentials: { client_email: 'bogus', private_key: 'bogus' },
projectId: 'bogus',
});
await client.initialize();
const request = generateSampleMessage(new protos.google.cloud.tasks.v2.PurgeQueueRequest());
const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2.PurgeQueueRequest', ['name']);
request.name = defaultValue1;
const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`;
const expectedResponse = generateSampleMessage(new protos.google.cloud.tasks.v2.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.v2.CloudTasksClient({
credentials: { client_email: 'bogus', private_key: 'bogus' },
projectId: 'bogus',
});
await client.initialize();
const request = generateSampleMessage(new protos.google.cloud.tasks.v2.PurgeQueueRequest());
const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2.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.v2.CloudTasksClient({
credentials: { client_email: 'bogus', private_key: 'bogus' },
projectId: 'bogus',
});
await client.initialize();
const request = generateSampleMessage(new protos.google.cloud.tasks.v2.PurgeQueueRequest());
const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2.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.v2.CloudTasksClient({
credentials: { client_email: 'bogus', private_key: 'bogus' },
projectId: 'bogus',
});
await client.initialize();
const request = generateSampleMessage(new protos.google.cloud.tasks.v2.PauseQueueRequest());
const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2.PauseQueueRequest', ['name']);
request.name = defaultValue1;
const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`;
const expectedResponse = generateSampleMessage(new protos.google.cloud.tasks.v2.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.v2.CloudTasksClient({
credentials: { client_email: 'bogus', private_key: 'bogus' },
projectId: 'bogus',
});
await client.initialize();
const request = generateSampleMessage(new protos.google.cloud.tasks.v2.PauseQueueRequest());
const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2.PauseQueueRequest', ['name']);
request.name = defaultValue1;
const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`;
const expectedResponse = generateSampleMessage(new protos.google.cloud.tasks.v2.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.v2.CloudTasksClient({
credentials: { client_email: 'bogus', private_key: 'bogus' },
projectId: 'bogus',
});
await client.initialize();
const request = generateSampleMessage(new protos.google.cloud.tasks.v2.PauseQueueRequest());
const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2.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.v2.CloudTasksClient({
credentials: { client_email: 'bogus', private_key: 'bogus' },
projectId: 'bogus',
});
await client.initialize();
const request = generateSampleMessage(new protos.google.cloud.tasks.v2.PauseQueueRequest());
const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2.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.v2.CloudTasksClient({
credentials: { client_email: 'bogus', private_key: 'bogus' },
projectId: 'bogus',
});
await client.initialize();
const request = generateSampleMessage(new protos.google.cloud.tasks.v2.ResumeQueueRequest());
const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2.ResumeQueueRequest', ['name']);
request.name = defaultValue1;
const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`;
const expectedResponse = generateSampleMessage(new protos.google.cloud.tasks.v2.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.v2.CloudTasksClient({
credentials: { client_email: 'bogus', private_key: 'bogus' },
projectId: 'bogus',
});
await client.initialize();
const request = generateSampleMessage(new protos.google.cloud.tasks.v2.ResumeQueueRequest());
const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2.ResumeQueueRequest', ['name']);
request.name = defaultValue1;
const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`;
const expectedResponse = generateSampleMessage(new protos.google.cloud.tasks.v2.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.v2.CloudTasksClient({
credentials: { client_email: 'bogus', private_key: 'bogus' },
projectId: 'bogus',
});
await client.initialize();
const request = generateSampleMessage(new protos.google.cloud.tasks.v2.ResumeQueueRequest());
const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2.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.v2.CloudTasksClient({
credentials: { client_email: 'bogus', private_key: 'bogus' },
projectId: 'bogus',
});
await client.initialize();
const request = generateSampleMessage(new protos.google.cloud.tasks.v2.ResumeQueueRequest());
const defaultValue1 = getTypeDefaultValue('.google.cloud.tasks.v2.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.v2.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.v2.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.inner