summaryrefslogtreecommitdiffstats
path: root/lib/fs/__tests__/mock.js
blob: 04bd46a2b6c1cdb54d145c81edda203c1054c7bf (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 createMockFS = require('../mock');

describe('MockFS', function() {
    var fs = createMockFS({
        'README.md': 'Hello World',
        'SUMMARY.md': '# Summary',
        'folder': {
            'test.md': 'Cool',
            'folder2': {
                'hello.md': 'Hello',
                'world.md': 'World'
            }
        }
    });

    describe('exists', function() {
        it('must return true for a file', function() {
            return fs.exists('README.md')
            .then(function(result) {
                expect(result).toBeTruthy();
            });
        });

        it('must return false for a non existing file', function() {
            return fs.exists('README_NOTEXISTS.md')
            .then(function(result) {
                expect(result).toBeFalsy();
            });
        });

        it('must return true for a directory', function() {
            return fs.exists('folder')
            .then(function(result) {
                expect(result).toBeTruthy();
            });
        });

        it('must return true for a deep file', function() {
            return fs.exists('folder/test.md')
            .then(function(result) {
                expect(result).toBeTruthy();
            });
        });

        it('must return true for a deep file (2)', function() {
            return fs.exists('folder/folder2/hello.md')
            .then(function(result) {
                expect(result).toBeTruthy();
            });
        });
    });

    describe('readAsString', function() {
        it('must return content for a file', function() {
            return fs.readAsString('README.md')
            .then(function(result) {
                expect(result).toBe('Hello World');
            });
        });

        it('must return content for a deep file', function() {
            return fs.readAsString('folder/test.md')
            .then(function(result) {
                expect(result).toBe('Cool');
            });
        });
    });

    describe('readDir', function() {
        it('must return content for a directory', function() {
            return fs.readDir('./')
            .then(function(files) {
                expect(files.size).toBe(3);
                expect(files.includes('README.md')).toBeTruthy();
                expect(files.includes('SUMMARY.md')).toBeTruthy();
                expect(files.includes('folder/')).toBeTruthy();
            });
        });
    });
});