@hashgraph/solo
Version:
An opinionated CLI tool to deploy and manage private Hedera Networks.
68 lines • 2.71 kB
JavaScript
/**
* SPDX-License-Identifier: Apache-2.0
*/
import { describe, it } from 'mocha';
import { expect } from 'chai';
import { InitCommand } from '../../../../src/commands/init.js';
import { K8Client } from '../../../../src/core/kube/k8_client/k8_client.js';
import { LocalConfig } from '../../../../src/core/config/local_config.js';
import * as logging from '../../../../src/core/logging.js';
import sinon from 'sinon';
import path from 'path';
import { BASE_TEST_DIR } from '../../../test_util.js';
import { Duration } from '../../../../src/core/time/duration.js';
import { container } from 'tsyringe-neo';
import { InjectTokens } from '../../../../src/core/dependency_injection/inject_tokens.js';
const testLogger = logging.NewLogger('debug', true);
describe('InitCommand', () => {
const depManager = container.resolve(InjectTokens.DependencyManager);
const helm = container.resolve(InjectTokens.Helm);
const chartManager = container.resolve(InjectTokens.ChartManager);
const configManager = container.resolve(InjectTokens.ConfigManager);
let k8Factory;
let localConfig;
const keyManager = container.resolve(InjectTokens.KeyManager);
let leaseManager;
let remoteConfigManager;
let sandbox = sinon.createSandbox();
let initCmd;
before(() => {
sandbox = sinon.createSandbox();
sandbox.stub(K8Client.prototype, 'init').callsFake(() => this);
k8Factory = container.resolve(InjectTokens.K8Factory);
localConfig = new LocalConfig(path.join(BASE_TEST_DIR, 'local-config.yaml'));
remoteConfigManager = container.resolve(InjectTokens.RemoteConfigManager);
leaseManager = container.resolve(InjectTokens.LeaseManager);
// @ts-ignore
initCmd = new InitCommand({
logger: testLogger,
helm,
k8Factory,
chartManager,
configManager,
depManager,
keyManager,
leaseManager,
localConfig,
remoteConfigManager,
});
});
after(() => {
sandbox.restore();
});
describe('commands', () => {
it('init execution should succeed', async () => {
await expect(initCmd.init({})).to.eventually.equal(true);
}).timeout(Duration.ofSeconds(60).toMillis());
});
describe('methods', () => {
it('command definition should return a valid command def', () => {
const def = initCmd.getCommandDefinition();
// @ts-ignore
expect(def.name).not.to.be.null;
expect(def.desc).not.to.be.null;
expect(def.handler).not.to.be.null;
});
});
});
//# sourceMappingURL=init.test.js.map