fix(SEC-WEB-26+29): Remove console.log + fix formatTime error handling
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:
Jason Woltje
2026-02-06 15:29:32 -06:00
parent dfef71b660
commit 65b078c85e
4 changed files with 48 additions and 5 deletions

View File

@@ -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("");

View File

@@ -45,8 +45,6 @@ function TeamsPageContent(): ReactElement {
// description: newTeamDescription || undefined,
// });
console.log("Creating team:", { name: newTeamName, description: newTeamDescription });
// Reset form
setNewTeamName("");
setNewTeamDescription("");

View 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");
});
});

View File

@@ -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";
}
}