UNPKG

boldsign

Version:

NodeJS client for boldsign

966 lines 78.4 kB
"use strict"; 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 templateApi_1 = require("../../api/templateApi"); const brandingApi_1 = require("../../api/brandingApi"); const model_1 = require("../../model"); const fs = __importStar(require("fs")); const config_1 = __importDefault(require("../config")); describe('Template API Test suite', () => { let brandingApi; let templateApi; let brandId; let createdTemplateId; let createdTemplateId1; let createdTemplateId2; let createdTemplateId3; let createdTemplateId4; beforeAll(() => { brandId = null; createdTemplateId = null; createdTemplateId1 = null; createdTemplateId2 = null; createdTemplateId3 = null; createdTemplateId4 = null; const apiKey = config_1.default.apiKey; const baseUrl = config_1.default.baseUrl; if (!baseUrl || !apiKey) { throw new Error("Environment variables 'HOST_URL' or 'API_KEY' are not set."); } templateApi = new templateApi_1.TemplateApi(baseUrl); templateApi.setApiKey(apiKey); brandingApi = new brandingApi_1.BrandingApi(baseUrl); brandingApi.setApiKey(apiKey); }); test('Test1:should create a brand successfully', () => __awaiter(void 0, void 0, void 0, function* () { const brandName = "NodeSDK"; const brandLogo = fs.createReadStream("tests/documents/logo.jpg"); try { const createBrandApiResponse = yield brandingApi.createBrand(brandName, brandLogo); console.log("Brand created successfully:", createBrandApiResponse.brandId); brandId = createBrandApiResponse.brandId; expect(createBrandApiResponse).toBeDefined(); } catch (error) { console.log("Error occurred while creating the brand:", error); expect(error).toBeUndefined(); } }), 20000); test('Test2: should create a template successfully with signer and signer email', () => __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; const documentFile = fs.createReadStream("tests/documents/agreement.pdf"); createTemplateRequest.files = [documentFile]; try { const response = yield templateApi.createTemplate(createTemplateRequest); console.log("Template created successfully:", response); createdTemplateId = response.templateId; console.log("Created Template ID: ", createdTemplateId); } catch (error) { console.log("Error occurred while calling the API:", error.message); expect(error.message).toBeUndefined(); } }), 20000); test('Test3:Create template with existing brand ID', () => __awaiter(void 0, void 0, void 0, function* () { const signatureField = new model_1.FormField(); signatureField.fieldType = model_1.FormField.FieldTypeEnum.Signature; signatureField.pageNumber = 1; signatureField.bounds = { x: 50, y: 100, width: 150, height: 50 }; 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 = "Template with Brand"; createTemplateRequest.description = "Created with brand ID"; createTemplateRequest.documentTitle = "Brand Template"; createTemplateRequest.documentMessage = "Please sign this"; createTemplateRequest.roles = [role]; createTemplateRequest.enableReassign = true; createTemplateRequest.enableSigningOrder = true; createTemplateRequest.allowNewRoles = true; createTemplateRequest.allowMessageEditing = true; createTemplateRequest.allowNewFiles = true; createTemplateRequest.brandId = brandId; createTemplateRequest.files = [fs.createReadStream("tests/documents/agreement.pdf")]; try { const response = yield templateApi.createTemplate(createTemplateRequest); console.log("Template created:", response.templateId); } catch (error) { console.error("Error creating template:", error); expect(error).toBeUndefined(); } }), 20000); test('Test4: should create a template with form field', () => __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 = 100; bounds.height = 60; signatureField.bounds = bounds; const formFields = [signatureField]; const templateRole = new model_1.TemplateRole(); templateRole.index = 1; templateRole.name = "Hr"; templateRole.defaultSignerName = "Divya"; templateRole.defaultSignerEmail = "divya.boopathy+8@syncfusion.com"; templateRole.signerOrder = 1; templateRole.signerType = model_1.TemplateRole.SignerTypeEnum.Signer; templateRole.locale = model_1.TemplateRole.LocaleEnum.En; templateRole.formFields = formFields; templateRole.allowRoleEdit = true; templateRole.allowRoleDelete = true; const roles = [templateRole]; const createTemplateRequest = new model_1.CreateTemplateRequest(); createTemplateRequest.enableReassign = true; createTemplateRequest.allowNewRoles = true; createTemplateRequest.enablePrintAndSign = false; createTemplateRequest.documentMessage = "document message for signers"; createTemplateRequest.enableSigningOrder = false; createTemplateRequest.useTextTags = false; createTemplateRequest.title = "title of the template"; createTemplateRequest.allowMessageEditing = true; createTemplateRequest.description = "testingDescription"; createTemplateRequest.documentTitle = "title of the document"; createTemplateRequest.allowNewFiles = true; createTemplateRequest.roles = roles; const documentFile = fs.createReadStream("tests/documents/agreement.pdf"); createTemplateRequest.files = [documentFile]; try { const response = yield templateApi.createTemplate(createTemplateRequest); console.log("Template created successfully:", response); createdTemplateId1 = response.templateId; console.log("Created Template ID:", createdTemplateId1); expect(response).toBeDefined(); } catch (error) { console.error("Error occurred while calling the API:", error.message); expect(error.message).toBeUndefined(); } }), 20000); test('Test5: should create a template with multiple roles successfully', () => __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 = 100; bounds.height = 60; signatureField.bounds = bounds; const formFields = [signatureField]; const roles = []; for (let i = 1; i <= 15; i++) { const templateRole = new model_1.TemplateRole(); templateRole.index = i; templateRole.name = `Role ${i}`; templateRole.signerOrder = i; templateRole.signerType = model_1.TemplateRole.SignerTypeEnum.Signer; templateRole.locale = model_1.TemplateRole.LocaleEnum.En; templateRole.formFields = formFields; templateRole.allowRoleEdit = true; templateRole.allowRoleDelete = true; roles.push(templateRole); } const createTemplateRequest = new model_1.CreateTemplateRequest(); createTemplateRequest.enableReassign = true; createTemplateRequest.allowNewRoles = true; createTemplateRequest.enablePrintAndSign = false; createTemplateRequest.documentMessage = "document message for signers"; createTemplateRequest.enableSigningOrder = true; createTemplateRequest.useTextTags = false; createTemplateRequest.title = "Template with 15 Roles"; createTemplateRequest.allowMessageEditing = true; createTemplateRequest.description = "This is a template with 15 roles."; createTemplateRequest.documentTitle = "Multi-role template"; createTemplateRequest.allowNewFiles = true; createTemplateRequest.roles = roles; const documentFile = fs.createReadStream("tests/documents/agreement.pdf"); createTemplateRequest.files = [documentFile]; try { const response = yield templateApi.createTemplate(createTemplateRequest); console.log("Template created successfully:", response); createdTemplateId2 = response.templateId; console.log("Created Template ID:", createdTemplateId2); expect(response).toBeDefined(); } catch (error) { console.error("Error occurred while calling the API:", error.message); expect(error.message).toBeUndefined(); } }), 20000); test('Test6: should create a template with multiple files successfully', () => __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 = 100; bounds.height = 60; signatureField.bounds = bounds; const formFields = [signatureField]; const templateRole = new model_1.TemplateRole(); templateRole.index = 1; templateRole.name = "Hr"; templateRole.defaultSignerName = "Divya"; templateRole.defaultSignerEmail = "divya.boopathy+25@syncfusion.com"; templateRole.signerOrder = 1; templateRole.signerType = model_1.TemplateRole.SignerTypeEnum.Signer; templateRole.locale = model_1.TemplateRole.LocaleEnum.En; templateRole.formFields = formFields; templateRole.allowRoleEdit = true; templateRole.allowRoleDelete = true; const roles = [templateRole]; const createTemplateRequest = new model_1.CreateTemplateRequest(); createTemplateRequest.enableReassign = true; createTemplateRequest.allowNewRoles = true; createTemplateRequest.enablePrintAndSign = false; createTemplateRequest.documentMessage = "document message for signers"; createTemplateRequest.enableSigningOrder = false; createTemplateRequest.useTextTags = false; createTemplateRequest.title = "title of the template"; createTemplateRequest.allowMessageEditing = true; createTemplateRequest.description = "testingDescription"; createTemplateRequest.documentTitle = "title of the document"; createTemplateRequest.allowNewFiles = true; createTemplateRequest.roles = roles; const files = [ fs.createReadStream("tests/documents/agreement.pdf"), fs.createReadStream("tests/documents/agreement.pdf"), fs.createReadStream("tests/documents/agreement.pdf") ]; createTemplateRequest.files = files; try { const response = yield templateApi.createTemplate(createTemplateRequest); console.log("Template created successfully:", response); createdTemplateId3 = response.templateId; console.log("Created Template ID:", createdTemplateId3); expect(response).toBeDefined(); } catch (error) { console.log("Error occurred while calling the API:", error.message); expect(error.message).toBeUndefined(); } }), 20000); test('Test7: should create a template with image form field successfully', () => __awaiter(void 0, void 0, void 0, function* () { const imageField = new model_1.FormField(); imageField.name = "image"; imageField.id = "Image1"; imageField.fieldType = model_1.FormField.FieldTypeEnum.Image; imageField.font = model_1.FormField.FontEnum.Helvetica; imageField.pageNumber = 1; imageField.isRequired = true; imageField.imageInfo = new model_1.ImageInfo(); imageField.imageInfo.title = "Image Test"; imageField.imageInfo.allowedFileExtensions = ".png"; imageField.imageInfo.description = "Image for testing"; const bounds = new model_1.Rectangle(); bounds.x = 50; bounds.y = 50; bounds.width = 100; bounds.height = 150; imageField.bounds = bounds; const role = new model_1.TemplateRole(); role.index = 1; role.name = "Signer"; role.signerType = model_1.TemplateRole.SignerTypeEnum.Signer; role.defaultSignerEmail = "john.doe@example.com"; role.defaultSignerName = "John Doe"; role.signerOrder = 1; role.formFields = [imageField]; const createTemplateRequest = new model_1.CreateTemplateRequest(); createTemplateRequest.title = "New Template"; createTemplateRequest.documentTitle = "node_test_template_with_image_field"; createTemplateRequest.description = "This is a new template."; createTemplateRequest.files = [fs.createReadStream("tests/documents/agreement.pdf")]; createTemplateRequest.roles = [role]; createTemplateRequest.allowMessageEditing = true; createTemplateRequest.allowNewRoles = true; createTemplateRequest.allowNewFiles = true; createTemplateRequest.enableReassign = true; createTemplateRequest.enablePrintAndSign = false; createTemplateRequest.enableSigningOrder = true; try { const response = yield templateApi.createTemplate(createTemplateRequest); console.log("Template with image field created successfully:", response); createdTemplateId4 = response.templateId; console.log("Created Template ID (Image Field):", createdTemplateId4); } catch (error) { console.error("Error occurred while creating template with image field:", error); expect(error).toBeUndefined(); } }), 20000); test('Test8: should fail to create a template with duplicate role index', () => __awaiter(void 0, void 0, void 0, function* () { var _a, _b, _c; const role1 = new model_1.TemplateRole(); role1.index = 1; role1.name = "Signer1"; role1.signerType = model_1.TemplateRole.SignerTypeEnum.Signer; role1.signerOrder = 1; role1.locale = model_1.TemplateRole.LocaleEnum.En; role1.imposeAuthentication = model_1.TemplateRole.ImposeAuthenticationEnum.EmailOtp; role1.deliveryMode = model_1.TemplateRole.DeliveryModeEnum.Email; role1.allowFieldConfiguration = true; role1.allowRoleEdit = true; role1.allowRoleDelete = true; const role2 = new model_1.TemplateRole(); role2.index = 2; role2.name = "Reviewer1"; role2.signerType = model_1.TemplateRole.SignerTypeEnum.Reviewer; role2.signerOrder = 2; role2.locale = model_1.TemplateRole.LocaleEnum.En; role2.imposeAuthentication = model_1.TemplateRole.ImposeAuthenticationEnum.None; role2.deliveryMode = model_1.TemplateRole.DeliveryModeEnum.Email; role2.allowFieldConfiguration = false; role2.allowRoleEdit = true; role2.allowRoleDelete = true; const role3 = new model_1.TemplateRole(); role3.index = 2; role3.name = "InPersonSigner1"; role3.signerType = model_1.TemplateRole.SignerTypeEnum.Reviewer; role3.signerOrder = 3; role3.locale = model_1.TemplateRole.LocaleEnum.En; role3.imposeAuthentication = model_1.TemplateRole.ImposeAuthenticationEnum.AccessCode; role3.deliveryMode = model_1.TemplateRole.DeliveryModeEnum.Email; role3.allowFieldConfiguration = false; role3.allowRoleEdit = true; role3.allowRoleDelete = true; const createTemplateRequest = new model_1.CreateTemplateRequest(); createTemplateRequest.title = "Duplicate Role Index Test"; createTemplateRequest.documentTitle = "node_test_template_duplicate_index"; createTemplateRequest.description = "Template with duplicate role index."; createTemplateRequest.files = [ fs.createReadStream("tests/documents/agreement.pdf"), fs.createReadStream("tests/documents/agreement.pdf") ]; createTemplateRequest.roles = [role1, role2, role3]; createTemplateRequest.allowMessageEditing = true; createTemplateRequest.allowNewRoles = true; createTemplateRequest.allowNewFiles = true; createTemplateRequest.enableReassign = true; createTemplateRequest.enablePrintAndSign = false; createTemplateRequest.enableSigningOrder = true; try { const response = yield templateApi.createTemplate(createTemplateRequest); console.error("Unexpected success, test should have failed due to duplicate role index.", response.body); throw new Error("Test failed: Expected error due to duplicate role index."); } catch (error) { console.log("Expected error occurred due to duplicate role index:", ((_a = error.response) === null || _a === void 0 ? void 0 : _a.data) || error.message); expect((_b = error.response) === null || _b === void 0 ? void 0 : _b.status).toBe(400); expect((_c = error.response) === null || _c === void 0 ? void 0 : _c.statusText).toBe("Bad Request"); } }), 20000); test('Test9: should fail to create template due to missing document title', () => __awaiter(void 0, void 0, void 0, function* () { var _a, _b; const signatureField = new model_1.FormField(); signatureField.fieldType = model_1.FormField.FieldTypeEnum.Signature; signatureField.pageNumber = 1; signatureField.bounds = { x: 50, y: 100, width: 150, height: 50 }; 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 = "Missing Document Title Test"; createTemplateRequest.description = "Should fail due to missing document title"; createTemplateRequest.documentMessage = "Please check and sign"; createTemplateRequest.roles = [role]; createTemplateRequest.files = [fs.createReadStream("tests/documents/agreement.pdf")]; try { yield templateApi.createTemplate(createTemplateRequest); throw new Error("Test failed: API should have thrown an error due to missing document title."); } catch (error) { console.log("Expected error received:", ((_a = error.response) === null || _a === void 0 ? void 0 : _a.data) || error.message); expect(error.response).toBeDefined(); expect((_b = error.response) === null || _b === void 0 ? void 0 : _b.status).toBe(400); expect(error.response.statusText).toBe("Bad Request"); } }), 20000); test('Test10: should fail to create template due to empty roles array', () => __awaiter(void 0, void 0, void 0, function* () { var _a, _b; const createTemplateRequest = new model_1.CreateTemplateRequest(); createTemplateRequest.title = "Template without roles"; createTemplateRequest.description = "This template should fail due to no roles"; createTemplateRequest.documentTitle = "Missing roles test case"; createTemplateRequest.documentMessage = "Please check and sign"; createTemplateRequest.roles = []; const documentFile = fs.createReadStream("tests/documents/agreement.pdf"); createTemplateRequest.files = [documentFile]; try { yield templateApi.createTemplate(createTemplateRequest); throw new Error("Test failed: API should have thrown an error due to empty roles."); } catch (error) { console.log("Expected error for empty roles array:", ((_a = error.response) === null || _a === void 0 ? void 0 : _a.data) || error.message); expect(error.response).toBeDefined(); expect((_b = error.response) === null || _b === void 0 ? void 0 : _b.status).toBe(400); expect(error.response.statusText).toBe("Bad Request"); } }), 20000); test('Test11: should fail to create a template with empty title', () => __awaiter(void 0, void 0, void 0, function* () { var _a, _b; 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 = ""; 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; const documentFile = fs.createReadStream("tests/documents/agreement.pdf"); createTemplateRequest.files = [documentFile]; try { yield templateApi.createTemplate(createTemplateRequest); throw new Error("Test failed: API should have thrown an error due to empty title."); } catch (error) { console.log("Expected error for empty title:", ((_a = error.response) === null || _a === void 0 ? void 0 : _a.data) || error.message); expect(error.response).toBeDefined(); expect((_b = error.response) === null || _b === void 0 ? void 0 : _b.status).toBe(400); expect(error.response.statusText).toBe("Bad Request"); } }), 20000); test('Test12: should fail to create a template with form field invalid signer email', () => __awaiter(void 0, void 0, void 0, function* () { var _a; 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 = 100; bounds.height = 60; signatureField.bounds = bounds; const formFields = [signatureField]; const templateRole = new model_1.TemplateRole(); templateRole.index = 1; templateRole.name = "Hr"; templateRole.defaultSignerName = "Divya"; templateRole.defaultSignerEmail = "invalid-email"; templateRole.signerOrder = 1; templateRole.signerType = model_1.TemplateRole.SignerTypeEnum.Signer; templateRole.locale = model_1.TemplateRole.LocaleEnum.En; templateRole.formFields = formFields; templateRole.allowRoleEdit = true; templateRole.allowRoleDelete = true; const roles = [templateRole]; const createTemplateRequest = new model_1.CreateTemplateRequest(); createTemplateRequest.enableReassign = true; createTemplateRequest.allowNewRoles = true; createTemplateRequest.enablePrintAndSign = false; createTemplateRequest.documentMessage = "document message for signers"; createTemplateRequest.enableSigningOrder = false; createTemplateRequest.useTextTags = false; createTemplateRequest.title = "title of the template"; createTemplateRequest.allowMessageEditing = true; createTemplateRequest.description = "testingDescription"; createTemplateRequest.documentTitle = "title of the document"; createTemplateRequest.allowNewFiles = true; createTemplateRequest.roles = roles; const documentFile = fs.createReadStream("tests/documents/agreement.pdf"); createTemplateRequest.files = [documentFile]; try { const response = yield templateApi.createTemplate(createTemplateRequest); console.error("Unexpected success:", response); throw new Error("Template creation should have failed due to invalid email"); } catch (error) { console.log("Expected error for invalid email:", ((_a = error.response) === null || _a === void 0 ? void 0 : _a.data) || error.message); expect(error.response).toBeDefined(); expect(error.response.status).toBe(400); expect(error.response.statusText).toBe("Bad Request"); } }), 20000); test('Test13:should edit a template successfully', () => __awaiter(void 0, void 0, void 0, function* () { const editTemplateRequest = new model_1.EditTemplateRequest(); editTemplateRequest.title = "Updated NodesdkTesting"; editTemplateRequest.description = "Updated description for the template"; editTemplateRequest.documentMessage = "Updated document message for signers"; editTemplateRequest.enableReassign = true; try { const response = yield templateApi.editTemplate(createdTemplateId, editTemplateRequest); console.log("Template edited successfully:", response); } catch (error) { console.log("Error occurred while calling the API:", error.message); expect(error.message).toBeUndefined(); } }), 20000); test('Test14:should fail to edit a template with invalid template ID', () => __awaiter(void 0, void 0, void 0, function* () { const editTemplateRequest = new model_1.EditTemplateRequest(); editTemplateRequest.title = "Updated NodesdkTesting"; editTemplateRequest.description = "Updated description for the template"; editTemplateRequest.documentMessage = "Updated document message for signers"; editTemplateRequest.enableReassign = true; const invalidTemplateId = "invalid-template-id"; try { const response = yield templateApi.editTemplate(invalidTemplateId, editTemplateRequest); console.error("Unexpected success response:", response); throw new Error("Test failed, template edit should not succeed with invalid template ID"); } catch (error) { console.log("Error occurred while calling the API:", error.message); } }), 20000); test('Test15: should fail to edit a template with empty title', () => __awaiter(void 0, void 0, void 0, function* () { var _a; const editTemplateRequest = new model_1.EditTemplateRequest(); editTemplateRequest.title = ""; editTemplateRequest.description = "Updated description for the template"; editTemplateRequest.documentMessage = "Updated document message for signers"; editTemplateRequest.enableReassign = true; const validTemplateId = "valid-template-id"; try { const response = yield templateApi.editTemplate(validTemplateId, editTemplateRequest); console.error("Unexpected success response:", response); throw new Error("Test failed, template edit should not succeed with empty title"); } catch (error) { console.log("Expected error occurred for empty title:", ((_a = error.response) === null || _a === void 0 ? void 0 : _a.data) || error.message); expect(error.response).toBeDefined(); expect(error.response.status).toBe(403); expect(error.response.statusText).toBe("Forbidden"); } }), 20000); test('Test16:should add tag to template successfully', () => __awaiter(void 0, void 0, void 0, function* () { const addTag = new model_1.TemplateTag(); addTag.templateId = createdTemplateId; addTag.documentLabels = ["test", "api"]; addTag.templateLabels = ["test", "api"]; try { const response = yield templateApi.addTag(addTag); console.log("Tag added successfully:", response); } catch (error) { console.log("Error occurred while calling the API:", error.message); expect(error.message).toBeUndefined(); } }), 20000); test('Test17: should fail to add tag to template with invalid template ID', () => __awaiter(void 0, void 0, void 0, function* () { const addTag = new model_1.TemplateTag(); addTag.templateId = "INVALID_TEMPLATE_ID"; addTag.documentLabels = ["test", "api"]; addTag.templateLabels = ["test", "api"]; try { const response = yield templateApi.addTag(addTag); console.error("Unexpected success response:", response); throw new Error("Test failed, tag should not have been added with invalid template ID"); } catch (error) { console.log("Error occurred while calling the API:", error.message); expect(error.message).toBeDefined(); } }), 20000); test('Test18: should fail to add tag to template with empty document labels and template labels', () => __awaiter(void 0, void 0, void 0, function* () { const addTag = new model_1.TemplateTag(); addTag.templateId = createdTemplateId; addTag.documentLabels = []; addTag.templateLabels = []; try { const response = yield templateApi.addTag(addTag); console.error("Unexpected success response:", response); throw new Error("Test failed, tag should not have been added with empty document labels and template labels"); } catch (error) { console.log("Error occurred while calling the API:", error.message); expect(error.message).toBeDefined(); } }), 20000); test('Test19: should delete tag from template successfully', () => __awaiter(void 0, void 0, void 0, function* () { const deleteTag = new model_1.TemplateTag(); deleteTag.templateId = createdTemplateId; deleteTag.documentLabels = ["test", "api"]; deleteTag.templateLabels = ["test", "api"]; try { const response = yield templateApi.deleteTag(deleteTag); console.log("Tag deleted successfully:", response); } catch (error) { console.error("Error occurred while calling the API:", error.message); expect(error.message).toBeUndefined(); } }), 20000); test('Test20: should fail to delete tag from template with invalid template ID', () => __awaiter(void 0, void 0, void 0, function* () { const deleteTag = new model_1.TemplateTag(); deleteTag.templateId = "INVALID_TEMPLATE_ID"; deleteTag.documentLabels = ["test", "api"]; deleteTag.templateLabels = ["test", "api"]; try { const response = yield templateApi.deleteTag(deleteTag); console.error("Unexpected success response:", response); throw new Error("Test failed, tag should not have been deleted with invalid template ID"); } catch (error) { console.log("Error occurred while calling the API:", error.message); expect(error.message).toBeDefined(); } }), 20000); test('Test21: should fail to delete tag from template with valid template ID and empty labels', () => __awaiter(void 0, void 0, void 0, function* () { const deleteTag = new model_1.TemplateTag(); deleteTag.templateId = createdTemplateId; deleteTag.documentLabels = []; deleteTag.templateLabels = []; try { const response = yield templateApi.deleteTag(deleteTag); console.error("Unexpected success response:", response); throw new Error("Test failed, tag should not have been deleted with empty labels"); } catch (error) { console.log("Error occurred while calling the API:", error.message); expect(error.message).toBeDefined(); } }), 20000); test('Test22: should retrieve template properties successfully', () => __awaiter(void 0, void 0, void 0, function* () { try { const response = yield templateApi.getProperties(createdTemplateId); console.log("Template Properties:", response); expect(response).toBeDefined(); } catch (error) { console.log("Error occurred while calling the API:", error.message); expect(error.message).toBeUndefined(); } }), 20000); test('Test23: should fail to retrieve template properties with invalid template ID', () => __awaiter(void 0, void 0, void 0, function* () { const invalidTemplateId = "INVALID_TEMPLATE_ID"; try { const response = yield templateApi.getProperties(invalidTemplateId); console.error("Unexpected success response:", response); throw new Error("Test failed, API should have thrown an error for invalid template ID"); } catch (error) { console.log("Error occurred while calling the API:", error.message); } }), 20000); test('Test24: should fail to retrieve template properties with empty template', () => __awaiter(void 0, void 0, void 0, function* () { const templateId = ""; try { const response = yield templateApi.getProperties(templateId); console.error("Unexpected success response:", response); throw new Error("Test failed, API should have thrown an error for invalid template ID"); } catch (error) { console.log("Error occurred while calling the API:", error); expect(error.response.status).toBe(400); expect(error.response.statusText).toBe("Bad Request"); } }), 20000); test('Test25:should download template successfully', () => __awaiter(void 0, void 0, void 0, function* () { try { console.log("Created Template ID:", createdTemplateId1); const response = yield templateApi.download(createdTemplateId); console.log("Template downloaded successfully:", response); expect(response).toBeDefined(); } catch (error) { console.log("Error occurred while calling the API:", error.message); expect(error.message).toBeUndefined(); } }), 20000); test('Test26:should fail to download template with invalid template ID', () => __awaiter(void 0, void 0, void 0, function* () { const invalidTemplateId = "invalid-template-id"; try { const response = yield templateApi.download(invalidTemplateId); console.error("Unexpected success response:", response); throw new Error("Test failed, template download should not succeed with an invalid template ID"); } catch (error) { console.log("Error occurred while calling the API:", error.message); expect(error.message).toBeDefined(); } }), 20000); test('Test27: should send document for signing using template', () => __awaiter(void 0, void 0, void 0, function* () { 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); 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('Test28:should send document for signing using template with multiple CCs', () => __awaiter(void 0, void 0, void 0, function* () { 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 = 100; bounds.width = 100; bounds.height = 50; formField.bounds = bounds; const role = new model_1.Role(); role.roleIndex = 50; role.signerName = "Divya"; role.signerEmail = "divya.boopathy+23@syncfusion.com"; role.signerOrder = 1; role.privateMessage = "Please check and sign the document."; role.authenticationCode = "123456"; role.enableEmailOTP = false; role.signerType = model_1.Role.SignerTypeEnum.Signer; role.signerRole = "Hr"; role.formFields = [formField]; role.locale = model_1.Role.LocaleEnum.En; 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 = true; sendForSignFromTemplate.disableSMS = false; sendForSignFromTemplate.hideDocumentId = false; sendForSignFromTemplate.labels = ["Invitation"]; const ccEmails = [ { emailAddress: "divya.boopathy+5@syncfusion.com" }, { emailAddress: "divya.boopathy+8@syncfusion.com" }, { emailAddress: "divya.boopathy+9@syncfusion.com" } ]; sendForSignFromTemplate.cc = ccEmails; const reminderSettings = new model_1.ReminderSettings(); reminderSettings.reminderDays = 3; reminderSettings.reminderCount = 5; reminderSettings.enableAutoReminder = false; sendForSignFromTemplate.reminderSettings = reminderSettings; sendForSignFromTemplate.expiryDays = 180; sendForSignFromTemplate.expiryValue = 60; sendForSignFromTemplate.disableExpiryAlert = true; sendForSignFromTemplate.enablePrintAndSign = true; sendForSignFromTemplate.enableReassign = true; sendForSignFromTemplate.enableSigningOrder = true; sendForSignFromTemplate.roleRemovalIndices = [1, 2]; try { const response = yield templateApi.sendUsingTemplate(createdTemplateId, sendForSignFromTemplate); 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('Test29: should send document from template with file path', () => __awaiter(void 0, void 0, void 0, function* () { 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.signerRole = "Manager"; role.privateMessage = "Please check and sign the document"; role.formFields = [formField]; const sendForSignFromTemplate = new model_1.SendForSignFromTemplateForm(); const fileStream = fs.createReadStream("tests/documents/agreement.pdf"); sendForSignFromTemplate.files = [fileStream]; 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); console.log("Document sent for signing using template successfully:", response); expect(response).toBeDefined(); } catch (error) { console.error("Error occurred while calling the API:", error); expect(error).toBeUndefined(); } }), 20000); test('Test30: should fail to send document for signing using invalid template ID with valid fields', () => __awaiter(void 0, void 0, void 0, function* () { const templateId = "INVALID_TEMPLATE_ID"; 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.signerRole = "Manager"; role.privateMessage = "Please check and sign the document"; role.formFields = [formField]; const sendForSignFromTemplate = new model_1.SendForSignFromTemplateForm(); const files =