56 lines
1.7 KiB
JavaScript
56 lines
1.7 KiB
JavaScript
/**
|
|
* Copyright (c) 2015-present, Facebook, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the BSD-style license found in the
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
*/
|
|
'use strict';
|
|
|
|
jest.dontMock('../getInverseDependencies');
|
|
|
|
const getInverseDependencies = require('../getInverseDependencies');
|
|
|
|
describe('getInverseDependencies', () => {
|
|
it('', () => {
|
|
const module1 = createModule('module1', ['module2', 'module3']);
|
|
const module2 = createModule('module2', ['module3', 'module4']);
|
|
const module3 = createModule('module3', ['module4']);
|
|
const module4 = createModule('module4', []);
|
|
|
|
const modulePairs = {
|
|
'module1': [['module2', module2], ['module3', module3]],
|
|
'module2': [['module3', module3], ['module4', module4]],
|
|
'module3': [['module4', module4]],
|
|
'module4': [],
|
|
};
|
|
|
|
const resolutionResponse = {
|
|
dependencies: [module1, module2, module3, module4],
|
|
getResolvedDependencyPairs: module => {
|
|
return modulePairs[module.hash()];
|
|
},
|
|
};
|
|
|
|
const dependencies = getInverseDependencies(resolutionResponse);
|
|
const actual = // jest can't compare maps and sets
|
|
Array.from(dependencies.entries())
|
|
.map(([key, value]) => [key, Array.from(value)]);
|
|
|
|
expect(actual).toEqual([
|
|
[module2, [module1]],
|
|
[module3, [module1, module2]],
|
|
[module4, [module2, module3]],
|
|
]);
|
|
});
|
|
});
|
|
|
|
function createModule(name, dependencies) {
|
|
return {
|
|
hash: () => name,
|
|
getName: () => Promise.resolve(name),
|
|
getDependencies: () => Promise.resolve(dependencies),
|
|
};
|
|
}
|