mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-23 01:06:35 +00:00
Remove test file as requested by reviewer
Co-authored-by: balloob <1444314+balloob@users.noreply.github.com>
This commit is contained in:
parent
72841dc787
commit
b47a929394
@ -1,132 +0,0 @@
|
||||
import { describe, expect, it, vi } from "vitest";
|
||||
import { computeDeviceNameDisplay } from "../../../../src/common/entity/compute_device_name";
|
||||
import { stringCompare } from "../../../../src/common/string/compare";
|
||||
import type { DeviceRegistryEntry } from "../../../../src/data/device_registry";
|
||||
|
||||
describe("Device sorting in ha-config-entry-row", () => {
|
||||
const mockHass = {
|
||||
localize: vi.fn((key, params) => {
|
||||
if (key === "ui.panel.config.devices.unnamed_device") {
|
||||
return `Unnamed (${params?.type})`;
|
||||
}
|
||||
if (key.startsWith("ui.panel.config.devices.type.")) {
|
||||
return key.split(".").pop();
|
||||
}
|
||||
return key;
|
||||
}),
|
||||
locale: { language: "en" },
|
||||
} as any;
|
||||
|
||||
const createMockDevice = (
|
||||
name: string,
|
||||
entryId: string,
|
||||
entryType?: string
|
||||
): DeviceRegistryEntry => ({
|
||||
id: `device_${name.toLowerCase().replace(/\s+/g, "_")}`,
|
||||
name,
|
||||
name_by_user: null,
|
||||
config_entries: [entryId],
|
||||
entry_type: entryType as any,
|
||||
manufacturer: "Test Manufacturer",
|
||||
model: "Test Model",
|
||||
sw_version: "1.0.0",
|
||||
hw_version: null,
|
||||
identifiers: [],
|
||||
connections: [],
|
||||
via_device_id: null,
|
||||
area_id: null,
|
||||
disabled_by: null,
|
||||
configuration_url: null,
|
||||
serial_number: null,
|
||||
suggested_area: null,
|
||||
labels: [],
|
||||
config_entries_subentries: {},
|
||||
});
|
||||
|
||||
it("should sort devices alphabetically by name", () => {
|
||||
const devices = [
|
||||
createMockDevice("Z2mHueTap02", "test_entry"),
|
||||
createMockDevice("Z2mHueTap01", "test_entry"),
|
||||
createMockDevice("Z2mIkeaSwitch01", "test_entry"),
|
||||
createMockDevice("Z2mHueMotion02", "test_entry"),
|
||||
createMockDevice("Z2mHueColour02", "test_entry"),
|
||||
createMockDevice("Z2mHueColour01", "test_entry"),
|
||||
createMockDevice("Kitchen Motion", "test_entry"),
|
||||
createMockDevice("Landing Dimmer", "test_entry"),
|
||||
createMockDevice("Z2mHueWhite01", "test_entry"),
|
||||
createMockDevice("Andrew Office Dimmer", "test_entry"),
|
||||
];
|
||||
|
||||
// Sort using the same logic as our implementation
|
||||
const sortedDevices = devices.sort((a, b) =>
|
||||
stringCompare(
|
||||
computeDeviceNameDisplay(a, mockHass),
|
||||
computeDeviceNameDisplay(b, mockHass),
|
||||
mockHass.locale.language
|
||||
)
|
||||
);
|
||||
|
||||
const expectedOrder = [
|
||||
"Andrew Office Dimmer",
|
||||
"Kitchen Motion",
|
||||
"Landing Dimmer",
|
||||
"Z2mHueColour01",
|
||||
"Z2mHueColour02",
|
||||
"Z2mHueMotion02",
|
||||
"Z2mHueTap01",
|
||||
"Z2mHueTap02",
|
||||
"Z2mHueWhite01",
|
||||
"Z2mIkeaSwitch01",
|
||||
];
|
||||
|
||||
const actualOrder = sortedDevices.map((device) =>
|
||||
computeDeviceNameDisplay(device, mockHass)
|
||||
);
|
||||
expect(actualOrder).toEqual(expectedOrder);
|
||||
});
|
||||
|
||||
it("should handle devices without names properly", () => {
|
||||
const devices = [
|
||||
createMockDevice("Device A", "test_entry"),
|
||||
{ ...createMockDevice("", "test_entry"), name: null } as any,
|
||||
createMockDevice("Device B", "test_entry"),
|
||||
];
|
||||
|
||||
const sortedDevices = devices.sort((a, b) =>
|
||||
stringCompare(
|
||||
computeDeviceNameDisplay(a, mockHass),
|
||||
computeDeviceNameDisplay(b, mockHass),
|
||||
mockHass.locale.language
|
||||
)
|
||||
);
|
||||
|
||||
// Unnamed device should be sorted by its localized name
|
||||
const actualOrder = sortedDevices.map((device) =>
|
||||
computeDeviceNameDisplay(device, mockHass)
|
||||
);
|
||||
expect(actualOrder[0]).toBe("Device A");
|
||||
expect(actualOrder[1]).toBe("Device B");
|
||||
expect(actualOrder[2]).toBe("Unnamed (device)");
|
||||
});
|
||||
|
||||
it("should sort services alphabetically too", () => {
|
||||
const services = [
|
||||
createMockDevice("Service Z", "test_entry", "service"),
|
||||
createMockDevice("Service A", "test_entry", "service"),
|
||||
createMockDevice("Service M", "test_entry", "service"),
|
||||
];
|
||||
|
||||
const sortedServices = services.sort((a, b) =>
|
||||
stringCompare(
|
||||
computeDeviceNameDisplay(a, mockHass),
|
||||
computeDeviceNameDisplay(b, mockHass),
|
||||
mockHass.locale.language
|
||||
)
|
||||
);
|
||||
|
||||
const actualOrder = sortedServices.map((service) =>
|
||||
computeDeviceNameDisplay(service, mockHass)
|
||||
);
|
||||
expect(actualOrder).toEqual(["Service A", "Service M", "Service Z"]);
|
||||
});
|
||||
});
|
Loading…
x
Reference in New Issue
Block a user