flipr
Version:
Feature flipping and configuration using yaml files, etcd, or other flipr sources
32 lines (29 loc) • 982 B
JavaScript
const executeRulePercent = require('./execute-rule-percent');
const idToPercent = require('../id-to-percent');
jest.mock('../id-to-percent');
describe('execute-rule-percent', () => {
it('returns undefined if no values match rule', () => {
const input = 'abc';
const rule = {};
const values = [
{ value: 1 },
{ value: 2 },
{ value: 3 },
];
expect(executeRulePercent(input, rule, values)).toBe(undefined);
});
it('returns expected values based on id percentage', () => {
const rule = {};
const values = [
{ value: 2, percent: 20 },
{ value: 1, percent: 15 },
{ value: 3, percent: 65 },
];
idToPercent.mockReturnValueOnce(0.15);
expect(executeRulePercent(null, rule, values)).toBe(1);
idToPercent.mockReturnValueOnce(0.35);
expect(executeRulePercent(null, rule, values)).toBe(2);
idToPercent.mockReturnValueOnce(0.36);
expect(executeRulePercent(null, rule, values)).toBe(3);
});
});