summaryrefslogtreecommitdiff
path: root/jstests/noPassthrough/shell_error_codes.js
blob: aadb46d738652aa458204cff2cdeb13292d3fba9 (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
/**
 * Tests for the ErrorCodes objects in error_codes.js generated file.
 */
(() => {
    "use strict";

    const tests = [];

    const nonExistingErrorCode = 999999999;

    tests.push(function errorCodesShouldThrowExceptionForNonExistingError() {
        assert.throws(() => {
            return ErrorCodes.thisIsAnErrorCodeThatDoesNotExist;
        });
    });

    tests.push(function errorCodesShouldNotThrowExceptionForExistingError() {
        assert.doesNotThrow(() => {
            return ErrorCodes.BadValue;
        });
    });

    tests.push(function errorCodesShouldNotThrowExceptionForInheritedAttributes() {
        assert.doesNotThrow(() => {
            return ErrorCodes.prototype;
        });
    });

    tests.push(function errorCodesShouldNotThrowExceptionForSymbols() {
        assert.doesNotThrow(() => {
            return print(+ErrorCodes);
        });
    });

    tests.push(function errorCodesShouldNotThrowExceptionForConstructor() {
        assert.doesNotThrow(() => {
            return ErrorCodes.constructor;
        });
    });

    tests.push(function errorCodeStringsShouldThrowExceptionForNonExistingError() {
        assert.throws(() => {
            return ErrorCodeStrings[nonExistingErrorCode];
        });
    });

    tests.push(function errorCodeStringsShouldNotThrowExceptionForExistingError() {
        assert.doesNotThrow(() => {
            return ErrorCodeStrings[2];
        });
    });

    tests.push(function errorCodesShouldHaveCategoriesDefined() {
        assert.eq(true, ErrorCodes.isNetworkError(ErrorCodes.HostNotFound));
    });

    tests.push(function errorCodesCategoriesShouldReturnFalseOnNonExistingErrorCodes() {
        assert.eq(false, ErrorCodes.isNetworkError(nonExistingErrorCode));
    });

    /* main */
    tests.forEach((test) => {
        jsTest.log(`Starting tests '${test.name}'`);
        test();
    });
})();