node-dijkstra
Version:
A NodeJS implementation of Dijkstra's algorithm
49 lines (35 loc) • 1.2 kB
JavaScript
/* eslint-env node, mocha */
/* eslint import/no-extraneous-dependencies: ["error", {"devDependencies": true}] */
require('must');
const removeDeepFromMap = require('../libs/removeDeepFromMap');
describe('removeDeepFromMap', () => {
it('returns a map without the passed key', () => {
const map = new Map();
map.set('a', true);
map.set('b', true);
const newMap = removeDeepFromMap(map, 'b');
newMap.has('b').must.be.false();
newMap.has('a').must.be.true();
});
it('removes a deep reference to the key', () => {
const map = new Map();
const barMap = new Map();
barMap.set('bar', true);
barMap.set('foo', true);
map.set('foo', barMap);
map.set('bar', true);
const newMap = removeDeepFromMap(map, 'bar');
newMap.has('foo').must.be.true();
newMap.get('foo').has('foo').must.be.true();
newMap.get('foo').has('bar').must.be.false();
newMap.has('bar').must.be.false();
});
it('produes no side-effects', () => {
const map = new Map();
map.set('a', true);
map.set('b', true);
const newMap = removeDeepFromMap(map, 'b');
newMap.has('b').must.be.false();
map.has('b').must.be.true();
});
});