summaryrefslogtreecommitdiff
path: root/jstests/noPassthrough/configExpand_rest_noexpand.js
blob: d80f4c33ae6e8d4713edab426878316d410944ee (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
// Test config file expansion using REST at top level.
// @tags: [requires_http_client]

(function() {
    'use strict';

    load('jstests/noPassthrough/libs/configExpand/lib.js');

    const web = new ConfigExpandRestServer();
    web.start();

    // Unexpected elements.
    configExpandFailure({
        setParameter: {
            scramIterationCount: {__rest: web.getStringReflectionURL('12345'), foo: 'bar'},
        }
    },
                        /expansion block must contain only '__rest'/);

    const sicReflect = {
        setParameter: {scramIterationCount: {__rest: web.getStringReflectionURL('12345')}}
    };

    // Positive test just to be sure this works in a basic case before testing negatives.
    configExpandSuccess(sicReflect);

    // Expansion not enabled.
    configExpandFailure(sicReflect, /__rest support has not been enabled/, {configExpand: 'none'});

    // Expansion enabled, but not recursively.
    configExpandFailure({
        __rest: web.getURL() + '/reflect/yaml?yaml=' + encodeURI(jsToYaml(sicReflect)),
        type: 'yaml'
    },
                        /__rest support has not been enabled/);

    web.stop();
})();