mirror of
https://github.com/openfrontio/OpenFrontIO.git
synced 2026-06-21 16:50:15 +00:00
4170aca548
## Description: Big update to the EventsDisplay - Style update for EventsDisplay, look & feel similar to other windows - Component now hidden during spawn phase - Adds new functionality for filtering events by category. Allows the player to remove specific event types - Displays latest gold amount, decays after 5 seconds <img width="1147" alt="Screenshot 2025-06-07 at 20 18 55" src="https://github.com/user-attachments/assets/11c39818-55ad-4ba1-a998-360057e2856c" /> <img width="422" alt="Screenshot 2025-06-07 at 19 01 55" src="https://github.com/user-attachments/assets/09c0b998-6046-49fb-9fba-33b4f57f337b" /> <img width="444" alt="Screenshot 2025-06-07 at 20 20 25" src="https://github.com/user-attachments/assets/022deadc-3a49-442a-85f5-f1cd128a5805" />  ## Please complete the following: - [X] I have added screenshots for all UI updates - [X] I process any text displayed to the user through translateText() and I've added it to the en.json file - [X] I have added relevant tests to the test directory - [X] I confirm I have thoroughly tested these changes and take full responsibility for any bugs introduced - [X] I understand that submitting code with bugs that could have been caught through manual testing blocks releases and new features for all contributors ## Please put your Discord username so you can be contacted if a bug or regression is found: maxion_ Fixes #1025 Fixes #1034
56 lines
1.7 KiB
TypeScript
56 lines
1.7 KiB
TypeScript
import { getMessageTypeClasses, severityColors } from "../src/client/Utils";
|
|
import { MessageType } from "../src/core/game/Game";
|
|
|
|
describe("getMessageTypeClasses", () => {
|
|
// Spy on console.warn to track when the default case is hit
|
|
let consoleSpy: jest.SpyInstance;
|
|
|
|
beforeEach(() => {
|
|
consoleSpy = jest.spyOn(console, "warn").mockImplementation(() => {});
|
|
});
|
|
|
|
afterEach(() => {
|
|
consoleSpy.mockRestore();
|
|
});
|
|
|
|
it("should return a valid CSS class for every MessageType", () => {
|
|
const messageTypes = Object.values(MessageType).filter(
|
|
(value) => typeof value === "number",
|
|
) as MessageType[];
|
|
|
|
messageTypes.forEach((messageType) => {
|
|
const result = getMessageTypeClasses(messageType);
|
|
|
|
expect(Object.values(severityColors)).toContain(result);
|
|
|
|
expect(result).toBeTruthy();
|
|
expect(typeof result).toBe("string");
|
|
});
|
|
});
|
|
|
|
it("should not trigger console.warn for any MessageType", () => {
|
|
const messageTypes = Object.values(MessageType).filter(
|
|
(value) => typeof value === "number",
|
|
) as MessageType[];
|
|
|
|
messageTypes.forEach((messageType) => {
|
|
getMessageTypeClasses(messageType);
|
|
});
|
|
|
|
// No message type should fall through to the default case
|
|
expect(consoleSpy).not.toHaveBeenCalled();
|
|
});
|
|
|
|
it("should return white color and warn for unknown message types", () => {
|
|
// Cast to MessageType to test the default case
|
|
const unknownType = 999 as MessageType;
|
|
|
|
const result = getMessageTypeClasses(unknownType);
|
|
|
|
expect(result).toBe(severityColors["white"]);
|
|
expect(consoleSpy).toHaveBeenCalledWith(
|
|
"Message type 999 has no explicit color",
|
|
);
|
|
});
|
|
});
|