diff --git a/package-lock.json b/package-lock.json
index 972143b..c03cdcb 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -20,6 +20,7 @@
"@testing-library/user-event": "^14.5.0",
"@vitejs/plugin-react": "^4.0.0",
"jsdom": "^22.0.0",
+ "typescript": "^5.9.3",
"vite": "^4.4.0",
"vitest": "^0.34.0"
}
@@ -4986,6 +4987,20 @@
"node": ">=4"
}
},
+ "node_modules/typescript": {
+ "version": "5.9.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
+ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
"node_modules/ufo": {
"version": "1.6.3",
"resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.3.tgz",
diff --git a/package.json b/package.json
index 7254de7..266d2bc 100644
--- a/package.json
+++ b/package.json
@@ -12,19 +12,20 @@
"lint": "eslint src --ext js,jsx --report-unused-disable-directives --max-warnings 0"
},
"dependencies": {
- "react": "^18.2.0",
- "react-dom": "^18.2.0",
- "@capacitor/core": "^5.0.0",
+ "@capacitor/android": "^5.0.0",
"@capacitor/cli": "^5.0.0",
- "@capacitor/android": "^5.0.0"
+ "@capacitor/core": "^5.0.0",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0"
},
"devDependencies": {
- "@vitejs/plugin-react": "^4.0.0",
- "vite": "^4.4.0",
- "vitest": "^0.34.0",
- "@testing-library/react": "^14.0.0",
"@testing-library/jest-dom": "^5.17.0",
+ "@testing-library/react": "^14.0.0",
"@testing-library/user-event": "^14.5.0",
- "jsdom": "^22.0.0"
+ "@vitejs/plugin-react": "^4.0.0",
+ "jsdom": "^22.0.0",
+ "typescript": "^5.9.3",
+ "vite": "^4.4.0",
+ "vitest": "^0.34.0"
}
-}
\ No newline at end of file
+}
diff --git a/src/components/ChatWindow.test.jsx b/src/components/ChatWindow.test.jsx
index f4e21b0..cc28ceb 100644
--- a/src/components/ChatWindow.test.jsx
+++ b/src/components/ChatWindow.test.jsx
@@ -1,5 +1,5 @@
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest'
-import { render, screen, fireEvent, waitFor } from '@testing-library/react'
+import { render, screen, waitFor, act } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import { ChatWindow } from '../components/ChatWindow.jsx'
import { sendMessage } from '../utils/llmApi.js'
@@ -62,8 +62,11 @@ describe('ChatWindow', () => {
render()
const input = screen.getByRole('textbox')
- await user.type(input, 'Hello')
- await user.click(screen.getByRole('button', { name: /Send/i }))
+
+ await act(async () => {
+ await user.type(input, 'Hello')
+ await user.click(screen.getByRole('button', { name: /Send/i }))
+ })
expect(defaultProps.onAddMessage).toHaveBeenCalledWith('user', 'Hello')
await waitFor(() => {
@@ -80,8 +83,11 @@ describe('ChatWindow', () => {
render()
const input = screen.getByRole('textbox')
- await user.type(input, 'Hello')
- await user.click(screen.getByRole('button', { name: /Send/i }))
+
+ await act(async () => {
+ await user.type(input, 'Hello')
+ await user.click(screen.getByRole('button', { name: /Send/i }))
+ })
expect(screen.getByText(/Please configure API endpoint/)).toBeInTheDocument()
})