UNPKG

@masala/parser

Version:
237 lines (204 loc) 8.13 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _response = require('../../lib/parsec/response'); var _response2 = _interopRequireDefault(_response); var _index = require('../../lib/stream/index'); var _index2 = _interopRequireDefault(_index); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /* ======== A Handy Little Nodeunit Reference ======== https://github.com/caolan/nodeunit Test methods: test.expect(numAssertions) test.done() Test assertions: test.ok(value, [message]) test.equal(actual, expected, [message]) test.notEqual(actual, expected, [message]) test.deepEqual(actual, expected, [message]) test.notDeepEqual(actual, expected, [message]) test.strictEqual(actual, expected, [message]) test.notStrictEqual(actual, expected, [message]) test.throws(block, [error], [message]) test.doesNotThrow(block, [error], [message]) test.ifError(value) */ exports.default = { setUp: function setUp(done) { done(); }, 'response accepted': function responseAccepted(test) { test.expect(1); // tests here test.ok(_response2.default.accept().isAccepted(), 'should be accepted.'); test.done(); }, 'response as a success': function responseAsASuccess(test) { test.expect(1); // tests here test.ok(_response2.default.accept().toTry().isSuccess(), 'should be success.'); test.done(); }, 'response accepted map to accepted': function responseAcceptedMapToAccepted(test) { test.expect(1); // tests here test.ok(_response2.default.accept().map(function (a) { return a; }).isAccepted(), 'should be accepted.'); test.done(); }, 'response accepted map to return the value': function responseAcceptedMapToReturnTheValue(test) { test.expect(1); // tests here test.equal(_response2.default.accept('a').map(function (a) { return a; }).value, 'a', 'should be accepted.'); test.done(); }, 'response accepted flatMap to accepted': function responseAcceptedFlatMapToAccepted(test) { test.expect(1); // tests here test.ok(_response2.default.accept('a').flatMap(function (a) { return _response2.default.accept(a); }).isAccepted(), 'should be accepted.'); test.done(); }, 'response accepted flatMap to return the value': function responseAcceptedFlatMapToReturnTheValue(test) { test.expect(1); // tests here test.ok(_response2.default.accept('a').flatMap(function (a) { return _response2.default.accept(a); }).isAccepted(), 'a', 'should be accepted.'); test.done(); }, 'response accepted flatMap to reject': function responseAcceptedFlatMapToReject(test) { test.expect(1); // tests here test.equal(_response2.default.accept().flatMap(function () { return _response2.default.reject(); }).isAccepted(), false, 'should be rejected.'); test.done(); }, 'response rejected map to rejected': function responseRejectedMapToRejected(test) { test.expect(1); // tests here test.equal(_response2.default.reject().map(function (t) { return t; }).isAccepted(), false, 'should be rejected.'); test.done(); }, 'response rejected flatMap to rejected': function responseRejectedFlatMapToRejected(test) { test.expect(1); // tests here test.equal(_response2.default.reject().flatMap(function () { return _response2.default.accept(); }).isAccepted(), false, 'should be rejected.'); test.done(); }, 'response accepted fold': function responseAcceptedFold(test) { test.expect(1); // tests here test.equal(_response2.default.accept('a').fold(function (a) { return a.value; }), 'a', 'should retrieve the value.'); test.done(); }, 'fold takes a function to map the value depending on result': function foldTakesAFunctionToMapTheValueDependingOnResult(test) { var value = _response2.default.accept('a').fold(function (accept) { return accept.value + '-potato'; }, // Accept has value, input, offset, consumed function (reject) { return reject.offset + '-tomato'; }); // Reject has offset, consumed // we accept, so it should be a-potato test.equal(value, 'a-potato'); value = _response2.default.reject().fold(function (accept) { return accept.value + '-potato'; }, function (reject) { return reject.offset + '-tomato'; }); // we reject, so it should use the second function // Offset is undefined because it's up to the parser to know which offset it's parsing test.equal(value, 'undefined-tomato'); test.done(); }, 'response filter accepted': function responseFilterAccepted(test) { test.expect(1); // tests here test.ok(_response2.default.accept('a').filter(function (a) { return a === 'a'; }).isAccepted(), 'should filter the response.'); test.done(); }, 'response not filter accepted ': function responseNotFilterAccepted(test) { test.expect(1); // tests here test.equal(_response2.default.accept('a').filter(function (a) { return a !== 'a'; }).isAccepted(), false, 'should not filter the response.'); test.done(); }, 'accept can be consumed': function acceptCanBeConsumed(test) { test.expect(1); // tests here var myStream = _index2.default.ofString('abc'); var acceptance = _response2.default.accept('c', myStream, 3, false); var consumed = acceptance.isEos(); test.equal(consumed, true, 'should be consumed'); test.done(); }, 'accept should not be yet consumed': function acceptShouldNotBeYetConsumed(test) { test.expect(1); // tests here var myStream = _index2.default.ofString('abc'); test.equal(_response2.default.accept('b', myStream, 2, false).isEos(), false, 'should be consumed'); test.done(); }, 'response rejected': function responseRejected(test) { test.expect(1); // tests here test.equal(_response2.default.reject().isAccepted(), false, 'should be rejected.'); test.done(); }, 'response rejected should not be consumed': function responseRejectedShouldNotBeConsumed(test) { test.expect(1); // tests here test.equal(_response2.default.reject().isEos(), false, 'should be not consumed.'); test.done(); }, 'response as a failure': function responseAsAFailure(test) { test.expect(1); // tests here test.equal(_response2.default.reject().toTry().isSuccess(), false, 'should be failure.'); test.done(); }, 'response rejected fold': function responseRejectedFold(test) { test.expect(1); // tests here test.equal(_response2.default.reject().fold(function (a) { return a.value; }, function () { return 'b'; }), 'b', 'should generate the value.'); test.done(); }, 'response filter rejected': function responseFilterRejected(test) { test.expect(1); // tests here test.equal(_response2.default.reject().filter(function () { return true; }).isAccepted(), false, 'should not filter the response.'); test.done(); }, 'response not filter rejected': function responseNotFilterRejected(test) { test.expect(1); // tests here test.equal(_response2.default.reject().filter(function () { return false; }).isAccepted(), false, 'should not filter the response.'); test.done(); } }; //# sourceMappingURL=response_test.js.map