UNPKG

instantjob-recruiter-client

Version:

a set of tools for creating an instantjob recruiter react client

85 lines (72 loc) 3.01 kB
'use strict'; var _keys = require('babel-runtime/core-js/object/keys'); var _keys2 = _interopRequireDefault(_keys); var _utilities = require('common/utilities'); var _expect = require('expect'); var _expect2 = _interopRequireDefault(_expect); var _sinon = require('sinon'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } describe("filter_hash", function () { it("should be correct", function () { var filtered_hash = (0, _utilities.filter_hash)({ 1: true, 2: false }, Boolean); (0, _expect2.default)(filtered_hash[1]).toEqual(true); (0, _expect2.default)(filtered_hash[2]).toNotExist(); (0, _expect2.default)((0, _keys2.default)(filtered_hash).length).toEqual(1); }); }); describe("set_from_array", function () { it("should be correct", function () { var set = (0, _utilities.set_from_array)([1, 2]); (0, _expect2.default)(set[1]).toEqual(true); (0, _expect2.default)(set[2]).toEqual(true); (0, _expect2.default)((0, _keys2.default)(set).length).toEqual(2); }); }); describe("make_memoized", function () { it("should compute the same result", function () { var fun = function fun(x, y) { return x * y; }; var memoized_fun = (0, _utilities.make_memoized)(fun); (0, _expect2.default)(memoized_fun(3, 5)).toEqual(fun(3, 5)); (0, _expect2.default)(memoized_fun(3, 5)).toEqual(fun(3, 5)); }); it("should call function only for new arguments", function () { var fun = (0, _sinon.spy)(function (x, y) { return x + y; }); var fun_with_specified_arity = function fun_with_specified_arity(x, y) { return fun(x, y); }; var memoized_fun = (0, _utilities.make_memoized)(fun_with_specified_arity); memoized_fun(1, 2); memoized_fun(1, 2); (0, _expect2.default)(fun.callCount).toEqual(1); memoized_fun(1, 3); (0, _expect2.default)(fun.callCount).toEqual(2); memoized_fun(1, 2); (0, _expect2.default)(fun.callCount).toEqual(2); }); }); describe("make_one_memoized", function () { it("should call function only for a new argument", function () { var fun = (0, _sinon.spy)(function (x) { return "My favorite fruit is the " + x; }); var memoized_fun = (0, _utilities.make_one_memoized)(fun); memoized_fun("apple"); memoized_fun("apple"); (0, _expect2.default)(fun.callCount).toEqual(1); memoized_fun("banana"); (0, _expect2.default)(fun.callCount).toEqual(2); memoized_fun("apple"); (0, _expect2.default)(fun.callCount).toEqual(2); }); }); describe('compare', function () { var compare_a = (0, _utilities.compare)((0, _utilities.property_getter)('a')); (0, _expect2.default)(compare_a({ a: 1 }, { a: 2 })).toEqual(-1); (0, _expect2.default)(compare_a({ a: 2 }, { a: 1 })).toEqual(1); (0, _expect2.default)((0, _utilities.compare)((0, _utilities.property_getter)('a'), false)({ a: 1 }, { a: 2 })).toEqual(1); (0, _expect2.default)(compare_a({ a: 1 }, { a: 1 })).toEqual(0); });