package-xml
Version:
Build a Salesforce Package.xml file from a src directory
121 lines (103 loc) • 4.35 kB
JavaScript
var chai = require('chai')
var chaiAsPromised = require('chai-as-promised')
chai.use(chaiAsPromised)
var expect = chai.expect
var fs = require('fs-extra')
var xml = require('libxmljs')
var utils = require('./../js/packageUtils')
var mocks = require('./../js/mocks')
var getMembers = require('./../js/members')
var path = require('path')
describe('Generate a package XML', function () {
this.timeout(30000);
var home = process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME']
var fixtures = path.resolve(home, 'GitHub', 'package-xml', 'test', 'fixtures')
var root = path.resolve(fixtures, 'src')
var empty = path.resolve(fixtures, 'empty')
var metadata, generator, getDirectoryContentsPromise
before(function () {
getDirectoryContentsPromise = utils.getDirectoryContents(root)
metadata = utils.getMetadataTypes()
generator = require('./../js/packageXmlGenerator')
})
it('should get Custom Applications', function () {
return getDirectoryContentsPromise.then(files => {
var members = getMembers('CustomApplication', files, metadata, true)
expect(members).to.contain('Collaboration')
})
})
it('should get Components', function () {
return getDirectoryContentsPromise.then(files => {
var members = getMembers('ApexComponent', files, metadata, true)
expect(members).to.contain('MyhelloWorld')
})
})
it('should get Custom Objects', function () {
return getDirectoryContentsPromise.then(files => {
var members = getMembers('CustomObject', files, metadata, true)
expect(members).to.contain('MyFirstObject__c')
})
})
it('should get Platform Events', function () {
return getDirectoryContentsPromise.then(files => {
var members = getMembers('CustomObject', files, metadata, true)
expect(members).to.contain('PlatformEvent__e')
})
})
it('should get Custom Apex Classes', function () {
return getDirectoryContentsPromise.then(files => {
var members = getMembers('ApexClass', files, metadata, true)
expect(members).to.contain('MyhelloWorld')
})
})
it('should get Custom Apex Pages', function () {
return getDirectoryContentsPromise.then(files => {
var members = getMembers('ApexPage', files, metadata, true)
expect(members).to.contain('SampleApexPage')
})
})
it('should get Custom Apex Triggers', function () {
return getDirectoryContentsPromise.then(files => {
var members = getMembers('ApexTrigger', files, metadata, true)
expect(members).to.contain('MyHelloWorld')
})
})
it('should get Groups', function () {
return getDirectoryContentsPromise.then(files => {
var members = getMembers('Group', files, metadata, true)
expect(members).to.contain('Provider_Sharing')
})
})
it('should get Connected Apps', function(){
return getDirectoryContentsPromise.then(files=>{
var members = getMembers('ConnectedApp', files, metadata, false)
expect(members).to.contain('sample')
})
})
it('should get Global Value Sets', function(){
return getDirectoryContentsPromise.then(files=>{
var members = getMembers('GlobalValueSet', files, metadata, false)
expect(members).to.contain('Territories')
})
})
it('should get Content Assets', function(){
return getDirectoryContentsPromise.then(files=>{
var members = getMembers('ContentAsset', files, metadata, false)
expect(members).to.contain('MyAsset')
})
})
it('should get PermissionSetGroups', function () {
return getDirectoryContentsPromise.then(files => {
var members = getMembers('PermissionSetGroup', files, metadata, true)
expect(members).to.contain('TestPermissionSetGroup')
})
})
it('should make a sample Package XML from an empty directory', function () {
var config = {
dir: empty,
name: 'Test & Package',
version: '36.0'
}
return expect(generator(config)).to.eventually.eql(mocks.sampleXml)
})
})