Skip to content

Commit

Permalink
chore: address PR comments
Browse files Browse the repository at this point in the history
Signed-off-by: Case Wylie <[email protected]>
  • Loading branch information
cmwylie19 committed Mar 6, 2025
1 parent b7d6320 commit f8ceb43
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 60 deletions.
19 changes: 18 additions & 1 deletion src/lib/assets/defaultTestObjects.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,25 @@
import { GenericClass } from "kubernetes-fluent-client";
import { GenericClass, GroupVersionKind } from "kubernetes-fluent-client";
import { Event } from "../enums";
import { Binding, CapabilityExport } from "../types";
import { defaultFilters } from "../filter/adjudicators/defaultTestObjects";
import { V1PolicyRule as PolicyRule } from "@kubernetes/client-node";
import { AdmissionRequest, GroupVersionResource } from "../types";
import { Operation } from "../enums";

export const createMockAdmissionRequest = (
kind: GroupVersionKind = { kind: "kind", group: "group", version: "version" },
resource: GroupVersionResource = { group: "group", version: "version", resource: "resource" },
object: { metadata: { name: string } } = { metadata: { name: "create-me" } },
operation: Operation = Operation.CREATE,
): AdmissionRequest => ({
uid: "uid",
kind,
resource,
name: "",
object,
operation,
userInfo: {},
});

export const createMockRbacRule = (
apiGroups: string[] = ["pepr.dev"],
Expand Down
Original file line number Diff line number Diff line change
@@ -1,40 +1,19 @@
import { beforeEach, describe, expect, it, jest } from "@jest/globals";
import { AdmissionRequest } from "./types";
import { convertFromBase64Map, convertToBase64Map } from "./utils";
import { Operation } from "./enums";
import { PeprMutateRequest } from "./mutate-request";
import { convertFromBase64Map, convertToBase64Map } from "../utils";
import { PeprMutateRequest } from "../mutate-request";
import { decodeData, reencodeData } from "./decode-utils";
import { createMockAdmissionRequest } from "../assets/defaultTestObjects";

jest.mock("./utils");
jest.mock("../utils");

const defaultAdmissionRequest = createMockAdmissionRequest();

const defaultPeprMutateRequest = (admissionRequest = defaultAdmissionRequest) =>
new PeprMutateRequest(admissionRequest);

const mockConvertToBase64Map = jest.mocked(convertToBase64Map);
const mockConvertFromBase64Map = jest.mocked(convertFromBase64Map);

const defaultAdmissionRequest: AdmissionRequest = {
uid: "uid",
kind: {
kind: "kind",
group: "group",
version: "version",
},
resource: {
group: "group",
version: "version",
resource: "resource",
},
name: "",
object: {
metadata: {
name: "create-me",
},
},
operation: Operation.CREATE,
userInfo: {},
};

describe("decodeData", () => {
const skips = ["convert", "From", "Base64", "Map"];

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { convertFromBase64Map, convertToBase64Map } from "./utils";
import { convertFromBase64Map, convertToBase64Map } from "../utils";
import { kind, KubernetesObject } from "kubernetes-fluent-client";
import { PeprMutateRequest } from "./mutate-request";
import { PeprMutateRequest } from "../mutate-request";
import { clone } from "ramda";

export function decodeData(wrapped: PeprMutateRequest<KubernetesObject>): {
Expand Down
4 changes: 2 additions & 2 deletions src/lib/processors/mutate-processor.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ import {
import { Operation as JSONPatchOperation } from "fast-json-patch";
import { Capability } from "../core/capability";
import { MeasureWebhookTimeout } from "../telemetry/webhookTimeouts";
import { decodeData } from "../decode-utils";
import { decodeData } from "./decode-utils";

jest.mock("../decode-utils", () => ({
jest.mock("./decode-utils", () => ({
decodeData: jest.fn(),
}));

Expand Down
29 changes: 1 addition & 28 deletions src/lib/processors/mutate-processor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import { OnError } from "../../cli/init/enums";
import { resolveIgnoreNamespaces } from "../assets/webhooks";
import { Operation } from "fast-json-patch";
import { WebhookType } from "../enums";
import { decodeData, reencodeData } from "../decode-utils";
import { decodeData, reencodeData } from "./decode-utils";

export interface Bindable {
req: AdmissionRequest;
Expand Down Expand Up @@ -61,33 +61,6 @@ export function logMutateErrorMessage(e: Error): string {
}
}

// export function decodeData(wrapped: PeprMutateRequest<KubernetesObject>): {
// skipped: string[];
// wrapped: PeprMutateRequest<KubernetesObject>;
// } {
// let skipped: string[] = [];

// const isSecret = wrapped.Request.kind.version === "v1" && wrapped.Request.kind.kind === "Secret";
// if (isSecret) {
// // convertFromBase64Map modifies it's arg rather than returing a mod'ed copy (ye olde side-effect special, blerg)
// skipped = convertFromBase64Map(wrapped.Raw as unknown as kind.Secret);
// }

// return { skipped, wrapped };
// }

// export function reencodeData(wrapped: PeprMutateRequest<KubernetesObject>, skipped: string[]): KubernetesObject {
// const transformed = clone(wrapped.Raw);

// const isSecret = wrapped.Request.kind.version === "v1" && wrapped.Request.kind.kind === "Secret";
// if (isSecret) {
// // convertToBase64Map modifies it's arg rather than returing a mod'ed copy (ye olde side-effect special, blerg)
// convertToBase64Map(transformed as unknown as kind.Secret, skipped);
// }

// return transformed;
// }

export async function processRequest(
bindable: Bindable,
wrapped: PeprMutateRequest<KubernetesObject>,
Expand Down

0 comments on commit f8ceb43

Please sign in to comment.