fix(SEC-WEB-26+29): Remove console.log + fix formatTime error handling
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
- Remove debug console.log from workspaces page and teams page - Fix formatTime to return "Invalid date" fallback instead of empty string when date parsing fails (handles both thrown errors and NaN dates) - Export formatTime and add unit tests for error handling cases Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -61,7 +61,6 @@ function WorkspacesPageContent(): ReactElement {
|
||||
setIsCreating(true);
|
||||
try {
|
||||
// TODO: Replace with real API call
|
||||
console.log("Creating workspace:", newWorkspaceName);
|
||||
await new Promise((resolve) => setTimeout(resolve, 1000)); // Simulate API call
|
||||
alert(`Workspace "${newWorkspaceName}" created successfully!`);
|
||||
setNewWorkspaceName("");
|
||||
|
||||
@@ -45,8 +45,6 @@ function TeamsPageContent(): ReactElement {
|
||||
// description: newTeamDescription || undefined,
|
||||
// });
|
||||
|
||||
console.log("Creating team:", { name: newTeamName, description: newTeamDescription });
|
||||
|
||||
// Reset form
|
||||
setNewTeamName("");
|
||||
setNewTeamDescription("");
|
||||
|
||||
43
apps/web/src/components/chat/MessageList.test.tsx
Normal file
43
apps/web/src/components/chat/MessageList.test.tsx
Normal file
@@ -0,0 +1,43 @@
|
||||
/**
|
||||
* @file MessageList.test.tsx
|
||||
* @description Tests for formatTime utility in MessageList
|
||||
*/
|
||||
|
||||
import { describe, it, expect } from "vitest";
|
||||
import { formatTime } from "./MessageList";
|
||||
|
||||
describe("formatTime", () => {
|
||||
it("should format a valid ISO date string", () => {
|
||||
const result = formatTime("2024-06-15T14:30:00Z");
|
||||
// The exact output depends on locale, but it should not be empty or "Invalid date"
|
||||
expect(result).toBeTruthy();
|
||||
expect(result).not.toBe("Invalid date");
|
||||
});
|
||||
|
||||
it('should return "Invalid date" for an invalid date string', () => {
|
||||
const result = formatTime("not-a-date");
|
||||
expect(result).toBe("Invalid date");
|
||||
});
|
||||
|
||||
it('should return "Invalid date" for an empty string', () => {
|
||||
const result = formatTime("");
|
||||
expect(result).toBe("Invalid date");
|
||||
});
|
||||
|
||||
it('should return "Invalid date" for garbage input', () => {
|
||||
const result = formatTime("abc123xyz");
|
||||
expect(result).toBe("Invalid date");
|
||||
});
|
||||
|
||||
it("should handle a valid date without time component", () => {
|
||||
const result = formatTime("2024-01-01");
|
||||
expect(result).toBeTruthy();
|
||||
expect(result).not.toBe("Invalid date");
|
||||
});
|
||||
|
||||
it("should handle Unix epoch", () => {
|
||||
const result = formatTime("1970-01-01T00:00:00Z");
|
||||
expect(result).toBeTruthy();
|
||||
expect(result).not.toBe("Invalid date");
|
||||
});
|
||||
});
|
||||
@@ -313,12 +313,15 @@ function LoadingIndicator({ quip }: { quip?: string | null }): React.JSX.Element
|
||||
);
|
||||
}
|
||||
|
||||
function formatTime(isoString: string): string {
|
||||
export function formatTime(isoString: string): string {
|
||||
try {
|
||||
const date = new Date(isoString);
|
||||
if (isNaN(date.getTime())) {
|
||||
return "Invalid date";
|
||||
}
|
||||
return date.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" });
|
||||
} catch {
|
||||
return "";
|
||||
return "Invalid date";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user