Skip to content

Commit 8727966

Browse files
committed
Fix issues
Signed-off-by: Joao Pereira <joaopapereira@gmail.com>
1 parent cc1cd17 commit 8727966

8 files changed

Lines changed: 194 additions & 141 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ When you host the carvel repositories in your own github instance:
7474
steps:
7575
- uses: carvel-dev/setup-action@v3
7676
with:
77-
instance: https://acme.github.com/api/v3
77+
endpoint: https://acme.github.com/api/v3
7878
token: token-for-your-instance
7979
- run: |
8080
ytt version

action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ inputs:
1010
required: false
1111
default: ""
1212
endpoint:
13-
description: Defines the API endpoint to use instead of the default GitHub API. Useful for GitHub Enterprise users if they have the carvel tools in their GitHub instance.
13+
description: Defines the API base URL to use instead of the default GitHub API. This must be an API URL compatible with Octokit `baseUrl` (for example, `https://HOST/api/v3` for GitHub Enterprise Server), not the GitHub web UI URL.
1414
required: false
1515
default: "https://api.github.com"
1616
only:

src/main.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ function createOctokit(): Octokit {
3333
core.warning(
3434
'No token set, you may experience rate limiting. Set "token: ${{ secrets.GITHUB_TOKEN }}" if you have problems.'
3535
)
36-
return new GitHub() as unknown as Octokit
36+
return new GitHub({baseUrl: endpoint}) as unknown as Octokit
3737
}
3838
}
3939

test/fixtures/matchers.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { Matcher } from 'jest-mock-extended';
2-
import { equals } from 'expect/build/jasmineUtils';
1+
import {Matcher} from 'jest-mock-extended'
2+
import {equals} from 'expect/build/jasmineUtils'
33

44
export const isEqual = <T>(expectedValue?: T) =>
55
new Matcher<T | undefined>((actualValue?: T) => {
6-
return equals(actualValue, expectedValue);
7-
}, "isEqual()");
6+
return equals(actualValue, expectedValue)
7+
}, 'isEqual()')

test/fixtures/test_octokit.ts

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,18 @@
1-
import { mockDeep, DeepMockProxy } from 'jest-mock-extended';
2-
import { isEqual } from './matchers'
3-
import { ReposListReleasesParameters } from '@jbrunton/gha-installer';
4-
import { ReposListReleasesItem, Octokit, OctokitResponse, ReposListReleasesResponseData } from '@jbrunton/gha-installer/lib/octokit';
1+
import {mockDeep, DeepMockProxy} from 'jest-mock-extended'
2+
import {isEqual} from './matchers'
3+
import {ReposListReleasesParameters} from '@jbrunton/gha-installer'
4+
import {
5+
ReposListReleasesItem,
6+
Octokit,
7+
OctokitResponse,
8+
ReposListReleasesResponseData
9+
} from '@jbrunton/gha-installer/lib/octokit'
510

611
interface TestMethods {
7-
stubListReleasesResponse(params: ReposListReleasesParameters, releases: Array<ReposListReleasesItem>): void
12+
stubListReleasesResponse(
13+
params: ReposListReleasesParameters,
14+
releases: Array<ReposListReleasesItem>
15+
): void
816
}
917

1018
export type TestOctokit = DeepMockProxy<Octokit> & TestMethods
@@ -15,8 +23,14 @@ export function createTestOctokit(): TestOctokit {
1523
return octokit as TestOctokit
1624
}
1725

