UNPKG

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

197 lines (182 loc) 6.43 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); function _chai() { const data = require("chai"); _chai = function () { return data; }; return data; } function _bitId() { const data = _interopRequireDefault(require("../../bit-id/bit-id")); _bitId = function () { return data; }; return data; } function _consumerOverrides() { const data = _interopRequireDefault(require("./consumer-overrides")); _consumerOverrides = function () { return data; }; return data; } describe('ConsumerOverrides', () => { describe('getOverrideComponentData()', () => { describe('when propagation is not set', () => { it('should use only the most specific match', () => { const overridesFixture = { 'src/*': { dependencies: { foo: '0.0.1', bar: '0.0.1' } }, 'src/utils/javascript/*': { dependencies: { baz: '0.0.1' } }, 'src/utils/*': { dependencies: { foo: '0.0.1' } }, 'src/utils/javascript/is-string': { dependencies: { foo: '0.0.5' } } }; const componentsOverrides = new (_consumerOverrides().default)(overridesFixture); const id = new (_bitId().default)({ name: 'src/utils/javascript/is-string' }); const result = componentsOverrides.getOverrideComponentData(id); (0, _chai().expect)(result).to.have.property('dependencies').that.deep.equal({ foo: '0.0.5' }); }); }); describe('when propagation set to true', () => { it('should get env results from the more generic wildcard overrides by the exact match', () => { const overridesFixture = { 'src/*': { env: { compiler: 'bit.envs/compiler/babel@7.0.0', tester: 'bit.envs/tester/jest@0.0.1' } }, 'src/utils/javascript/is-string': { propagate: true, env: { compiler: 'bit.envs/compiler/babel@0.0.20' } } }; const componentsOverrides = new (_consumerOverrides().default)(overridesFixture); const id = new (_bitId().default)({ name: 'src/utils/javascript/is-string' }); const result = componentsOverrides.getOverrideComponentData(id); // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX! (0, _chai().expect)(result.env).to.have.property('compiler').that.equal('bit.envs/compiler/babel@0.0.20'); // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX! (0, _chai().expect)(result.env).to.have.property('tester').that.equal('bit.envs/tester/jest@0.0.1'); }); it('should get env results from the more generic wildcard overrides by the more specific one', () => { const overridesFixture = { 'src/*': { propagate: true, env: { compiler: 'bit.envs/compiler/babel@7.0.0', tester: 'bit.envs/tester/jest@0.0.1' } }, 'src/utils/javascript/*': { propagate: true }, 'src/utils/*': { propagate: true, env: { compiler: 'bit.envs/compiler/babel@0.0.20' } }, 'utils/*': { propagate: true, env: { compiler: 'bit.envs/compiler/somethingelse@0.0.20' } } }; const componentsOverrides = new (_consumerOverrides().default)(overridesFixture); const id = new (_bitId().default)({ name: 'src/utils/javascript/is-string' }); const result = componentsOverrides.getOverrideComponentData(id); // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX! (0, _chai().expect)(result.env).to.have.property('compiler').that.equal('bit.envs/compiler/babel@0.0.20'); // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX! (0, _chai().expect)(result.env).to.have.property('tester').that.equal('bit.envs/tester/jest@0.0.1'); }); it('should get dependencies results from the more generic wildcard overrides by the more specific one', () => { const overridesFixture = { 'src/*': { propagate: true, dependencies: { foo: '0.0.1', bar: '0.0.1' } }, 'src/utils/javascript/*': { propagate: true, dependencies: { baz: '0.0.1' } }, 'src/utils/*': { propagate: true, dependencies: { foo: '0.0.1' } }, 'src/utils/javascript/is-string': { propagate: true, dependencies: { foo: '0.0.5' } }, 'utils/*': { propagate: true, dependencies: { 'something/else': '0.0.1' } } }; const componentsOverrides = new (_consumerOverrides().default)(overridesFixture); const id = new (_bitId().default)({ name: 'src/utils/javascript/is-string' }); const result = componentsOverrides.getOverrideComponentData(id); (0, _chai().expect)(result).to.have.property('dependencies').that.deep.equal({ foo: '0.0.5', bar: '0.0.1', baz: '0.0.1' }); }); }); }); describe('sortWildcards', () => { it('more namespaces should be first', () => { const arr = ['bar/*', 'bar/foo/baz/*', 'bar/foo/*']; arr.sort(_consumerOverrides().default.sortWildcards); (0, _chai().expect)(arr).to.deep.equal(['bar/foo/baz/*', 'bar/foo/*', 'bar/*']); }); it('less wildcards should be first', () => { const arr = ['bar/foo/baz/*', 'bar/*/*/*', 'bar/foo/*/*']; arr.sort(_consumerOverrides().default.sortWildcards); (0, _chai().expect)(arr).to.deep.equal(['bar/foo/baz/*', 'bar/foo/*/*', 'bar/*/*/*']); }); it('wildcards located most left should be first', () => { const arr = ['foo/*', '*/foo']; arr.sort(_consumerOverrides().default.sortWildcards); (0, _chai().expect)(arr).to.deep.equal(['*/foo', 'foo/*']); }); }); });