1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

more tests

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
This commit is contained in:
Jari Kolehmainen 2023-03-06 08:59:11 +02:00
parent b13e4bc2d8
commit de10bb61ee

View File

@ -9,9 +9,9 @@ import { getDiForUnitTesting } from "../../main/getDiForUnitTesting";
import type { RequestNamespaceListPermissionsFor } from "./request-namespace-list-permissions.injectable"; import type { RequestNamespaceListPermissionsFor } from "./request-namespace-list-permissions.injectable";
import requestNamespaceListPermissionsForInjectable from "./request-namespace-list-permissions.injectable"; import requestNamespaceListPermissionsForInjectable from "./request-namespace-list-permissions.injectable";
const createFakeProxyConfig = (statusResponse: Promise<V1SubjectRulesReviewStatus>) => ({ const createFakeProxyConfig = (statusResponse: Promise<{ body: { status: V1SubjectRulesReviewStatus }}>) => ({
makeApiClient: () => ({ makeApiClient: () => ({
createSelfSubjectRulesReview: (): Promise<V1SubjectRulesReviewStatus> => statusResponse, createSelfSubjectRulesReview: (): Promise<{ body: { status: V1SubjectRulesReviewStatus }}> => statusResponse,
}), }),
}); });
@ -28,9 +28,13 @@ describe("requestNamespaceListPermissions", () => {
it("returns truthy function", async () => { it("returns truthy function", async () => {
const requestPermissions = requestNamespaceListPermissions(createFakeProxyConfig( const requestPermissions = requestNamespaceListPermissions(createFakeProxyConfig(
new Promise((resolve) => resolve({ new Promise((resolve) => resolve({
body: {
status: {
incomplete: true, incomplete: true,
resourceRules: [], resourceRules: [],
nonResourceRules: [], nonResourceRules: [],
},
},
})), })),
) as any); ) as any);
@ -66,6 +70,8 @@ describe("requestNamespaceListPermissions", () => {
it("return truthy function", async () => { it("return truthy function", async () => {
const requestPermissions = requestNamespaceListPermissions(createFakeProxyConfig( const requestPermissions = requestNamespaceListPermissions(createFakeProxyConfig(
new Promise((resolve) => resolve({ new Promise((resolve) => resolve({
body: {
status: {
incomplete: false, incomplete: false,
resourceRules: [ resourceRules: [
{ {
@ -78,6 +84,8 @@ describe("requestNamespaceListPermissions", () => {
}, },
], ],
nonResourceRules: [], nonResourceRules: [],
},
},
})), })),
) as any); ) as any);
@ -96,6 +104,8 @@ describe("requestNamespaceListPermissions", () => {
it("return truthy function", async () => { it("return truthy function", async () => {
const requestPermissions = requestNamespaceListPermissions(createFakeProxyConfig( const requestPermissions = requestNamespaceListPermissions(createFakeProxyConfig(
new Promise((resolve) => resolve({ new Promise((resolve) => resolve({
body: {
status: {
incomplete: false, incomplete: false,
resourceRules: [ resourceRules: [
{ {
@ -108,6 +118,8 @@ describe("requestNamespaceListPermissions", () => {
}, },
], ],
nonResourceRules: [], nonResourceRules: [],
},
},
})), })),
) as any); ) as any);
@ -126,6 +138,8 @@ describe("requestNamespaceListPermissions", () => {
it("return truthy function", async () => { it("return truthy function", async () => {
const requestPermissions = requestNamespaceListPermissions(createFakeProxyConfig( const requestPermissions = requestNamespaceListPermissions(createFakeProxyConfig(
new Promise((resolve) => resolve({ new Promise((resolve) => resolve({
body: {
status: {
incomplete: false, incomplete: false,
resourceRules: [ resourceRules: [
{ {
@ -139,6 +153,8 @@ describe("requestNamespaceListPermissions", () => {
}, },
], ],
nonResourceRules: [], nonResourceRules: [],
},
},
})), })),
) as any); ) as any);
@ -157,6 +173,8 @@ describe("requestNamespaceListPermissions", () => {
it("return truthy function", async () => { it("return truthy function", async () => {
const requestPermissions = requestNamespaceListPermissions(createFakeProxyConfig( const requestPermissions = requestNamespaceListPermissions(createFakeProxyConfig(
new Promise((resolve) => resolve({ new Promise((resolve) => resolve({
body: {
status: {
incomplete: false, incomplete: false,
resourceRules: [ resourceRules: [
{ {
@ -169,6 +187,8 @@ describe("requestNamespaceListPermissions", () => {
}, },
], ],
nonResourceRules: [], nonResourceRules: [],
},
},
})), })),
) as any); ) as any);
@ -187,6 +207,8 @@ describe("requestNamespaceListPermissions", () => {
it("return truthy function", async () => { it("return truthy function", async () => {
const requestPermissions = requestNamespaceListPermissions(createFakeProxyConfig( const requestPermissions = requestNamespaceListPermissions(createFakeProxyConfig(
new Promise((resolve) => resolve({ new Promise((resolve) => resolve({
body: {
status: {
incomplete: false, incomplete: false,
resourceRules: [ resourceRules: [
{ {
@ -199,6 +221,8 @@ describe("requestNamespaceListPermissions", () => {
}, },
], ],
nonResourceRules: [], nonResourceRules: [],
},
},
})), })),
) as any); ) as any);
@ -217,6 +241,8 @@ describe("requestNamespaceListPermissions", () => {
it("return truthy function", async () => { it("return truthy function", async () => {
const requestPermissions = requestNamespaceListPermissions(createFakeProxyConfig( const requestPermissions = requestNamespaceListPermissions(createFakeProxyConfig(
new Promise((resolve) => resolve({ new Promise((resolve) => resolve({
body: {
status: {
incomplete: false, incomplete: false,
resourceRules: [ resourceRules: [
{ {
@ -230,6 +256,8 @@ describe("requestNamespaceListPermissions", () => {
}, },
], ],
nonResourceRules: [], nonResourceRules: [],
},
},
})), })),
) as any); ) as any);
@ -243,4 +271,66 @@ describe("requestNamespaceListPermissions", () => {
})).toBeTruthy(); })).toBeTruthy();
}); });
}); });
describe("when resourceRules has matching resource without list verb", () => {
it("return truthy function", async () => {
const requestPermissions = requestNamespaceListPermissions(createFakeProxyConfig(
new Promise((resolve) => resolve({
body: {
status: {
incomplete: false,
resourceRules: [
{
apiGroups: [""],
resources: ["pods"],
verbs: ["get"],
},
],
nonResourceRules: [],
},
},
})),
) as any);
const permissionCheck = await requestPermissions("fake-namespace");
expect(permissionCheck({
apiName: "pods",
group: "",
kind: "Pod",
namespaced: true,
})).toBeFalsy();
});
});
describe("when resourceRules has no matching resource with list verb", () => {
it("return truthy function", async () => {
const requestPermissions = requestNamespaceListPermissions(createFakeProxyConfig(
new Promise((resolve) => resolve({
body: {
status: {
incomplete: false,
resourceRules: [
{
apiGroups: [""],
resources: ["services"],
verbs: ["list"],
},
],
nonResourceRules: [],
},
},
})),
) as any);
const permissionCheck = await requestPermissions("fake-namespace");
expect(permissionCheck({
apiName: "pods",
group: "",
kind: "Pod",
namespaced: true,
})).toBeFalsy();
});
});
}); });