UNPKG

typed-utilities

Version:
30 lines (25 loc) 1.16 kB
"use strict"; var _ = require(".."); test(`Option`, () => { expect(_.Option.is.some(_.Option.of.some(1))).toEqual(true); expect(_.Option.is.none(_.Option.of.some(1))).toEqual(false); expect(() => _.Option.assert.some(_.Option.of.some(1))).not.toThrow(); expect(() => _.Option.assert.none(_.Option.of.some(1))).toThrow(); expect(_.Option.is.some(_.Option.of.none())).toEqual(false); expect(_.Option.is.none(_.Option.of.none())).toEqual(true); expect(() => _.Option.assert.some(_.Option.of.none())).toThrow(); expect(() => _.Option.assert.none(_.Option.of.none())).not.toThrow(); expect(_.Option.to.someValue(_.Option.of.some(1))).toEqual(1); const t1 = [1, 2, 3].map(_.Option.of.some); for (const m of t1) { expect(_.Option.is.some(m)); } const keepOdd = v => v % 2 === 1 ? _.Option.of.some(v) : _.Option.of.none(); const t2 = t1.map(m => _.Option.match(m, { some: keepOdd, none: _.Option.of.none })); expect(t2).toEqual([_.Option.of.some(1), _.Option.of.none(), _.Option.of.some(3)]); expect(t2.filter(_.Option.is.some).map(_.Option.to.someValue)).toEqual([1, 3]); }); //# sourceMappingURL=Option.test.js.map