|
|
|
import { describe, it, expect } from "vitest";
|
|
|
|
import { mount } from "@vue/test-utils";
|
|
|
|
import Status from "../../src/components/Status.vue";
|
|
|
|
import { UP, DOWN, PENDING, MAINTENANCE } from "../../src/util";
|
|
|
|
|
|
|
|
describe("Status.vue", () => {
|
|
|
|
const mountStatus = (status) => {
|
|
|
|
return mount(Status, {
|
|
|
|
props: {
|
|
|
|
status
|
|
|
|
},
|
|
|
|
global: {
|
|
|
|
mocks: {
|
|
|
|
$t: (key) => key // Mock translation function
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
|
|
|
it("renders UP status correctly", () => {
|
|
|
|
const wrapper = mountStatus(UP); // UP status
|
|
|
|
expect(wrapper.find(".badge").classes()).toContain("bg-primary");
|
|
|
|
expect(wrapper.text()).toBe("Up");
|
|
|
|
});
|
|
|
|
|
|
|
|
it("renders DOWN status correctly", () => {
|
|
|
|
const wrapper = mountStatus(DOWN); // DOWN status
|
|
|
|
expect(wrapper.find(".badge").classes()).toContain("bg-danger");
|
|
|
|
expect(wrapper.text()).toBe("Down");
|
|
|
|
});
|
|
|
|
|
|
|
|
it("renders PENDING status correctly", () => {
|
|
|
|
const wrapper = mountStatus(PENDING); // PENDING status
|
|
|
|
expect(wrapper.find(".badge").classes()).toContain("bg-warning");
|
|
|
|
expect(wrapper.text()).toBe("Pending");
|
|
|
|
});
|
|
|
|
|
|
|
|
it("renders MAINTENANCE status correctly", () => {
|
|
|
|
const wrapper = mountStatus(MAINTENANCE); // MAINTENANCE status
|
|
|
|
expect(wrapper.find(".badge").classes()).toContain("bg-maintenance");
|
|
|
|
expect(wrapper.text()).toBe("statusMaintenance");
|
|
|
|
});
|
|
|
|
|
|
|
|
it("handles unknown status gracefully", () => {
|
|
|
|
const wrapper = mountStatus(999); // Unknown status
|
|
|
|
expect(wrapper.find(".badge").classes()).toContain("bg-secondary");
|
|
|
|
expect(wrapper.text()).toBe("Unknown");
|
|
|
|
});
|
|
|
|
|
|
|
|
it("updates when status prop changes", async () => {
|
|
|
|
const wrapper = mountStatus(UP); // UP status
|
|
|
|
expect(wrapper.find(".badge").classes()).toContain("bg-primary");
|
|
|
|
|
|
|
|
await wrapper.setProps({ status: DOWN }); // Change to DOWN status
|
|
|
|
expect(wrapper.find(".badge").classes()).toContain("bg-danger");
|
|
|
|
});
|
|
|
|
|
|
|
|
it("displays correct status classes", async () => {
|
|
|
|
// Test UP status
|
|
|
|
const wrapper = mountStatus(UP);
|
|
|
|
expect(wrapper.find(".badge").classes()).toContain("bg-primary");
|
|
|
|
|
|
|
|
// Test DOWN status
|
|
|
|
await wrapper.setProps({ status: DOWN });
|
|
|
|
expect(wrapper.find(".badge").classes()).toContain("bg-danger");
|
|
|
|
|
|
|
|
// Test PENDING status
|
|
|
|
await wrapper.setProps({ status: PENDING });
|
|
|
|
expect(wrapper.find(".badge").classes()).toContain("bg-warning");
|
|
|
|
|
|
|
|
// Test MAINTENANCE status
|
|
|
|
await wrapper.setProps({ status: MAINTENANCE });
|
|
|
|
expect(wrapper.find(".badge").classes()).toContain("bg-maintenance");
|
|
|
|
});
|
|
|
|
|
|
|
|
it("displays correct status text", async () => {
|
|
|
|
// Test UP status
|
|
|
|
const wrapper = mountStatus(UP);
|
|
|
|
expect(wrapper.text()).toBe("Up");
|
|
|
|
|
|
|
|
// Test DOWN status
|
|
|
|
await wrapper.setProps({ status: DOWN });
|
|
|
|
expect(wrapper.text()).toBe("Down");
|
|
|
|
|
|
|
|
// Test PENDING status
|
|
|
|
await wrapper.setProps({ status: PENDING });
|
|
|
|
expect(wrapper.text()).toBe("Pending");
|
|
|
|
|
|
|
|
// Test MAINTENANCE status
|
|
|
|
await wrapper.setProps({ status: MAINTENANCE });
|
|
|
|
expect(wrapper.text()).toBe("statusMaintenance");
|
|
|
|
});
|
|
|
|
});
|