@girders-elements/core
Version:
Girders Elements is an architectural framework that assists with building data-driven apps with React or React Native.
37 lines (27 loc) • 1.2 kB
JavaScript
;
var _immutable=require('immutable');
var _PatternRegistry=require('../PatternRegistry');var _PatternRegistry2=_interopRequireDefault(_PatternRegistry);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}
describe('PatternRegistry',function(){
var registry=new _PatternRegistry2.default();
afterEach(function(){return registry.reset();});
it('allows predicate functions as keys',function(){
registry.register(function(k){return k.startsWith('ab');},1);
expect(registry.get('c')).toBeUndefined();
expect(registry.get('abc')).toEqual(1);
});
it('allows regular expressions for patterns',function(){
registry.register(/^http:/,4);
expect(registry.get(44)).toBeUndefined();
expect(registry.get('http://example.com')).toEqual(4);
});
it('allows any other value, to be used (like a map, only slower)',function(){
registry.register(22,4);
registry.register('http://example.com',5);
registry.register([1,2],6);
registry.register(_immutable.List.of(1,2),7);
expect(registry.get(22)).toEqual(4);
expect(registry.get('http://example.com')).toEqual(5);
expect(registry.get([1,2])).toEqual(6);
expect(registry.get(_immutable.List.of(1,2))).toEqual(7);
});
});