mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Introduce getWorkloadKindFromUrl() method
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
This commit is contained in:
parent
b5a085b55c
commit
e2ced3bbb2
@ -0,0 +1,50 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { getWorkloadKindFromUrl } from "./get-workload-kind-from-url";
|
||||||
|
|
||||||
|
describe("getWorkloadKindFromUrl", () => {
|
||||||
|
it('returns "endpoints" for "/api/v1/namespaces/default/endpoints/kubernetes"', () => {
|
||||||
|
const str = "/api/v1/namespaces/default/endpoints/kubernetes";
|
||||||
|
const lastSegment = getWorkloadKindFromUrl(str);
|
||||||
|
|
||||||
|
expect(lastSegment).toEqual("endpoints");
|
||||||
|
});
|
||||||
|
|
||||||
|
it('returns "namespaces" for "/api/v1/namespaces/acme-org"', () => {
|
||||||
|
const str = "/api/v1/namespaces/acme-org";
|
||||||
|
const lastSegment = getWorkloadKindFromUrl(str);
|
||||||
|
|
||||||
|
expect(lastSegment).toEqual("namespaces");
|
||||||
|
});
|
||||||
|
|
||||||
|
it('returns "bar" for "/foo/bar/"', () => {
|
||||||
|
const str = "/foo/bar/";
|
||||||
|
const lastSegment = getWorkloadKindFromUrl(str);
|
||||||
|
|
||||||
|
expect(lastSegment).toEqual("bar");
|
||||||
|
});
|
||||||
|
|
||||||
|
it('returns null for ""', () => {
|
||||||
|
const str = "";
|
||||||
|
const lastSegment = getWorkloadKindFromUrl(str);
|
||||||
|
|
||||||
|
expect(lastSegment).toBeNull();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('returns null for "/"', () => {
|
||||||
|
const str = "/";
|
||||||
|
const lastSegment = getWorkloadKindFromUrl(str);
|
||||||
|
|
||||||
|
expect(lastSegment).toBeNull();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('returns null for "invalidurl"', () => {
|
||||||
|
const str = "invalidurl";
|
||||||
|
const lastSegment = getWorkloadKindFromUrl(str);
|
||||||
|
|
||||||
|
expect(lastSegment).toBeNull();
|
||||||
|
});
|
||||||
|
});
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
|
*/
|
||||||
|
export function getWorkloadKindFromUrl(url: string) {
|
||||||
|
return getLastSegment(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getLastSegment(url: string) {
|
||||||
|
const regex = /\/([^/]*)\/[^/]*$/;
|
||||||
|
const result = regex.exec(url);
|
||||||
|
|
||||||
|
return result ? result[1] : null;
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user