18-
function stubListReleasesResponse(this: TestOctokit, params: ReposListReleasesParameters, releases: Array<ReposListReleasesItem>) {
19-
const response = { data: releases } as OctokitResponse<ReposListReleasesResponseData>
26+
function stubListReleasesResponse(
27+
this: TestOctokit,
28+
params: ReposListReleasesParameters,
29+
releases: Array<ReposListReleasesItem>
30+
) {
31+
const response = {
32+
data: releases
33+
} as OctokitResponse<ReposListReleasesResponseData>
2034
this.rest.repos.listReleases
2135
.calledWith(isEqual(params))
2236
.mockReturnValue(Promise.resolve(response as any))
Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,36 @@
1-
import { AppInfo } from "@jbrunton/gha-installer";
2-
import { getAssetName, getRepo } from "../../src/carvel_releases_service";
1+
import {AppInfo} from '@jbrunton/gha-installer'
2+
import {getAssetName, getRepo} from '../../src/carvel_releases_service'
33

44
describe('CarvelReleasesService', () => {
55
const kbldInfo: AppInfo = {
6-
name: "kbld",
7-
version: "latest"
8-
};
6+
name: 'kbld',
7+
version: 'latest'
8+
}
99

1010
const kctrlInfo: AppInfo = {
11-
name: "kctrl",
12-
version: "latest"
13-
};
11+
name: 'kctrl',
12+
version: 'latest'
13+
}
1414

1515
describe('getRepo', () => {
16-
it("returns the name of the repo for the app", () => {
16+
it('returns the name of the repo for the app', () => {
1717
expect(getRepo(kbldInfo)).toEqual({
18-
owner: "carvel-dev",
19-
repo: "kbld"
18+
owner: 'carvel-dev',
19+
repo: 'kbld'
2020
})
2121
// kctrl is a special case
2222
expect(getRepo(kctrlInfo)).toEqual({
23-
owner: "carvel-dev",
24-
repo: "kapp-controller"
23+
owner: 'carvel-dev',
24+
repo: 'kapp-controller'
2525
})
2626
})
2727
})
2828

2929
describe('getAssetName', () => {
30-
it("returns the asset name for the given platform", () => {
31-
expect(getAssetName("darwin", kbldInfo)).toEqual("kbld-darwin-amd64")
32-
expect(getAssetName("win32", kbldInfo)).toEqual("kbld-windows-amd64.exe")
33-
expect(getAssetName("linux", kbldInfo)).toEqual("kbld-linux-amd64")
30+
it('returns the asset name for the given platform', () => {
31+
expect(getAssetName('darwin', kbldInfo)).toEqual('kbld-darwin-amd64')
32+
expect(getAssetName('win32', kbldInfo)).toEqual('kbld-windows-amd64.exe')
33+
expect(getAssetName('linux', kbldInfo)).toEqual('kbld-linux-amd64')
3434
})
3535
})
36-
});
36+
})

test/unit/inputs.test.ts

Lines changed: 64 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,105 +1,113 @@
1-
import { Inputs, carvelApps } from '../../src/inputs'
2-
import { mock } from 'jest-mock-extended';
3-
import { ActionsCore } from '@jbrunton/gha-installer/lib/interfaces';
1+
import {Inputs, carvelApps} from '../../src/inputs'
2+
import {mock} from 'jest-mock-extended'
3+
import {ActionsCore} from '@jbrunton/gha-installer/lib/interfaces'
44

55
describe('Inputs', () => {
6-
function createInputs(platform: string, inputs: {[key: string]: string} = {}): Inputs {
6+
function createInputs(
7+
platform: string,
8+
inputs: {[key: string]: string} = {}
9+
): Inputs {
710
const core = mock<ActionsCore>()
811
core.getInput.calledWith('only').mockReturnValue(inputs.only || '')
912
core.getInput.calledWith('exclude').mockReturnValue(inputs.exclude || '')
1013
for (let appName of carvelApps) {
11-
core.getInput.calledWith(appName).mockReturnValue(inputs[appName] || 'latest')
14+
core.getInput
15+
.calledWith(appName)
16+
.mockReturnValue(inputs[appName] || 'latest')
1217
}
13-
return new Inputs(core, { platform: platform })
18+
return new Inputs(core, {platform: platform})
1419
}
1520

1621
describe('getAppsToDownload()', () => {
1722
test('defaults to all', () => {
18-
const inputs = createInputs("linux")
19-
23+
const inputs = createInputs('linux')
24+
2025
const apps = inputs.getAppsToDownload()
21-
26+
2227
expect(apps).toEqual([
23-
{ name: "ytt", "version": "latest" },
24-
{ name: "kbld", "version": "latest" },
25-
{ name: "kapp", "version": "latest" },
26-
{ name: "kwt", "version": "latest" },
27-
{ name: "imgpkg", "version": "latest" },
28-
{ name: "vendir", "version": "latest" },
29-
{ name: "kctrl", "version": "latest" }
28+
{name: 'ytt', version: 'latest'},
29+
{name: 'kbld', version: 'latest'},
30+
{name: 'kapp', version: 'latest'},
31+
{name: 'kwt', version: 'latest'},
32+
{name: 'imgpkg', version: 'latest'},
33+
{name: 'vendir', version: 'latest'},
34+
{name: 'kctrl', version: 'latest'}
3035
])
3136
})
3237

3338
test('excludes kwt for windows', () => {
34-
const inputs = createInputs("win32")
35-
39+
const inputs = createInputs('win32')
40+
3641
const apps = inputs.getAppsToDownload()
37-
42+
3843
expect(apps).toEqual([
39-
{ name: "ytt", "version": "latest" },
40-
{ name: "kbld", "version": "latest" },
41-
{ name: "kapp", "version": "latest" },
42-
{ name: "imgpkg", "version": "latest" },
43-
{ name: "vendir", "version": "latest" },
44-
{ name: "kctrl", "version": "latest" },
44+
{name: 'ytt', version: 'latest'},
45+
{name: 'kbld', version: 'latest'},
46+
{name: 'kapp', version: 'latest'},
47+
{name: 'imgpkg', version: 'latest'},
48+
{name: 'vendir', version: 'latest'},
49+
{name: 'kctrl', version: 'latest'}
4550
])
4651
})
4752

4853
test('allows version overrides', () => {
49-
const inputs = createInputs("linux", { ytt: "0.28.0" })
50-
54+
const inputs = createInputs('linux', {ytt: '0.28.0'})
55+
5156
const apps = inputs.getAppsToDownload()
52-
57+
5358
expect(apps).toEqual([
54-
{ name: "ytt", "version": "0.28.0" },
55-
{ name: "kbld", "version": "latest" },
56-
{ name: "kapp", "version": "latest" },
57-
{ name: "kwt", "version": "latest" },
58-
{ name: "imgpkg", "version": "latest" },
59-
{ name: "vendir", "version": "latest" },
60-
{ name: "kctrl", "version": "latest" }
59+
{name: 'ytt', version: '0.28.0'},
60+
{name: 'kbld', version: 'latest'},
61+
{name: 'kapp', version: 'latest'},
62+
{name: 'kwt', version: 'latest'},
63+
{name: 'imgpkg', version: 'latest'},
64+
{name: 'vendir', version: 'latest'},
65+
{name: 'kctrl', version: 'latest'}
6166
])
6267
})
6368

6469
test('limits apps to "only" list', () => {
65-
const inputs = createInputs("linux", { only: "ytt, kbld" })
66-
70+
const inputs = createInputs('linux', {only: 'ytt, kbld'})
71+
6772
const apps = inputs.getAppsToDownload()
68-
73+
6974
expect(apps).toEqual([
70-
{ name: "ytt", "version": "latest" },
71-
{ name: "kbld", "version": "latest" }
75+
{name: 'ytt', version: 'latest'},
76+
{name: 'kbld', version: 'latest'}
7277
])
7378
})
7479

7580
test('allows for app list override', () => {
76-
const inputs = createInputs("linux", { only: "ytt, kbld", ytt: "0.28.0" })
77-
81+
const inputs = createInputs('linux', {only: 'ytt, kbld', ytt: '0.28.0'})
82+
7883
const apps = inputs.getAppsToDownload()
79-
84+
8085
expect(apps).toEqual([
81-
{ name: "ytt", "version": "0.28.0" },
82-
{ name: "kbld", "version": "latest" }
86+
{name: 'ytt', version: '0.28.0'},
87+
{name: 'kbld', version: 'latest'}
8388
])
8489
})
8590

8691
test('excludes apps from "exclude" list', () => {
87-
const inputs = createInputs("linux", { exclude: "ytt, kwt", kapp: "0.34.0" })
88-
92+
const inputs = createInputs('linux', {
93+
exclude: 'ytt, kwt',
94+
kapp: '0.34.0'
95+
})
96+
8997
const apps = inputs.getAppsToDownload()
90-
98+
9199
expect(apps).toEqual([
92-
{ name: "kbld", "version": "latest" },
93-
{ name: "kapp", "version": "0.34.0" },
94-
{ name: "imgpkg", "version": "latest" },
95-
{ name: "vendir", "version": "latest" },
96-
{ name: "kctrl", "version": "latest" }
100+
{name: 'kbld', version: 'latest'},
101+
{name: 'kapp', version: '0.34.0'},
102+
{name: 'imgpkg', version: 'latest'},
103+
{name: 'vendir', version: 'latest'},
104+
{name: 'kctrl', version: 'latest'}
97105
])
98106
})
99107

100108
test('validates app names', () => {
101-
const inputs = createInputs("linux", { only: "ytt, kbl" })
102-
expect(() => inputs.getAppsToDownload()).toThrowError("Unknown app: kbl")
103-
})
109+
const inputs = createInputs('linux', {only: 'ytt, kbl'})
110+
expect(() => inputs.getAppsToDownload()).toThrowError('Unknown app: kbl')
111+
})
104112
})
105113
})

0 commit comments

Comments
 (0)