bit-bin
Version:
<a href="https://opensource.org/licenses/Apache-2.0"><img alt="apache" src="https://img.shields.io/badge/License-Apache%202.0-blue.svg"></a> <a href="https://github.com/teambit/bit/blob/master/CONTRIBUTING.md"><img alt="prs" src="https://img.shields.io/b
145 lines (126 loc) • 6.14 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
function _ramda() {
const data = _interopRequireDefault(require("ramda"));
_ramda = function () {
return data;
};
return data;
}
function _chai() {
const data = require("chai");
_chai = function () {
return data;
};
return data;
}
function _() {
const data = require("./");
_ = function () {
return data;
};
return data;
}
function _dependenciesFixture() {
const data = _interopRequireDefault(require("../../../../fixtures/dependencies-fixture.json"));
_dependenciesFixture = function () {
return data;
};
return data;
}
function _bitId() {
const data = require("../../../bit-id");
_bitId = function () {
return data;
};
return data;
}
// @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
describe('Dependencies', () => {
describe('validate()', () => {
let dependencies;
let validateFunc;
beforeEach(() => {
const dependenciesFixtureCloned = _ramda().default.clone(_dependenciesFixture().default);
dependenciesFixtureCloned.forEach(d => d.id = _bitId().BitId.parse(d.id));
dependencies = new (_().Dependencies)(dependenciesFixtureCloned);
validateFunc = () => dependencies.validate();
});
it('should not throw when it has a valid dependencies array', () => {
(0, _chai().expect)(validateFunc).to.not.throw();
});
it('should throw when dependencies are not array', () => {
dependencies.dependencies = {};
(0, _chai().expect)(validateFunc).to.throw('to be array, got object');
});
it('should throw when an individual dependency is not an object', () => {
dependencies.dependencies[0] = 12;
(0, _chai().expect)(validateFunc).to.throw('to be object, got number');
});
it('should throw when a dependency is missing id', () => {
delete dependencies.dependencies[0].id;
(0, _chai().expect)(validateFunc).to.throw('is missing ID');
});
it('should throw when a dependency is missing relativePaths', () => {
delete dependencies.dependencies[0].relativePaths;
(0, _chai().expect)(validateFunc).to.throw('is missing relativePaths');
});
it('should throw when a dependency has an extra attribute other than id and relativePaths', () => {
dependencies.dependencies[0].extra = 'should not be there!';
(0, _chai().expect)(validateFunc).to.throw('has an undetected property "extra"');
});
it('should throw when relativePaths is not an array', () => {
dependencies.dependencies[0].relativePaths = {};
(0, _chai().expect)(validateFunc).to.throw('to be array, got object');
});
it('should throw when relativePaths.sourceRelativePath is missing', () => {
delete dependencies.dependencies[0].relativePaths[0].sourceRelativePath;
(0, _chai().expect)(validateFunc).to.throw('relativePaths.sourceRelativePath is missing');
});
it('should throw when relativePaths.destinationRelativePath is missing', () => {
delete dependencies.dependencies[0].relativePaths[0].destinationRelativePath;
(0, _chai().expect)(validateFunc).to.throw('relativePaths.destinationRelativePath is missing');
});
it('should throw when a relativePaths has an extra attribute', () => {
dependencies.dependencies[0].relativePaths[0].extra = 'should not be there!';
(0, _chai().expect)(validateFunc).to.throw('undetected property of relativePaths "extra"');
});
it('should throw when relativePaths.isCustomResolveUsed is true but importSource is missing', () => {
delete dependencies.dependencies[0].relativePaths[0].importSource;
(0, _chai().expect)(validateFunc).to.throw('missing relativePath.importSource');
});
it('should not throw when both relativePaths.isCustomResolveUsed and relativePaths.importSource are missing', () => {
delete dependencies.dependencies[0].relativePaths[0].isCustomResolveUsed;
delete dependencies.dependencies[0].relativePaths[0].importSource;
(0, _chai().expect)(validateFunc).to.not.throw();
});
it('should throw when relativePaths.importSpecifiers is not an array', () => {
dependencies.dependencies[0].relativePaths[0].importSpecifiers = {};
(0, _chai().expect)(validateFunc).to.throw('to be array, got object');
});
it('should throw when importSpecifier is not an object', () => {
dependencies.dependencies[0].relativePaths[0].importSpecifiers[0] = [];
(0, _chai().expect)(validateFunc).to.throw('to be object, got array');
});
it('should throw when relativePaths.importSpecifiers has extra attributes', () => {
dependencies.dependencies[0].relativePaths[0].importSpecifiers[0].extra = 'should not be there!';
(0, _chai().expect)(validateFunc).to.throw('undetected property of importSpecifier "extra"');
});
it('should throw when importSpecifier.mainFile is missing', () => {
delete dependencies.dependencies[0].relativePaths[0].importSpecifiers[0].mainFile;
(0, _chai().expect)(validateFunc).to.throw('mainFile property is missing');
});
it('should throw when importSpecifier.mainFile.isDefault is missing', () => {
delete dependencies.dependencies[0].relativePaths[0].importSpecifiers[0].mainFile.isDefault;
(0, _chai().expect)(validateFunc).to.throw('expected properties of importSpecifier.mainFile "isDefault,name", got "name"');
});
it('should throw when importSpecifier.mainFile.name is missing', () => {
delete dependencies.dependencies[0].relativePaths[0].importSpecifiers[0].mainFile.isDefault;
(0, _chai().expect)(validateFunc).to.throw('expected properties of importSpecifier.mainFile "isDefault,name", got "name"');
});
it('should throw when importSpecifier.mainFile has an extra attribute', () => {
dependencies.dependencies[0].relativePaths[0].importSpecifiers[0].mainFile.extra = 'invalid';
(0, _chai().expect)(validateFunc).to.throw('expected properties of importSpecifier.mainFile "isDefault,name", got "extra,isDefault,name"');
});
});
});
;