boldsign
Version:
NodeJS client for boldsign
368 lines • 18.2 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const api_1 = require("../../api");
const model_1 = require("../../model");
const config_1 = __importDefault(require("../config"));
const fs = __importStar(require("fs"));
const perf_hooks_1 = require("perf_hooks");
describe('Full Integration & Performance Test Suite', () => {
let senderIdentitiesApi;
let brandingApi;
let contactsApi;
let customFieldApi;
let documentApi;
let templateApi;
let teamsApi;
let userApi;
let brandId;
let createdUserId;
let teamName;
let createdCustomFieldId;
let createdSenderIdentityId;
let createdDocumentId;
let createdTemplateId;
let emailId;
let customFieldName;
const generateRandomEmail = () => `sdktesting${Math.floor(1000 + Math.random() * 9000)}@syncfusion.com`;
const generateRandomNumber = () => Math.floor(1000 + Math.random() * 9000).toString();
beforeAll(() => {
const apiKey = config_1.default.apiKey;
const baseUrl = config_1.default.baseUrl;
if (!apiKey || !baseUrl) {
throw new Error("Environment variables 'API_KEY' or 'HOST_URL' are not set.");
}
brandingApi = new api_1.BrandingApi(baseUrl);
brandingApi.setApiKey(apiKey);
contactsApi = new api_1.ContactsApi(baseUrl);
contactsApi.setApiKey(apiKey);
customFieldApi = new api_1.CustomFieldApi(baseUrl);
customFieldApi.setApiKey(apiKey);
documentApi = new api_1.DocumentApi(baseUrl);
documentApi.setApiKey(apiKey);
templateApi = new api_1.TemplateApi(baseUrl);
templateApi.setApiKey(apiKey);
senderIdentitiesApi = new api_1.SenderIdentitiesApi(baseUrl);
senderIdentitiesApi.setApiKey(apiKey);
teamsApi = new api_1.TeamsApi(baseUrl);
teamsApi.setApiKey(apiKey);
userApi = new api_1.UserApi(baseUrl);
userApi.setApiKey(apiKey);
emailId = generateRandomEmail();
customFieldName = `Test Custom Field ${generateRandomNumber()}`;
teamName = `sdktestingteam${generateRandomNumber()}`;
});
test('Performance Test 1: Create a brand', () => __awaiter(void 0, void 0, void 0, function* () {
const brandLogo = fs.createReadStream("tests/documents/logo.jpg");
const start = perf_hooks_1.performance.now();
try {
const response = yield brandingApi.createBrand("NodeSDK_Perf", brandLogo, "Blue", "Black", "White", "{SenderName} from Syncfusion");
const end = perf_hooks_1.performance.now();
const duration = end - start;
console.log(`Brand creation took ${duration.toFixed(10)} ms`);
brandId = response.brandId;
expect(brandId).toBeDefined();
expect(duration).toBeLessThan(10000);
}
catch (error) {
console.error("Error during brand creation:", error.message);
expect(error).toBeUndefined();
}
}), 20000);
test('Performance Test 2: Create a contact', () => __awaiter(void 0, void 0, void 0, function* () {
const contactDetails = new model_1.ContactDetails();
contactDetails.name = "sdktesting";
contactDetails.email = emailId;
const start = perf_hooks_1.performance.now();
try {
const response = yield contactsApi.createContact([contactDetails]);
const end = perf_hooks_1.performance.now();
const duration = end - start;
console.log(`Contact creationcontac took ${duration.toFixed(10)} ms`);
expect(response).toBeDefined();
expect(duration).toBeLessThan(10000);
}
catch (error) {
console.error("Error during contact creation:", error);
expect(error).toBeUndefined();
}
}), 20000);
test('Performance Test 3: Create a custom field', () => __awaiter(void 0, void 0, void 0, function* () {
const formField = new model_1.CustomFormField();
formField.fieldType = model_1.CustomFormField.FieldTypeEnum.Signature;
formField.placeHolder = "string";
formField.isRequired = true;
const customFieldDetails = new model_1.BrandCustomFieldDetails();
customFieldDetails.fieldName = customFieldName;
customFieldDetails.fieldDescription = "string";
customFieldDetails.fieldOrder = 2;
customFieldDetails.brandId = brandId;
customFieldDetails.sharedField = true;
customFieldDetails.formField = formField;
const start = perf_hooks_1.performance.now();
try {
const response = yield customFieldApi.createCustomField(customFieldDetails);
const end = perf_hooks_1.performance.now();
const duration = end - start;
console.log(`Custom field creation took ${duration.toFixed(10)} ms`);
createdCustomFieldId = response.customFieldId;
expect(createdCustomFieldId).toBeDefined();
expect(duration).toBeLessThan(10000);
}
catch (error) {
console.error("Error during custom field creation:", error.message);
expect(error).toBeUndefined();
}
}), 20000);
test('Performance Test 4: Send document for signing', () => __awaiter(void 0, void 0, void 0, function* () {
const signer = new model_1.DocumentSigner();
signer.name = 'Test Signer';
signer.emailAddress = 'mohammedmushraf.abuthakir+6@syncfusion.com';
signer.signerOrder = 1;
signer.signerType = model_1.DocumentSigner.SignerTypeEnum.Signer;
signer.authenticationType = model_1.DocumentSigner.AuthenticationTypeEnum.AccessCode;
signer.authenticationCode = '123456';
signer.authenticationSettings = {
authenticationFrequency: model_1.AuthenticationSettings.AuthenticationFrequencyEnum.EveryAccess
};
const formField = new model_1.FormField();
formField.name = 'Sign';
formField.fieldType = model_1.FormField.FieldTypeEnum.Signature;
formField.font = model_1.FormField.FontEnum.Helvetica;
formField.pageNumber = 1;
formField.isRequired = true;
formField.bounds = new model_1.Rectangle();
signer.formFields = [formField];
signer.privateMessage = 'This is a private message for signer';
const sendRequest = new model_1.SendForSign();
sendRequest.title = 'Document SDK API';
sendRequest.files = [fs.createReadStream('tests/documents/agreement.pdf')];
sendRequest.enablePrintAndSign = true;
sendRequest.signers = [signer];
sendRequest.message = 'Please sign this document';
const start = perf_hooks_1.performance.now();
try {
const response = yield documentApi.sendDocument(sendRequest);
const end = perf_hooks_1.performance.now();
const duration = end - start;
console.log(`Document sending took ${duration.toFixed(10)} ms`);
createdDocumentId = response.documentId;
expect(createdDocumentId).toBeDefined();
expect(duration).toBeLessThan(10000);
}
catch (error) {
console.error("Error during document sending:", error);
expect(error).toBeUndefined();
}
}), 20000);
test('Performance Test 5: Create a template', () => __awaiter(void 0, void 0, void 0, function* () {
const signatureField = new model_1.FormField();
signatureField.fieldType = model_1.FormField.FieldTypeEnum.Signature;
signatureField.pageNumber = 1;
const bounds = new model_1.Rectangle();
bounds.x = 50;
bounds.y = 100;
bounds.width = 150;
bounds.height = 50;
signatureField.bounds = bounds;
const role = new model_1.TemplateRole();
role.index = 1;
role.name = "Signer";
role.defaultSignerName = "John Doe";
role.defaultSignerEmail = "johndoe@example.com";
role.signerOrder = 1;
role.signerType = model_1.TemplateRole.SignerTypeEnum.Signer;
role.formFields = [signatureField];
const createTemplateRequest = new model_1.CreateTemplateRequest();
createTemplateRequest.title = "Testing node sdk";
createTemplateRequest.description = "Testing integration test case";
createTemplateRequest.documentTitle = "Node sdk test case";
createTemplateRequest.documentMessage = "Please check and sign";
createTemplateRequest.roles = [role];
createTemplateRequest.enableReassign = true;
createTemplateRequest.enableSigningOrder = true;
createTemplateRequest.allowNewRoles = true;
createTemplateRequest.allowMessageEditing = true;
createTemplateRequest.allowNewFiles = true;
createTemplateRequest.files = [fs.createReadStream("tests/documents/agreement.pdf")];
const start = perf_hooks_1.performance.now();
try {
const response = yield templateApi.createTemplate(createTemplateRequest);
const end = perf_hooks_1.performance.now();
const duration = end - start;
console.log(`Template creation took ${duration.toFixed(10)} ms`);
createdTemplateId = response.templateId;
expect(createdTemplateId).toBeDefined();
expect(duration).toBeLessThan(10000);
}
catch (error) {
console.error("Error during template creation:", error.message);
expect(error).toBeUndefined();
}
}), 20000);
test('Performanc Test 6: should send document for signing using template', () => __awaiter(void 0, void 0, void 0, function* () {
const start = perf_hooks_1.performance.now();
const formField = new model_1.FormField();
formField.fieldType = model_1.FormField.FieldTypeEnum.Signature;
formField.pageNumber = 1;
const bounds = new model_1.Rectangle();
bounds.x = 100;
bounds.y = 50;
bounds.width = 100;
bounds.height = 100;
formField.bounds = bounds;
const role = new model_1.Role();
role.roleIndex = 50;
role.signerName = "Divya";
role.signerEmail = "divya.boopathy+20@syncfusion.com";
role.signerOrder = 1;
role.enableEmailOTP = false;
role.signerType = model_1.Role.SignerTypeEnum.Signer;
role.authenticationType = model_1.Role.AuthenticationTypeEnum.AccessCode;
role.authenticationCode = '123456';
role.authenticationSettings = {
authenticationFrequency: model_1.AuthenticationSettings.AuthenticationFrequencyEnum.EveryAccess
};
role.signerRole = "Manager";
role.privateMessage = "Please check and sign the document";
role.formFields = [formField];
const sendForSignFromTemplate = new model_1.SendForSignFromTemplateForm();
const files = fs.createReadStream("tests/documents/agreement.pdf");
sendForSignFromTemplate.files = [files];
sendForSignFromTemplate.title = "Invitation form";
sendForSignFromTemplate.message = "Kindly review and sign this.";
sendForSignFromTemplate.roles = [role];
sendForSignFromTemplate.disableEmails = false;
sendForSignFromTemplate.disableSMS = false;
sendForSignFromTemplate.hideDocumentId = true;
sendForSignFromTemplate.labels = ["Invitation", "Form", "Test"];
const reminderSettings = new model_1.ReminderSettings();
reminderSettings.reminderDays = 3;
reminderSettings.reminderCount = 5;
reminderSettings.enableAutoReminder = false;
sendForSignFromTemplate.reminderSettings = reminderSettings;
sendForSignFromTemplate.expiryValue = 60;
sendForSignFromTemplate.disableExpiryAlert = true;
sendForSignFromTemplate.enablePrintAndSign = true;
sendForSignFromTemplate.enableReassign = true;
sendForSignFromTemplate.enableSigningOrder = true;
try {
const response = yield templateApi.sendUsingTemplate(createdTemplateId, sendForSignFromTemplate);
const end = perf_hooks_1.performance.now();
const duration = end - start;
console.log(`Send document from template took ${duration.toFixed(10)} ms`);
expect(duration).toBeLessThan(10000);
console.log("Document sent for signing using template successfully:", response);
expect(response).toBeDefined();
}
catch (error) {
console.error("Error occurred while calling the API:", error.message);
expect(error.message).toBeUndefined();
}
}), 20000);
test('Performance Test 7: should create sender identity successfully', () => __awaiter(void 0, void 0, void 0, function* () {
const start = perf_hooks_1.performance.now();
const createSenderIdentityRequest = new model_1.CreateSenderIdentityRequest();
createSenderIdentityRequest.name = "SenderIdentity API";
createSenderIdentityRequest.email = emailId;
createSenderIdentityRequest.redirectUrl = "https://boldsign.com";
try {
const response = yield senderIdentitiesApi.createSenderIdentities(createSenderIdentityRequest);
console.log("Sender Identity created successfully:", response);
createdSenderIdentityId = response;
console.log("Created Sender Identity ID:", createdSenderIdentityId);
const end = perf_hooks_1.performance.now();
const duration = end - start;
console.log(`Sender Identity creation took ${duration.toFixed(10)} ms`);
expect(duration).toBeLessThan(10000);
expect(response).toBeDefined();
}
catch (error) {
console.log("Error occurred while calling the API:", error.message);
expect(error.message).toBeUndefined();
}
}), 20000);
test('Performance test 8: should create team successfully', () => __awaiter(void 0, void 0, void 0, function* () {
const start = perf_hooks_1.performance.now();
const createTeamRequest = new model_1.CreateTeamRequest();
createTeamRequest.teamName = teamName;
try {
const createTeamResponse = yield teamsApi.createTeam(createTeamRequest);
console.log('Team created successfully:', createTeamResponse);
const end = perf_hooks_1.performance.now();
const duration = end - start;
console.log(`Teams creation took ${duration.toFixed(10)} ms`);
expect(duration).toBeLessThan(10000);
expect(createTeamResponse).toBeDefined();
}
catch (error) {
console.error('Error occurred while creating team:', error.message);
expect(error.message).toBeUndefined();
}
}), 20000);
test('Performance test 9:should create user successfully', () => __awaiter(void 0, void 0, void 0, function* () {
const start = perf_hooks_1.performance.now();
const createUserRequest = new model_1.CreateUser();
createUserRequest.emailId = emailId;
createUserRequest.userRole = model_1.CreateUser.UserRoleEnum.Member;
try {
const response = yield userApi.createUser([createUserRequest]);
console.log("User created successfully:", response);
console.log("Created User ID:", createdUserId);
const end = perf_hooks_1.performance.now();
const duration = end - start;
console.log(`User creation took ${duration.toFixed(10)} ms`);
expect(duration).toBeLessThan(10000);
expect(response).toBeDefined();
}
catch (error) {
console.error("Error occurred while calling the API:", error.message);
expect(error.message).toBeUndefined();
}
}), 20000);
});
//# sourceMappingURL=performanceApiTest.spec.js.map