summaryrefslogtreecommitdiff
path: root/jstests/noPassthrough/configExpand_rest_values.js
blob: 7aa56dbfb77851b6fe45949844de8464a4eb5b92 (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
// 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();

    // Basic success case
    configExpandSuccess({
        setParameter: {
            scramIterationCount: {__rest: web.getStringReflectionURL('12345')},
            scramSHA256IterationCount:
                {__rest: web.getStringReflectionURL('23456'), type: 'string', trim: 'whitespace'}
        }
    },
                        function(admin) {
                            const response = assert.commandWorked(admin.runCommand({
                                getParameter: 1,
                                scramIterationCount: 1,
                                scramSHA256IterationCount: 1
                            }));
                            assert.eq(response.scramIterationCount,
                                      12345,
                                      "Incorrect derived config value for scramIterationCount");
                            assert.eq(response.scramSHA256IterationCount,
                                      23456,
                                      "Incorrect derived config value scramSHA256IterationCount");
                        });

    // With digest
    // SHA256HMAC('12345', 'secret')
    const hash = 'f88c7ebe4740db59c873cecf5e1f18e3726a1ad64068a13d764b79028430ab0e';
    configExpandSuccess({
        setParameter: {
            scramIterationCount: {
                __rest: web.getStringReflectionURL('12345'),
                digest: hash,
                digest_key: '736563726574'
            }
        }
    });

    web.stop();
})();