parser-combinator
Version:
Parser combinators
119 lines (84 loc) • 3.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _titleParser = require('../../../lib/standard/markdown/title-parser');
var _titleParser2 = _interopRequireDefault(_titleParser);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var value = undefined; /**
* Created by Simon on 14/12/2016.
*/
var accepted = undefined;
var parser = null;
function testLine(line) {
var parsing = parser.parse(line);
value = parsing.value;
accepted = parsing.isAccepted();
}
exports.default = {
setUp: function setUp(done) {
parser = _titleParser2.default;
done();
},
'test level1': function testLevel1(test) {
test.expect(2);
testLine('# title1\n');
var expected = { title: { level: 1, text: 'title1' } };
test.ok(accepted, 'test title1');
test.deepEqual(expected, value, 'test title1');
test.done();
},
'test level3': function testLevel3(test) {
test.expect(2);
testLine('### title\n');
var expected = { title: { level: 3, text: 'title' } };
test.ok(accepted, 'test title level 3');
test.deepEqual(expected, value, 'test title level 3');
test.done();
},
'title alternate 1 should be accepted': function titleAlternate1ShouldBeAccepted(test) {
test.expect(1);
testLine('Title\n=====\n');
var expected = { title: { level: 1, text: 'Title' } };
test.deepEqual(expected, value, 'test title1 alt');
test.done();
},
'title alternate 1 should be title1': function titleAlternate1ShouldBeTitle1(test) {
test.expect(1);
testLine('Title\n===== \n');
var expected = { title: { level: 1, text: 'Title' } };
test.deepEqual(expected, value, 'test title1 alt');
test.done();
},
'title alternate 2 should be accepted': function titleAlternate2ShouldBeAccepted(test) {
test.expect(1);
testLine('Title\n-----\n');
var expected = { title: { level: 2, text: 'Title' } };
test.deepEqual(expected, value, 'test title2 alt');
test.done();
},
'title alternate 2 should be title1': function titleAlternate2ShouldBeTitle1(test) {
test.expect(1);
testLine('Title\n------ \n');
var expected = { title: { level: 2, text: 'Title' } };
test.deepEqual(expected, value, 'test title2 alt');
test.done();
},
' stars into title': function starsIntoTitle(test) {
test.expect(2);
testLine('2*3*4 = 24\n------ \n');
var expected = { title: { level: 2, text: '2*3*4 = 24' } };
test.deepEqual(expected, value, 'test stars in title1');
testLine('## 2*3*4 = 24\n');
expected = { title: { level: 2, text: '2*3*4 = 24' } };
test.deepEqual(expected, value, 'test stars in title2');
test.done();
},
'Sharps not followed by space': function SharpsNotFollowedBySpace(test) {
test.expect(1);
testLine('#Not tile');
test.ok(!accepted, 'Sharp not followed by space shall not be parsed');
test.done();
}
};
//# sourceMappingURL=title-test.js.map