diff options
Diffstat (limited to 'lib/datasource/helm')
-rw-r--r-- | lib/datasource/helm/__snapshots__/index.spec.ts.snap | 2 | ||||
-rw-r--r-- | lib/datasource/helm/index.spec.ts | 32 | ||||
-rw-r--r-- | lib/datasource/helm/index.ts | 5 |
3 files changed, 26 insertions, 13 deletions
diff --git a/lib/datasource/helm/__snapshots__/index.spec.ts.snap b/lib/datasource/helm/__snapshots__/index.spec.ts.snap index 11e2ce569c9..ce20b09edf6 100644 --- a/lib/datasource/helm/__snapshots__/index.spec.ts.snap +++ b/lib/datasource/helm/__snapshots__/index.spec.ts.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`datasource/helm getReleases returns list of versions for normal response if index.yaml is not cached 1`] = ` +exports[`datasource/helm getReleases returns list of versions for normal response 1`] = ` Object { "homepage": "https://www.getambassador.io/", "name": "ambassador", diff --git a/lib/datasource/helm/index.spec.ts b/lib/datasource/helm/index.spec.ts index e4161036797..b86199f2450 100644 --- a/lib/datasource/helm/index.spec.ts +++ b/lib/datasource/helm/index.spec.ts @@ -21,7 +21,7 @@ describe('datasource/helm', () => { expect( await getReleases({ lookupName: undefined, - registryUrls: ['example-repository.com'], + registryUrls: ['https://example-repository.com'], }) ).toBeNull(); }); @@ -38,7 +38,7 @@ describe('datasource/helm', () => { expect( await getReleases({ lookupName: 'non_existent_chart', - registryUrls: ['example-repository.com'], + registryUrls: ['https://example-repository.com'], }) ).toBeNull(); }); @@ -49,7 +49,7 @@ describe('datasource/helm', () => { expect( await getReleases({ lookupName: 'non_existent_chart', - registryUrls: ['example-repository.com'], + registryUrls: ['https://example-repository.com'], }) ).toBeNull(); }); @@ -62,7 +62,7 @@ describe('datasource/helm', () => { expect( await getReleases({ lookupName: 'some_chart', - registryUrls: ['example-repository.com'], + registryUrls: ['https://example-repository.com'], }) ).toBeNull(); }); @@ -76,7 +76,7 @@ describe('datasource/helm', () => { try { await getReleases({ lookupName: 'some_chart', - registryUrls: ['example-repository.com'], + registryUrls: ['https://example-repository.com'], }); } catch (err) { e = err; @@ -91,7 +91,7 @@ describe('datasource/helm', () => { expect( await getReleases({ lookupName: 'some_chart', - registryUrls: ['example-repository.com'], + registryUrls: ['https://example-repository.com'], }) ).toBeNull(); }); @@ -100,7 +100,7 @@ describe('datasource/helm', () => { got.mockReturnValueOnce(res); const releases = await getReleases({ lookupName: 'non_existent_chart', - registryUrls: ['example-repository.com'], + registryUrls: ['https://example-repository.com'], }); expect(releases).toBeNull(); }); @@ -114,7 +114,7 @@ describe('datasource/helm', () => { got.mockReturnValueOnce(res); const releases = await getReleases({ lookupName: 'non_existent_chart', - registryUrls: ['example-repository.com'], + registryUrls: ['https://example-repository.com'], }); expect(releases).toBeNull(); }); @@ -122,18 +122,28 @@ describe('datasource/helm', () => { got.mockReturnValueOnce({ body: indexYaml }); const releases = await getReleases({ lookupName: 'non_existent_chart', - registryUrls: ['example-repository.com'], + registryUrls: ['https://example-repository.com'], }); expect(releases).toBeNull(); }); - it('returns list of versions for normal response if index.yaml is not cached', async () => { + it('returns list of versions for normal response', async () => { got.mockReturnValueOnce({ body: indexYaml }); const releases = await getReleases({ lookupName: 'ambassador', - registryUrls: ['example-repository.com'], + registryUrls: ['https://example-repository.com'], }); expect(releases).not.toBeNull(); expect(releases).toMatchSnapshot(); }); + it('adds trailing slash to subdirectories', async () => { + got.mockReturnValueOnce({ body: indexYaml }); + await getReleases({ + lookupName: 'ambassador', + registryUrls: ['https://example-repository.com/subdir'], + }); + expect(got.mock.calls[0][0]).toEqual( + 'https://example-repository.com/subdir/index.yaml' + ); + }); }); }); diff --git a/lib/datasource/helm/index.ts b/lib/datasource/helm/index.ts index ad29e349439..d646d07d217 100644 --- a/lib/datasource/helm/index.ts +++ b/lib/datasource/helm/index.ts @@ -3,6 +3,7 @@ import yaml from 'js-yaml'; import { logger } from '../../logger'; import * as globalCache from '../../util/cache/global'; import { Http } from '../../util/http'; +import { ensureTrailingSlash } from '../../util/url'; import { DatasourceError, GetReleasesConfig, ReleaseResult } from '../common'; export const id = 'helm'; @@ -25,7 +26,9 @@ export async function getRepositoryData( } let res: any; try { - res = await http.get('index.yaml', { baseUrl: repository }); + res = await http.get('index.yaml', { + baseUrl: ensureTrailingSlash(repository), + }); if (!res || !res.body) { logger.warn(`Received invalid response from ${repository}`); return null; |