"vscode:/vscode.git/clone" did not exist on "bd42c93335a613601e7c15390711f37582f0e9b1"
experimentManager.test.ts 1.94 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.

'use strict';

import { assert, expect } from 'chai';
import * as fs from 'fs';
import { Container, Scope } from 'typescript-ioc';

import * as component from '../../common/component';
import { cleanupUnitTest, prepareUnitTest } from '../../common/utils';
import { ExperimentManager } from '../../common/experimentManager';
13
import { NNIExperimentsManager } from 'extensions/experiments_manager';
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


describe('Unit test for experiment manager', function () {
    let experimentManager: NNIExperimentsManager;
    const mockedInfo = {
        "test": {
            "port": 8080,
            "startTime": 1605246730756,
            "endTime": "N/A",
            "status": "INITIALIZED",
            "platform": "local",
            "experimentName": "testExp",
            "tag": [], "pid": 11111,
            "webuiUrl": [],
            "logDir": null
        }
    }

    before(() => {
        prepareUnitTest();
        fs.writeFileSync('.experiment.test', JSON.stringify(mockedInfo));
        Container.bind(ExperimentManager).to(NNIExperimentsManager).scope(Scope.Singleton);
        experimentManager = component.get(NNIExperimentsManager);
        experimentManager.setExperimentPath('.experiment.test');
    });

    after(() => {
        if (fs.existsSync('.experiment.test')) {
            fs.unlinkSync('.experiment.test');
        }
        cleanupUnitTest();
    });

    it('test getExperimentsInfo', () => {
        return experimentManager.getExperimentsInfo().then(function (experimentsInfo: {[key: string]: any}) {
            new Array(experimentsInfo)
            for (let idx in experimentsInfo) {
                if (experimentsInfo[idx]['id'] === 'test') {
                    expect(experimentsInfo[idx]['status']).to.be.oneOf(['STOPPED', 'ERROR']);
                    break;
                }
            }
        }).catch((error) => {
            assert.fail(error);
        })
    });
});