mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
cleanup
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
This commit is contained in:
parent
ad1a35c40d
commit
65ccc8f02e
@ -49,9 +49,18 @@ jest.mock("electron", () => ({ // TODO: remove mocks
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
describe("NamespaceSelectFilter", () => {
|
describe("NamespaceSelectFilter", () => {
|
||||||
|
const placeholderClass = "Select__placeholder";
|
||||||
|
const placeholderSelector = `.${placeholderClass}`;
|
||||||
|
|
||||||
let render: DiRender;
|
let render: DiRender;
|
||||||
let namespaceStore: NamespaceStore;
|
let namespaceStore: NamespaceStore;
|
||||||
|
|
||||||
|
const buildItems = (names: string[]) => {
|
||||||
|
return names.map((name) => {
|
||||||
|
return new Namespace({ kind: "Namespace", apiVersion: "v1", metadata: { name, uid: name, resourceVersion: "1" }});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
beforeAll(async () => { // TODO: remove beforeAll
|
beforeAll(async () => { // TODO: remove beforeAll
|
||||||
await AppPaths.init();
|
await AppPaths.init();
|
||||||
|
|
||||||
@ -105,39 +114,63 @@ describe("NamespaceSelectFilter", () => {
|
|||||||
const { getByTestId } = render(<><NamespaceSelectFilter /></>);
|
const { getByTestId } = render(<><NamespaceSelectFilter /></>);
|
||||||
const select = getByTestId("namespace-select-filter");
|
const select = getByTestId("namespace-select-filter");
|
||||||
|
|
||||||
expect(select.getElementsByClassName("Select__placeholder")[0].innerHTML).toEqual("All namespaces");
|
expect(select.getElementsByClassName(placeholderClass)[0].innerHTML).toEqual("All namespaces");
|
||||||
});
|
});
|
||||||
|
|
||||||
it ("renders selected namespaces", async () => {
|
it ("renders selected namespaces", async () => {
|
||||||
namespaceStore.items.replace([
|
namespaceStore.items.replace(buildItems(["one", "two", "three"]));
|
||||||
new Namespace({ kind: "Namespace", apiVersion: "v1", metadata: { name: "one", uid: "one", resourceVersion: "1" }}),
|
|
||||||
new Namespace({ kind: "Namespace", apiVersion: "v1", metadata: { name: "two", uid: "two", resourceVersion: "1" }}),
|
|
||||||
new Namespace({ kind: "Namespace", apiVersion: "v1", metadata: { name: "three", uid: "three", resourceVersion: "1" }}),
|
|
||||||
]);
|
|
||||||
|
|
||||||
namespaceStore.selectNamespaces(["two", "three"]);
|
namespaceStore.selectNamespaces(["two", "three"]);
|
||||||
|
|
||||||
const { getByTestId } = render(<><NamespaceSelectFilter /></>);
|
const { getByTestId } = render(<><NamespaceSelectFilter /></>);
|
||||||
const select = getByTestId("namespace-select-filter");
|
const select = getByTestId("namespace-select-filter");
|
||||||
|
|
||||||
expect(select.getElementsByClassName("Select__placeholder")[0].innerHTML).toEqual("Namespaces: two, three");
|
expect(select.getElementsByClassName(placeholderClass)[0].innerHTML).toEqual("Namespaces: two, three");
|
||||||
});
|
});
|
||||||
|
|
||||||
it ("allows to select namespaces", async () => {
|
it ("allows to select namespaces", async () => {
|
||||||
namespaceStore.items.replace([
|
namespaceStore.items.replace(buildItems(["one", "two", "three"]));
|
||||||
new Namespace({ kind: "Namespace", apiVersion: "v1", metadata: { name: "one", uid: "one", resourceVersion: "1" }}),
|
|
||||||
new Namespace({ kind: "Namespace", apiVersion: "v1", metadata: { name: "two", uid: "two", resourceVersion: "1" }}),
|
|
||||||
new Namespace({ kind: "Namespace", apiVersion: "v1", metadata: { name: "three", uid: "three", resourceVersion: "1" }}),
|
|
||||||
]);
|
|
||||||
|
|
||||||
const { container } = render(<><NamespaceSelectFilter /></>);
|
const { container } = render(<><NamespaceSelectFilter /></>);
|
||||||
|
|
||||||
fireEvent.click(container.querySelector(".Select__placeholder"));
|
fireEvent.click(container.querySelector(placeholderSelector));
|
||||||
|
|
||||||
await waitFor(() => screen.getByText("one"));
|
await waitFor(() => screen.getByText("one"));
|
||||||
fireEvent.click(screen.getByText("one"));
|
fireEvent.click(screen.getByText("one"));
|
||||||
|
|
||||||
expect(container.querySelector(".Select__placeholder").innerHTML).toEqual("Namespace: one");
|
expect(container.querySelector(placeholderSelector).innerHTML).toEqual("Namespace: one");
|
||||||
expect(namespaceStore.selectedNames).toEqual(new Set(["one"]));
|
expect(namespaceStore.selectedNames).toEqual(new Set(["one"]));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it ("allows to change namespaces", async () => {
|
||||||
|
namespaceStore.items.replace(buildItems(["one", "two", "three"]));
|
||||||
|
namespaceStore.selectNamespaces(["one"]);
|
||||||
|
|
||||||
|
const { container } = render(<><NamespaceSelectFilter /></>);
|
||||||
|
|
||||||
|
fireEvent.click(container.querySelector(placeholderSelector));
|
||||||
|
|
||||||
|
await waitFor(() => screen.getByText("three"));
|
||||||
|
fireEvent.click(screen.getByText("three"));
|
||||||
|
|
||||||
|
expect(container.querySelector(".Select__placeholder").innerHTML).toEqual("Namespace: three");
|
||||||
|
expect(namespaceStore.selectedNames).toEqual(new Set(["three"]));
|
||||||
|
});
|
||||||
|
|
||||||
|
it ("allows to switch back to all namespaces", async () => {
|
||||||
|
const namespaces = ["one", "two", "three"];
|
||||||
|
|
||||||
|
namespaceStore.items.replace(buildItems(namespaces));
|
||||||
|
namespaceStore.selectNamespaces(["three"]);
|
||||||
|
|
||||||
|
const { container } = render(<><NamespaceSelectFilter /></>);
|
||||||
|
|
||||||
|
fireEvent.click(container.querySelector(placeholderSelector));
|
||||||
|
|
||||||
|
await waitFor(() => screen.getByText("three"));
|
||||||
|
fireEvent.click(screen.getByText("All Namespaces"));
|
||||||
|
|
||||||
|
expect(container.querySelector(placeholderSelector).innerHTML).toEqual("All namespaces");
|
||||||
|
expect(namespaceStore.selectedNames).toEqual(new Set(namespaces));
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user