FunctionSelect: Select a function that passes a condition. A functional alternative to switch-case.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.2 KiB

'use strict';
const Select = require('../Select');
/* global describe it expect */
describe("Select", () => {
it("Should return 'Is 10'", () => {
const a = 10;
const result = new Select(a)
.for(x => x > 10, () => 'Greater than 10')
.for(x => x < 10, () => 'Lesser than 10')
.for(x => x === 10, () => 'Is 10');
expect(result.resolve()).toBe('Is 10');
});
it("Should return 'Less than 10'", () => {
const a = 1;
const result = new Select(a)
.for(x => x > 10, () => 'Greater than 10')
.for(x => x < 10, () => 'Lesser than 10')
.for(x => x === 10, () => `Is 10`);
expect(result.resolve()).toBe('Lesser than 10');
});
it("Should return 'Greater than 10'", () => {
const a = 100;
const result = new Select(a)
.for(x => x > 10, () => 'Greater than 10')
.for(x => x < 10, () => 'Lesser than 10')
.for(x => x === 10, () => `Is 10`);
expect(result.resolve()).toBe('Greater than 10');
});
it("Should return 'null'", () => {
const a = 'UnexpectedString';
const result = new Select(a)
.for(x => x > 10, () => 'Greater than 10')
.for(x => x < 10, () => 'Lesser than 10')
.for(x => x === 10, () => `Is 10`);
expect(result.resolve()).toBe(null);
});
});