UNPKG

@panoptic-it-solutions/n8n-nodes-datto-rmm

Version:

n8n node for Datto RMM integration

99 lines 5.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const resourceMapper_1 = require("../helpers/resourceMapper"); describe('Resource Mapper', () => { let mockLoadOptionsFunctions; beforeEach(() => { mockLoadOptionsFunctions = { getNode: () => ({ id: 'test-node-id', name: 'DattoRmm', type: 'dattoRmm', typeVersion: 1, position: [0, 0], parameters: {}, }), }; }); describe('getResourceMapperFields', () => { it('should return fields for account resource', async () => { const result = await resourceMapper_1.getResourceMapperFields.call(mockLoadOptionsFunctions, 'account'); expect(result).toBeDefined(); expect(result.fields).toBeDefined(); expect(Array.isArray(result.fields)).toBe(true); const idField = result.fields.find((field) => field.id === 'id'); const createdField = result.fields.find((field) => field.id === 'createdDate'); const modifiedField = result.fields.find((field) => field.id === 'lastModified'); expect(idField).toBeDefined(); expect(createdField).toBeDefined(); expect(modifiedField).toBeDefined(); const nameField = result.fields.find((field) => field.id === 'name'); const emailField = result.fields.find((field) => field.id === 'email'); expect(nameField).toBeDefined(); expect(emailField).toBeDefined(); }); it('should return fields for device resource', async () => { const result = await resourceMapper_1.getResourceMapperFields.call(mockLoadOptionsFunctions, 'device'); expect(result.fields).toBeDefined(); const hostnameField = result.fields.find((field) => field.id === 'hostname'); const osField = result.fields.find((field) => field.id === 'operatingSystem'); const typeField = result.fields.find((field) => field.id === 'deviceType'); expect(hostnameField).toBeDefined(); expect(osField).toBeDefined(); expect(typeField).toBeDefined(); }); it('should return fields for site resource', async () => { const result = await resourceMapper_1.getResourceMapperFields.call(mockLoadOptionsFunctions, 'site'); expect(result.fields).toBeDefined(); const nameField = result.fields.find((field) => field.id === 'name'); const descField = result.fields.find((field) => field.id === 'description'); expect(nameField).toBeDefined(); expect(descField).toBeDefined(); }); it('should return fields for alert resource', async () => { const result = await resourceMapper_1.getResourceMapperFields.call(mockLoadOptionsFunctions, 'alert'); expect(result.fields).toBeDefined(); const typeField = result.fields.find((field) => field.id === 'alertType'); const priorityField = result.fields.find((field) => field.id === 'priority'); const statusField = result.fields.find((field) => field.id === 'status'); expect(typeField).toBeDefined(); expect(priorityField).toBeDefined(); expect(statusField).toBeDefined(); }); it('should return default fields for unknown resource', async () => { const result = await resourceMapper_1.getResourceMapperFields.call(mockLoadOptionsFunctions, 'unknown'); expect(result.fields).toBeDefined(); const nameField = result.fields.find((field) => field.id === 'name'); expect(nameField).toBeDefined(); }); it('should have proper field structure', async () => { const result = await resourceMapper_1.getResourceMapperFields.call(mockLoadOptionsFunctions, 'account'); const field = result.fields[0]; expect(field).toHaveProperty('id'); expect(field).toHaveProperty('displayName'); expect(field).toHaveProperty('required'); expect(field).toHaveProperty('defaultMatch'); expect(field).toHaveProperty('canBeUsedToMatch'); expect(field).toHaveProperty('display'); expect(typeof field.id).toBe('string'); expect(typeof field.displayName).toBe('string'); expect(typeof field.required).toBe('boolean'); expect(typeof field.defaultMatch).toBe('boolean'); expect(typeof field.canBeUsedToMatch).toBe('boolean'); expect(typeof field.display).toBe('boolean'); }); it('should always include base fields', async () => { const resources = ['account', 'device', 'site', 'alert', 'unknown']; for (const resource of resources) { const result = await resourceMapper_1.getResourceMapperFields.call(mockLoadOptionsFunctions, resource); const hasId = result.fields.some((field) => field.id === 'id'); const hasCreated = result.fields.some((field) => field.id === 'createdDate'); const hasModified = result.fields.some((field) => field.id === 'lastModified'); expect(hasId).toBe(true); expect(hasCreated).toBe(true); expect(hasModified).toBe(true); } }); }); }); //# sourceMappingURL=resourceMapper.test.js.map