more unit test work

This commit is contained in:
Smartsheet-JB-Brown 2025-04-14 22:42:11 -07:00
parent 4c88e930e9
commit c92be6aadb
2 changed files with 10 additions and 36 deletions

View file

@ -37,9 +37,15 @@ describe("PackageManagerViewStateManager", () => {
beforeEach(() => {
jest.clearAllMocks()
jest.useFakeTimers()
manager = new PackageManagerViewStateManager()
})
afterEach(() => {
jest.clearAllTimers()
jest.useRealTimers()
})
describe("Initial State", () => {
it("should initialize with default state", () => {
const state = manager.getState()
@ -110,14 +116,6 @@ describe("PackageManagerViewStateManager", () => {
})
describe("Race Conditions", () => {
beforeEach(() => {
jest.useFakeTimers()
})
afterEach(() => {
jest.useRealTimers()
})
it("should handle rapid tab switching during initial load", async () => {
// Start initial load
await manager.transition({ type: "FETCH_ITEMS" })
@ -268,14 +266,6 @@ describe("PackageManagerViewStateManager", () => {
})
describe("Error Handling", () => {
beforeEach(() => {
jest.useFakeTimers()
})
afterEach(() => {
jest.useRealTimers()
})
it("should handle fetch timeout", async () => {
await manager.transition({ type: "FETCH_ITEMS" })
@ -312,14 +302,6 @@ describe("PackageManagerViewStateManager", () => {
})
describe("Filter Behavior", () => {
beforeEach(() => {
jest.useFakeTimers()
})
afterEach(() => {
jest.useRealTimers()
})
it("should debounce filter updates", async () => {
// Reset mock before test
;(vscode.postMessage as jest.Mock).mockClear()
@ -468,14 +450,6 @@ describe("PackageManagerViewStateManager", () => {
})
describe("Fetch Timeout Handling", () => {
beforeEach(() => {
jest.useFakeTimers()
})
afterEach(() => {
jest.useRealTimers()
})
it("should handle fetch timeout", async () => {
await manager.transition({ type: "FETCH_ITEMS" })
@ -591,8 +565,8 @@ describe("PackageManagerViewStateManager", () => {
const state = manager.getState()
expect(state.filters).toEqual(filters)
// Wait for debounce
await new Promise((resolve) => setTimeout(resolve, 300))
// Fast-forward past debounce time
jest.advanceTimersByTime(300)
expect(vscode.postMessage).toHaveBeenCalledWith({
type: "filterPackageManagerItems",

View file

@ -5,7 +5,7 @@ import { vscode } from "@/utils/vscode"
import { groupItemsByType, GroupedItems } from "../utils/grouping"
import { ExpandableSection } from "./ExpandableSection"
import { TypeGroup } from "./TypeGroup"
import { ViewState } from "../state/PackageManagerViewStateManager"
import { ViewState } from "../PackageManagerViewStateManager"
interface PackageManagerItemCardProps {
item: PackageManagerItem
@ -104,7 +104,7 @@ export const PackageManagerItemCard: React.FC<PackageManagerItemCardProps> = ({
onClick={() => {
if (filters.tags.includes(tag)) {
setFilters({
tags: filters.tags.filter((t) => t !== tag),
tags: filters.tags.filter((t: string) => t !== tag),
})
} else {
setFilters({