UNPKG

@hashgraph/solo

Version:

An opinionated CLI tool to deploy and manage private Hedera Networks.

43 lines 1.78 kB
// SPDX-License-Identifier: Apache-2.0 import 'sinon-chai'; import { expect } from 'chai'; import { describe, it, beforeEach, afterEach } from 'mocha'; import sinon from 'sinon'; import fs from 'node:fs/promises'; import { YamlHelmChartTargetProvider } from '../../../../src/integration/cache/target-providers/yaml-helm-chart-target-provider.js'; import { CacheArtifactEnum } from '../../../../src/integration/cache/enums/cache-artifact-enum.js'; describe('YamlHelmChartTargetProvider', () => { let readFileStub; let provider; beforeEach(() => { readFileStub = sinon.stub(fs, 'readFile'); provider = new YamlHelmChartTargetProvider('/tmp/charts.yaml'); }); afterEach(() => sinon.restore()); it('should parse charts from yaml file', async () => { readFileStub.resolves(` charts: - name: cert-manager source: jetstack version: v1.17.1 - name: ingress-nginx source: ingress-nginx version: 4.11.3 `); const result = await provider.getRequiredTargets(); expect(result).to.have.lengthOf(2); expect(result[0].type).to.equal(CacheArtifactEnum.HELM_CHART); expect(result[0].name).to.equal('cert-manager'); expect(result[0].version).to.equal('v1.17.1'); expect(result[0].source).to.equal('jetstack'); }); it('should return empty array when charts key is missing', async () => { readFileStub.resolves('foo: bar'); expect(await provider.getRequiredTargets()).to.deep.equal([]); }); it('should return empty array when charts is empty', async () => { readFileStub.resolves('charts: []'); expect(await provider.getRequiredTargets()).to.deep.equal([]); }); }); //# sourceMappingURL=yaml-helm-chart-target-provider.test.js.map