82 lines
1.9 KiB
JavaScript
82 lines
1.9 KiB
JavaScript
/**
|
|
* Tests for ResponsiveText component
|
|
*/
|
|
|
|
const React = require("react");
|
|
|
|
describe("ResponsiveText Component", () => {
|
|
test("should have proper component structure", () => {
|
|
const ResponsiveText = require("../../../src/tui/components/common/ResponsiveText.jsx");
|
|
|
|
expect(typeof ResponsiveText).toBe("function");
|
|
});
|
|
|
|
test("should handle text truncation", () => {
|
|
const longText =
|
|
"This is a very long text that should be truncated when it exceeds the maximum width";
|
|
const maxLength = 20;
|
|
const ellipsis = "...";
|
|
|
|
const truncatedText =
|
|
longText.substring(0, maxLength - ellipsis.length) + ellipsis;
|
|
|
|
expect(truncatedText.length).toBe(maxLength);
|
|
expect(truncatedText.endsWith(ellipsis)).toBe(true);
|
|
});
|
|
|
|
test("should handle styleType prop", () => {
|
|
const styleTypes = [
|
|
"title",
|
|
"subtitle",
|
|
"normal",
|
|
"emphasis",
|
|
"error",
|
|
"success",
|
|
];
|
|
|
|
styleTypes.forEach((type) => {
|
|
expect(typeof type).toBe("string");
|
|
expect(type.length).toBeGreaterThan(0);
|
|
});
|
|
});
|
|
|
|
test("should handle truncate prop", () => {
|
|
const truncateOptions = [true, false];
|
|
|
|
truncateOptions.forEach((option) => {
|
|
expect(typeof option).toBe("boolean");
|
|
});
|
|
});
|
|
|
|
test("should handle showEllipsis prop", () => {
|
|
const showEllipsisOptions = [true, false];
|
|
|
|
showEllipsisOptions.forEach((option) => {
|
|
expect(typeof option).toBe("boolean");
|
|
});
|
|
});
|
|
|
|
test("should handle maxWidth prop", () => {
|
|
const maxWidths = [10, 20, 50, 100];
|
|
|
|
maxWidths.forEach((width) => {
|
|
expect(typeof width).toBe("number");
|
|
expect(width).toBeGreaterThan(0);
|
|
});
|
|
});
|
|
|
|
test("should process text content correctly", () => {
|
|
const testCases = [
|
|
{ input: "Hello World", expected: "Hello World" },
|
|
{ input: 123, expected: "123" },
|
|
{ input: null, expected: "" },
|
|
{ input: undefined, expected: "" },
|
|
];
|
|
|
|
testCases.forEach(({ input, expected }) => {
|
|
const result = String(input || "");
|
|
expect(result).toBe(expected);
|
|
});
|
|
});
|
|
});
|