@hashgraph/solo
Version:
An opinionated CLI tool to deploy and manage private Hedera Networks.
46 lines • 2.05 kB
JavaScript
// SPDX-License-Identifier: Apache-2.0
import { expect } from 'chai';
import sinon from 'sinon';
import { RepositoryAddRequest } from '../../../../../src/integration/helm/request/repository/repository-add-request.js';
import { AddRepoOptions } from '../../../../../src/integration/helm/model/add/add-repo-options.js';
// Minimal mock for the Repository type
const mockRepository = {
name: 'test-repo',
url: 'https://example.com/chartrepo',
};
describe('RepositoryAddRequest', () => {
it('should add repo with required arguments', () => {
const builder = {
subcommands: sinon.stub().returnsThis(),
positional: sinon.stub().returnsThis(),
flag: sinon.stub().returnsThis(),
};
const request = new RepositoryAddRequest(mockRepository);
request.apply(builder);
expect(builder.subcommands.calledWith('repo', 'add')).to.be.true;
expect(builder.positional.calledWith('test-repo')).to.be.true;
expect(builder.positional.calledWith('https://example.com/chartrepo')).to.be.true;
});
it('should apply AddRepoOptions if provided', () => {
const builder = {
subcommands: sinon.stub().returnsThis(),
positional: sinon.stub().returnsThis(),
flag: sinon.stub().returnsThis(),
};
const options = new AddRepoOptions(true);
const request = new RepositoryAddRequest(mockRepository, options);
request.apply(builder);
expect(builder.flag.calledWith('--force-update')).to.be.true;
});
it('should not apply AddRepoOptions if not provided', () => {
const builder = {
subcommands: sinon.stub().returnsThis(),
positional: sinon.stub().returnsThis(),
flag: sinon.stub().returnsThis(),
};
const request = new RepositoryAddRequest(mockRepository);
request.apply(builder);
expect(builder.flag.calledWith('force-update')).to.be.false;
});
});
//# sourceMappingURL=repository-add-request.test.js.map