UNPKG

@eeue56/ts-core

Version:

Core library for TypeScript inspired by Elm

67 lines 7.95 kB
import test from 'ava'; import * as Maybe from './maybe'; const aNothingValue = Maybe.Nothing(); const aRealValue = 'just something'; const aJustValue = Maybe.Just(aRealValue); const aSecondRealValue = 'just something else'; const aSecondJustValue = Maybe.Just(aSecondRealValue); const aThirdRealValue = 'another just something else'; const aThirdJustValue = Maybe.Just(aThirdRealValue); test('withDefault', (t) => { const defaultValue = 'a default'; t.deepEqual(Maybe.withDefault(defaultValue, aNothingValue), defaultValue); t.deepEqual(Maybe.withDefault(defaultValue, aJustValue), aRealValue); }); test('map', (t) => { const innerValue = aRealValue.length; const convertFunc = (str) => { return str.length; }; const inner = Maybe.Just(innerValue); // Nothing => Nothing t.deepEqual(Maybe.map(convertFunc, aNothingValue), Maybe.Nothing()); // Just => Just t.deepEqual(Maybe.map(convertFunc, aJustValue), inner); }); test('map2', (t) => { const convertFunc = (first, second) => { return first.length + second.length; }; const inner = Maybe.Just(aRealValue.length + aSecondRealValue.length); // Nothing => Just => Nothing t.deepEqual(Maybe.map2(convertFunc, aNothingValue, aJustValue), Maybe.Nothing()); // Just => Nothing => Nothing t.deepEqual(Maybe.map2(convertFunc, aJustValue, aNothingValue), Maybe.Nothing()); // Nothing => Nothing => Nothing t.deepEqual(Maybe.map2(convertFunc, aNothingValue, aNothingValue), Maybe.Nothing()); // Just => Just => Just t.deepEqual(Maybe.map2(convertFunc, aJustValue, aSecondJustValue), inner); t.deepEqual(Maybe.map2(convertFunc, aSecondJustValue, aJustValue), inner); }); test('map3', (t) => { const convertFunc = (first, second, third) => { return first.length + second.length + third.length; }; const inner = Maybe.Just(aRealValue.length + aSecondRealValue.length + aThirdRealValue.length); // Just => Nothing => Nothing => Nothing t.deepEqual(Maybe.map3(convertFunc, aJustValue, aNothingValue, aNothingValue), Maybe.Nothing()); // Nothing => Just => Nothing => Nothing t.deepEqual(Maybe.map3(convertFunc, aNothingValue, aJustValue, aNothingValue), Maybe.Nothing()); // Nothing => Nothing => Just => Nothing t.deepEqual(Maybe.map3(convertFunc, aNothingValue, aNothingValue, aJustValue), Maybe.Nothing()); // Nothing => Nothing => Nothing => Nothing t.deepEqual(Maybe.map3(convertFunc, aNothingValue, aNothingValue, aNothingValue), Maybe.Nothing()); // Just => Just => Just t.deepEqual(Maybe.map3(convertFunc, aJustValue, aSecondJustValue, aThirdJustValue), inner); t.deepEqual(Maybe.map3(convertFunc, aSecondJustValue, aThirdJustValue, aJustValue), inner); }); test('andThen', (t) => { const convertFunc = (value) => { return Maybe.Just(value.length); }; // Nothing => Nothing t.deepEqual(Maybe.andThen(convertFunc, aNothingValue), Maybe.Nothing()); // Just => Just t.deepEqual(Maybe.andThen(convertFunc, aJustValue), Maybe.Just(aRealValue.length)); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF5YmUuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbWF5YmUuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQUksTUFBTSxLQUFLLENBQUM7QUFFdkIsT0FBTyxLQUFLLEtBQUssTUFBTSxTQUFTLENBQUM7QUFFakMsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBVSxDQUFDO0FBRTlDLE1BQU0sVUFBVSxHQUFHLGdCQUFnQixDQUFDO0FBQ3BDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7QUFFMUMsTUFBTSxnQkFBZ0IsR0FBRyxxQkFBcUIsQ0FBQztBQUMvQyxNQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUV0RCxNQUFNLGVBQWUsR0FBRyw2QkFBNkIsQ0FBQztBQUN0RCxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBRXBELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtJQUN0QixNQUFNLFlBQVksR0FBRyxXQUFXLENBQUM7SUFDakMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUUxRSxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ3pFLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO0lBQ2QsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUVyQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQVcsRUFBVSxFQUFF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