mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Fix CRD versions not being provided (#2500)
This commit is contained in:
parent
215be21e83
commit
da6b5d6bde
91
src/renderer/api/__tests__/crd.test.ts
Normal file
91
src/renderer/api/__tests__/crd.test.ts
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
import { CustomResourceDefinition } from "../endpoints";
|
||||||
|
import { IKubeObjectMetadata } from "../kube-object";
|
||||||
|
|
||||||
|
describe("Crds", () => {
|
||||||
|
describe("getVersion", () => {
|
||||||
|
it("should get the first version name from the list of versions", () => {
|
||||||
|
const crd = new CustomResourceDefinition({
|
||||||
|
apiVersion: "foo",
|
||||||
|
kind: "CustomResourceDefinition",
|
||||||
|
metadata: {} as IKubeObjectMetadata,
|
||||||
|
});
|
||||||
|
|
||||||
|
crd.spec = {
|
||||||
|
versions: [
|
||||||
|
{
|
||||||
|
name: "123",
|
||||||
|
served: false,
|
||||||
|
storage: false,
|
||||||
|
}
|
||||||
|
]
|
||||||
|
} as any;
|
||||||
|
|
||||||
|
expect(crd.getVersion()).toBe("123");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should get the first version name from the list of versions (length 2)", () => {
|
||||||
|
const crd = new CustomResourceDefinition({
|
||||||
|
apiVersion: "foo",
|
||||||
|
kind: "CustomResourceDefinition",
|
||||||
|
metadata: {} as IKubeObjectMetadata,
|
||||||
|
});
|
||||||
|
|
||||||
|
crd.spec = {
|
||||||
|
versions: [
|
||||||
|
{
|
||||||
|
name: "123",
|
||||||
|
served: false,
|
||||||
|
storage: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "1234",
|
||||||
|
served: false,
|
||||||
|
storage: false,
|
||||||
|
}
|
||||||
|
]
|
||||||
|
} as any;
|
||||||
|
|
||||||
|
expect(crd.getVersion()).toBe("123");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should get the first version name from the list of versions (length 2) even with version field", () => {
|
||||||
|
const crd = new CustomResourceDefinition({
|
||||||
|
apiVersion: "foo",
|
||||||
|
kind: "CustomResourceDefinition",
|
||||||
|
metadata: {} as IKubeObjectMetadata,
|
||||||
|
});
|
||||||
|
|
||||||
|
crd.spec = {
|
||||||
|
version: "abc",
|
||||||
|
versions: [
|
||||||
|
{
|
||||||
|
name: "123",
|
||||||
|
served: false,
|
||||||
|
storage: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "1234",
|
||||||
|
served: false,
|
||||||
|
storage: false,
|
||||||
|
}
|
||||||
|
]
|
||||||
|
} as any;
|
||||||
|
|
||||||
|
expect(crd.getVersion()).toBe("123");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should get the first version name from the version field", () => {
|
||||||
|
const crd = new CustomResourceDefinition({
|
||||||
|
apiVersion: "foo",
|
||||||
|
kind: "CustomResourceDefinition",
|
||||||
|
metadata: {} as IKubeObjectMetadata,
|
||||||
|
});
|
||||||
|
|
||||||
|
crd.spec = {
|
||||||
|
version: "abc"
|
||||||
|
} as any;
|
||||||
|
|
||||||
|
expect(crd.getVersion()).toBe("abc");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
@ -33,7 +33,7 @@ export class CustomResourceDefinition extends KubeObject {
|
|||||||
};
|
};
|
||||||
scope: "Namespaced" | "Cluster" | string;
|
scope: "Namespaced" | "Cluster" | string;
|
||||||
validation?: any;
|
validation?: any;
|
||||||
versions: {
|
versions?: {
|
||||||
name: string;
|
name: string;
|
||||||
served: boolean;
|
served: boolean;
|
||||||
storage: boolean;
|
storage: boolean;
|
||||||
@ -103,7 +103,7 @@ export class CustomResourceDefinition extends KubeObject {
|
|||||||
|
|
||||||
getVersion() {
|
getVersion() {
|
||||||
// v1 has removed the spec.version property, if it is present it must match the first version
|
// v1 has removed the spec.version property, if it is present it must match the first version
|
||||||
return this.spec.versions[0]?.name ?? this.spec.version;
|
return this.spec.versions?.[0]?.name ?? this.spec.version;
|
||||||
}
|
}
|
||||||
|
|
||||||
isNamespaced() {
|
isNamespaced() {
|
||||||
@ -123,7 +123,7 @@ export class CustomResourceDefinition extends KubeObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getPrinterColumns(ignorePriority = true): AdditionalPrinterColumnsV1[] {
|
getPrinterColumns(ignorePriority = true): AdditionalPrinterColumnsV1[] {
|
||||||
const columns = this.spec.versions.find(a => this.getVersion() == a.name)?.additionalPrinterColumns
|
const columns = this.spec.versions?.find(a => this.getVersion() == a.name)?.additionalPrinterColumns
|
||||||
?? this.spec.additionalPrinterColumns?.map(({ JSONPath, ...rest }) => ({ ...rest, jsonPath: JSONPath })) // map to V1 shape
|
?? this.spec.additionalPrinterColumns?.map(({ JSONPath, ...rest }) => ({ ...rest, jsonPath: JSONPath })) // map to V1 shape
|
||||||
?? [];
|
?? [];
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user