@salesforce/sobject-metadata
Version:
Retrieve Salesforce object metadata from connected org
111 lines • 5.24 kB
JavaScript
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
;