Security Remediation: All Phases Complete (84 fixes) #348

Merged
jason.woltje merged 46 commits from fix/security into develop 2026-02-07 01:41:33 +00:00
4 changed files with 48 additions and 5 deletions
Showing only changes of commit 65b078c85e - Show all commits

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