Skip to content

Commit 0f71a4c

Browse files
committed
CI: test: add helm incluster test cases to e2e
this patch adds e2e test for incluster helm auth Signed-off-by: yolossn <[email protected]>
1 parent 1df82e8 commit 0f71a4c

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

e2e-tests/kubernetes-headlamp-incluster-ci.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ spec:
4646
imagePullPolicy: Never
4747
args:
4848
- "-in-cluster"
49+
- "-enable-helm"
4950
ports:
5051
- name: http
5152
containerPort: 4466

e2e-tests/tests/incluster-api.spec.ts

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,4 +67,39 @@ test.describe('Headlamp in-cluster API', () => {
6767
expect(body).toHaveProperty('items');
6868
expect(Array.isArray(body.items)).toBe(true);
6969
});
70+
71+
test('can list Helm releases with service account token', async ({ request }) => {
72+
const response = await request.get('/clusters/main/helm/releases/list', {
73+
headers: {
74+
Authorization: `Bearer ${saToken}`,
75+
},
76+
baseURL,
77+
});
78+
79+
expect(response.status(), 'expected 200 from Helm releases API with token').toBe(200);
80+
81+
const body = await response.json();
82+
// Response structure may vary depending on installed charts; just assert we get a list back.
83+
expect(body).toHaveProperty('releases');
84+
expect(Array.isArray(body.releases)).toBe(true);
85+
86+
// do a follow up request to /clusters/main/helm/releases/list?all=true without a token
87+
// and expect a non-200 status
88+
const response2 = await request.get('/clusters/main/helm/releases/list?all=true', {
89+
baseURL,
90+
});
91+
expect(
92+
response2.status(),
93+
'expected a non-200 status from Helm releases API without token'
94+
).not.toBe(200);
95+
});
96+
97+
test('cannot list Helm releases without service account token', async ({ request }) => {
98+
const response = await request.get('/clusters/main/helm/releases/list', {
99+
baseURL,
100+
});
101+
102+
// Without token, the request should fail with an error status
103+
expect(response.status(), 'expected error from Helm releases API without token').not.toBe(200);
104+
});
70105
});

0 commit comments

Comments
 (0)