n8n-nodes-docuseal
Version:
Manage DocuSeal documents, templates, and submissions within n8n workflows.
126 lines • 7.44 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const AiToolDescription_1 = require("../../nodes/Docuseal/AiToolDescription");
describe('AiToolDescription', () => {
describe('aiToolOperations', () => {
it('should have correct structure', () => {
expect(AiToolDescription_1.aiToolOperations).toBeDefined();
expect(Array.isArray(AiToolDescription_1.aiToolOperations)).toBe(true);
expect(AiToolDescription_1.aiToolOperations).toHaveLength(1);
});
it('should have generateDocument operation', () => {
const operation = AiToolDescription_1.aiToolOperations[0];
expect(operation).toBeDefined();
expect(operation?.displayName).toBe('Operation');
expect(operation?.name).toBe('operation');
expect(operation?.type).toBe('options');
expect(operation?.default).toBe('generateDocument');
});
it('should have correct displayOptions', () => {
const operation = AiToolDescription_1.aiToolOperations[0];
expect(operation).toBeDefined();
expect(operation?.displayOptions?.show).toEqual({
resource: ['aiTool'],
});
});
it('should have generateDocument in options', () => {
const operation = AiToolDescription_1.aiToolOperations[0];
expect(operation).toBeDefined();
const generateOption = operation?.options?.find((opt) => opt.value === 'generateDocument');
expect(generateOption).toBeDefined();
expect(generateOption?.name).toBe('Generate Document');
expect(generateOption?.description).toBe('Generate a document using AI based on a description');
expect(generateOption?.action).toBe('Generate a document with AI');
});
});
describe('aiToolFields', () => {
it('should have correct structure', () => {
expect(AiToolDescription_1.aiToolFields).toBeDefined();
expect(Array.isArray(AiToolDescription_1.aiToolFields)).toBe(true);
expect(AiToolDescription_1.aiToolFields.length).toBeGreaterThan(0);
});
it('should have documentType field', () => {
const documentTypeField = AiToolDescription_1.aiToolFields.find((field) => field.name === 'documentType');
expect(documentTypeField).toBeDefined();
expect(documentTypeField?.displayName).toBe('Document Type');
expect(documentTypeField?.type).toBe('string');
expect(documentTypeField?.required).toBe(true);
expect(documentTypeField?.placeholder).toContain('Non-disclosure agreement');
});
it('should have description field', () => {
const descriptionField = AiToolDescription_1.aiToolFields.find((field) => field.name === 'description');
expect(descriptionField).toBeDefined();
expect(descriptionField?.displayName).toBe('Document Description');
expect(descriptionField?.type).toBe('string');
expect(descriptionField?.required).toBe(true);
expect(descriptionField?.typeOptions?.rows).toBe(4);
});
it('should have additionalOptions collection', () => {
const additionalOptionsField = AiToolDescription_1.aiToolFields.find((field) => field.name === 'additionalOptions');
expect(additionalOptionsField).toBeDefined();
expect(additionalOptionsField?.displayName).toBe('Additional Options');
expect(additionalOptionsField?.type).toBe('collection');
expect(additionalOptionsField?.options).toBeDefined();
});
it('should have language option in additionalOptions', () => {
const additionalOptionsField = AiToolDescription_1.aiToolFields.find((field) => field.name === 'additionalOptions');
const languageOption = additionalOptionsField?.options?.find((opt) => opt.name === 'language');
expect(languageOption).toBeDefined();
expect(languageOption?.displayName).toBe('Language');
expect(languageOption?.type).toBe('options');
expect(languageOption?.default).toBe('en');
expect(languageOption?.options).toBeDefined();
expect(Array.isArray(languageOption?.options)).toBe(true);
});
it('should have all expected languages', () => {
const additionalOptionsField = AiToolDescription_1.aiToolFields.find((field) => field.name === 'additionalOptions');
const languageOption = additionalOptionsField?.options?.find((opt) => opt.name === 'language');
const languages = languageOption?.options;
expect(languages).toBeDefined();
expect(languages?.length).toBeGreaterThan(5);
const languageValues = languages?.map((lang) => lang.value);
expect(languageValues).toContain('en');
expect(languageValues).toContain('es');
expect(languageValues).toContain('fr');
expect(languageValues).toContain('de');
expect(languageValues).toContain('ja');
});
it('should have style option in additionalOptions', () => {
const additionalOptionsField = AiToolDescription_1.aiToolFields.find((field) => field.name === 'additionalOptions');
const styleOption = additionalOptionsField?.options?.find((opt) => opt.name === 'style');
expect(styleOption).toBeDefined();
expect(styleOption?.displayName).toBe('Style');
expect(styleOption?.type).toBe('options');
expect(styleOption?.default).toBe('formal');
});
it('should have all style options', () => {
const additionalOptionsField = AiToolDescription_1.aiToolFields.find((field) => field.name === 'additionalOptions');
const styleOption = additionalOptionsField?.options?.find((opt) => opt.name === 'style');
const styles = styleOption?.options;
expect(styles).toBeDefined();
expect(styles?.length).toBe(3);
const styleValues = styles?.map((style) => style.value);
expect(styleValues).toContain('formal');
expect(styleValues).toContain('friendly');
expect(styleValues).toContain('simple');
});
it('should have fields option in additionalOptions', () => {
const additionalOptionsField = AiToolDescription_1.aiToolFields.find((field) => field.name === 'additionalOptions');
const fieldsOption = additionalOptionsField?.options?.find((opt) => opt.name === 'fields');
expect(fieldsOption).toBeDefined();
expect(fieldsOption?.displayName).toBe('Fields to Include');
expect(fieldsOption?.type).toBe('string');
expect(fieldsOption?.placeholder).toContain('signature, date');
});
it('should have correct displayOptions for all fields', () => {
const fieldsWithDisplayOptions = AiToolDescription_1.aiToolFields.filter((field) => field.displayOptions);
fieldsWithDisplayOptions.forEach((field) => {
expect(field.displayOptions?.show).toEqual({
resource: ['aiTool'],
operation: ['generateDocument'],
});
});
});
});
});
//# sourceMappingURL=AiToolDescription.test.js.map