UNPKG

@salesforce/sobject-metadata

Version:

Retrieve Salesforce object metadata from connected org

111 lines 5.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /* * Copyright (c) 2020, salesforce.com, inc. * All rights reserved. * Licensed under the BSD 3-Clause license. * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ const core_1 = require("@salesforce/core"); const testSetup_1 = require("@salesforce/core/lib/testSetup"); const sinon_1 = require("sinon"); const sobjectApi_1 = require("./sobjectApi"); const testData_1 = require("./testData"); const sobjectService_1 = require("./sobjectService"); const $$ = testSetup_1.testSetup(); describe('SObjectService', () => { let mockConnection; let sObjectService; let sandboxStub; const testData = new testSetup_1.MockTestOrgData(); beforeEach(async () => { sandboxStub = sinon_1.createSandbox(); $$.setConfigStubContents('AuthInfoConfig', { contents: await testData.getConfig(), }); mockConnection = await core_1.Connection.create({ authInfo: await core_1.AuthInfo.create({ username: testData.username, }), }); sObjectService = new sobjectService_1.SObjectService(mockConnection); }); afterEach(() => { sandboxStub.restore(); }); it('should retrieve all object names when object type is ALL', async () => { sandboxStub .stub(sObjectService.connection, 'describeGlobal') .returns(Promise.resolve(testData_1.SObjectTestData.globalDesc)); const expectedValue = ['Simon', 'Garfunkel']; const actualValue = await sObjectService.retrieveSObjectNames(sobjectService_1.SObjectType.ALL); expect(actualValue).toEqual(expectedValue); }); it('should retrieve standard object names when object type is STANDARD', async () => { sandboxStub .stub(sObjectService.connection, 'describeGlobal') .returns(Promise.resolve(testData_1.SObjectTestData.globalDesc)); const expectedValue = ['Simon']; const actualValue = await sObjectService.retrieveSObjectNames(sobjectService_1.SObjectType.STANDARD); expect(actualValue).toEqual(expectedValue); }); it('should retrieve custom object names when object type is CUSTOM', async () => { sandboxStub .stub(sObjectService.connection, 'describeGlobal') .returns(Promise.resolve(testData_1.SObjectTestData.globalDesc)); const expectedValue = ['Garfunkel']; const actualValue = await sObjectService.retrieveSObjectNames(sobjectService_1.SObjectType.CUSTOM); expect(actualValue).toEqual(expectedValue); }); it('should reject when getting object names fails', async () => { sandboxStub.stub(sObjectService.connection, 'describeGlobal').rejects(); await expect(sObjectService.retrieveSObjectNames()).rejects.toThrow(); }); it('should return sobject description when single request succeeds', async () => { const sObjectName = testData_1.SObjectTestData.customSObject.name; const timestamp = 'Fri, 07 Aug 2020 12:00:00 GMT'; const result = { sObjectName, result: testData_1.SObjectTestData.customSObject, timestamp, }; sandboxStub .stub(sobjectApi_1.SObjectDescribeAPI.prototype, 'describeSObject') .returns(Promise.resolve(result)); const expectedValue = testData_1.SObjectTestData.customSObject; const actualValue = await sObjectService.describeSObject(sObjectName); expect(actualValue).toEqual(expectedValue); }); it('should reject when describing an object fails', async () => { const sObjectName = testData_1.SObjectTestData.customSObject.name; sandboxStub .stub(sobjectApi_1.SObjectDescribeAPI.prototype, 'describeSObject') .rejects('ERROR'); await expect(sObjectService.describeSObject(sObjectName)).rejects.toThrow(); }); it('should return sobject description array when batch request succeeds', async () => { const sObjectName = testData_1.SObjectTestData.customSObject.name; const timestamp = 'Fri, 07 Aug 2020 12:00:00 GMT'; const result = [ { sObjectName, result: testData_1.SObjectTestData.customSObject, timestamp, }, ]; sandboxStub .stub(sobjectApi_1.SObjectDescribeAPI.prototype, 'describeSObjectBatch') .returns(Promise.resolve(result)); const expectedValue = [testData_1.SObjectTestData.customSObject]; const actualValue = await sObjectService.describeSObjects([sObjectName]); expect(actualValue).toEqual(expectedValue); }); it('should reject when batch describing objects fails', async () => { const sObjectName = testData_1.SObjectTestData.customSObject.name; sandboxStub .stub(sobjectApi_1.SObjectDescribeAPI.prototype, 'describeSObjectBatch') .rejects('ERROR'); await expect(sObjectService.describeSObjects([sObjectName])).rejects.toThrow(); }); }); //# sourceMappingURL=sobjectService.test.js.map