summaryrefslogtreecommitdiffstats
path: root/test/parsing.js
blob: fcda739fda6cf74dfa7242fa61824cabb1d98059 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
var path = require('path');
var _ = require('lodash');
var assert = require('assert');

describe('Book parsing', function () {
    it('should correctly parse the readme', function() {
        assert.equal(books[1].options.title, 'My Book');
    	assert.equal(books[1].options.description, 'Test description');
    });

    it('should correctly parse the readme with asciidoc', function() {
        assert.equal(books[3].options.title, 'My Book');
        assert.equal(books[3].options.description, 'Test description');
    });

    it('should correctly parse the summary', function() {
        var LEXED = books[1].summary;

        assert.equal(LEXED.chapters[0].path, 'intro.md');
        assert.equal(LEXED.chapters[0].exists, true);
        assert.equal(LEXED.chapters[0].introduction, true);
        assert.equal(LEXED.chapters[0].external, false);

    	assert.equal(LEXED.chapters[1].path, 'test.md');
        assert.equal(LEXED.chapters[1].exists, false);
        assert.equal(LEXED.chapters[1].introduction, false);
        assert.equal(LEXED.chapters[1].external, false);

        assert.equal(LEXED.chapters[2].path, 'test2.md');
        assert.equal(LEXED.chapters[2].exists, false);
        assert.equal(LEXED.chapters[2].introduction, false);
        assert.equal(LEXED.chapters[2].external, false);

        assert.equal(LEXED.chapters[3].path, 'https://www.google.com');
        assert.equal(LEXED.chapters[3].exists, true);
        assert.equal(LEXED.chapters[3].introduction, false);
        assert.equal(LEXED.chapters[3].external, true);
    });

    it('should correctly parse the glossary', function() {
        var LEXED = books[1].glossary;

        assert.equal(LEXED[0].id, "test");
        assert.equal(LEXED[0].name, "Test");
        assert.equal(LEXED[0].description, "a test text");

        assert.equal(LEXED[1].id, "test_2");
        assert.equal(LEXED[1].name, "Test 2");
        assert.equal(LEXED[1].description, "a second test");
    });

    it('should correctly parse list of files', function() {
        var FILES = books[1].files;

        assert.deepEqual(FILES, [ 'README.md', 'intro.md', 'sub/', 'sub/test1.md' ]);
    });

    it('should correctly parse the languages', function() {
        assert.equal(books[2].books.length, 2);
        assert(books[2].isMultilingual());

        assert.equal(books[2].books[0].options.language, "en");
        assert.equal(books[2].books[0].options.title, "English Book");

        assert.equal(books[2].books[1].options.language, "fr");
        assert.equal(books[2].books[1].options.title, "French Book");
    });

    it('should correctly parse the navigation', function() {
        var NAVIGATION = books[1].navigation;

        assert.equal(_.size(NAVIGATION), 2);
        assert(NAVIGATION["intro.md"])
        assert.equal(NAVIGATION["intro.md"].title, "Introduction");
        assert.equal(NAVIGATION["intro.md"].prev, null);
        assert.equal(NAVIGATION["intro.md"].next.title, "Article 1");

        assert.equal(NAVIGATION["sub/test1.md"].title, "Article 1");
        assert.equal(NAVIGATION["sub/test1.md"].prev.title, "Introduction");
        assert.equal(NAVIGATION["sub/test1.md"].next, null);
    });
});