mirror of
https://github.com/coleam00/Archon.git
synced 2026-01-02 12:48:54 -05:00
The New Archon (Beta) - The Operating System for AI Coding Assistants!
This commit is contained in:
80
archon-ui-main/test/setup.ts
Normal file
80
archon-ui-main/test/setup.ts
Normal file
@@ -0,0 +1,80 @@
|
||||
import { expect, afterEach, vi } from 'vitest'
|
||||
import { cleanup } from '@testing-library/react'
|
||||
import '@testing-library/jest-dom/vitest'
|
||||
|
||||
// Clean up after each test
|
||||
afterEach(() => {
|
||||
cleanup()
|
||||
})
|
||||
|
||||
// Simple mocks only - fetch and WebSocket
|
||||
global.fetch = vi.fn(() =>
|
||||
Promise.resolve({
|
||||
ok: true,
|
||||
json: () => Promise.resolve({}),
|
||||
text: () => Promise.resolve(''),
|
||||
status: 200,
|
||||
} as Response)
|
||||
)
|
||||
|
||||
// Mock WebSocket
|
||||
class MockWebSocket {
|
||||
onopen: ((event: Event) => void) | null = null
|
||||
onclose: ((event: CloseEvent) => void) | null = null
|
||||
onerror: ((event: Event) => void) | null = null
|
||||
onmessage: ((event: MessageEvent) => void) | null = null
|
||||
readyState: number = WebSocket.CONNECTING
|
||||
|
||||
constructor(public url: string) {
|
||||
setTimeout(() => {
|
||||
this.readyState = WebSocket.OPEN
|
||||
if (this.onopen) {
|
||||
this.onopen(new Event('open'))
|
||||
}
|
||||
}, 0)
|
||||
}
|
||||
|
||||
send() {}
|
||||
close() {
|
||||
this.readyState = WebSocket.CLOSED
|
||||
if (this.onclose) {
|
||||
this.onclose(new CloseEvent('close'))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
window.WebSocket = MockWebSocket as any
|
||||
|
||||
// Mock localStorage
|
||||
const localStorageMock = {
|
||||
getItem: vi.fn(() => null),
|
||||
setItem: vi.fn(),
|
||||
removeItem: vi.fn(),
|
||||
clear: vi.fn(),
|
||||
}
|
||||
Object.defineProperty(window, 'localStorage', {
|
||||
value: localStorageMock,
|
||||
})
|
||||
|
||||
// Mock DOM methods that might not exist in test environment
|
||||
Element.prototype.scrollIntoView = vi.fn()
|
||||
window.HTMLElement.prototype.scrollIntoView = vi.fn()
|
||||
|
||||
// Mock lucide-react icons - create a proxy that returns icon name for any icon
|
||||
vi.mock('lucide-react', () => {
|
||||
return new Proxy({}, {
|
||||
get: (target, prop) => {
|
||||
if (typeof prop === 'string') {
|
||||
return () => prop
|
||||
}
|
||||
return undefined
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
// Mock ResizeObserver
|
||||
global.ResizeObserver = vi.fn().mockImplementation(() => ({
|
||||
observe: vi.fn(),
|
||||
unobserve: vi.fn(),
|
||||
disconnect: vi.fn(),
|
||||
}))
|
||||
Reference in New Issue
Block a user