UNPKG

flipr

Version:

Feature flipping and configuration using yaml files, etcd, or other flipr sources

48 lines (46 loc) 1.57 kB
const executeRulePathEqual = require('./execute-rule-path-equal'); describe('execute-rule-path-equal', () => { it('returns undefined if no match is found', () => { const rule = { property: 'favoriteColor', }; expect(executeRulePathEqual({ my: { color: 'green' } }, rule, [ { value: 1, otherRule: 'a' }, { value: 2, favoriteColor: { 'your.color': 'blue' } }, ])).toBe(undefined); }); it('returns undefined if property is not a key/value', () => { const rule = { property: 'favoriteColor', }; expect(executeRulePathEqual({ my: { color: 'green' } }, rule, [ { value: 1, otherRule: 'a' }, { value: 2, favoriteColor: {} }, ])).toBe(undefined); }); it('returns value when input is matches rule', () => { const rule = { property: 'favoriteColor', }; expect(executeRulePathEqual({ my: { color: 'purple' } }, rule, [ { value: 1, favoriteColor: { 'my.color': 'purple' } }, ])).toBe(1); }); it('is case insensitive by default', () => { const rule = { property: 'favoriteColor', }; expect(executeRulePathEqual({ my: { color: 'purple' } }, rule, [ { value: 1, favoriteColor: { 'my.color': 'PURPLE' } }, ])).toBe(1); }); it('uses case sensitive match if rule is case sensitive', () => { const rule = { property: 'favoriteColor', isCaseSensitive: true, }; expect(executeRulePathEqual({ my: { color: 'black' } }, rule, [ { value: 1, favoriteColor: { 'my.color': 'BLACK' } }, ])).toBe(undefined); }); });