Skip to content

Commit f3cc5a5

Browse files
authored
Merge pull request #454
chore(22652): Rename hook file to TS when appropriate * chore(22652): change TypeScript hooks file extension * chore(22652): change TypeScript hooks file extension * chore(22652): change TypeScript hooks file extension * chore(22652): change TypeScript hooks file extension * test(22652): add tests * chore(22652): fix gitignore * test(22652): fix intercepts * test(22652): change unhandled intercept warning * chore(22652): update MSW * chore(22652): fix coverage * test(22652): add tests * test(22652): fix test and coverage * chore(22652): fix type * chore(22652): update vite (fix #451) * test(22652): export the hook testing wrapper
1 parent 0281445 commit f3cc5a5

File tree

118 files changed

+1005
-196
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

118 files changed

+1005
-196
lines changed

hivemq-edge/src/frontend/.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,8 @@ cypress/screenshots
2525

2626
# Exclude test-results
2727
test-results
28+
29+
# Local dev fixes
2830
/public/app/
2931
/public/images/
32+
/public/module/

hivemq-edge/src/frontend/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,15 +115,15 @@
115115
"eslint-plugin-react-refresh": "^0.3.4",
116116
"i18next-pseudo": "^2.2.1",
117117
"jsdom": "^24.0.0",
118-
"msw": "^2.2.14",
118+
"msw": "^2.3.1",
119119
"openapi-typescript-codegen": "^0.25.0",
120120
"prettier": "2.8.8",
121121
"sass": "^1.70.0",
122122
"stylelint": "^15.6.2",
123123
"stylelint-config-standard": "^33.0.0",
124124
"stylelint-config-standard-scss": "^9.0.0",
125125
"typescript": "^5.0.4",
126-
"vite": "^5.2.7",
126+
"vite": "^5.2.13",
127127
"vitest": "^1.5.3"
128128
},
129129
"msw": {

hivemq-edge/src/frontend/pnpm-lock.yaml

Lines changed: 21 additions & 21 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

hivemq-edge/src/frontend/public/mockServiceWorker.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
* - Please do NOT serve this file on production.
99
*/
1010

11-
const PACKAGE_VERSION = '2.2.14'
11+
const PACKAGE_VERSION = '2.3.1'
1212
const INTEGRITY_CHECKSUM = '26357c79639bfa20d64c0efca2a87423'
1313
const IS_MOCKED_RESPONSE = Symbol('isMockedResponse')
1414
const activeClientIds = new Set()
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
2+
import { AuthProvider } from '@/modules/Auth/AuthProvider.tsx'
3+
import { MemoryRouter } from 'react-router-dom'
4+
5+
export const SimpleWrapper: React.JSXElementConstructor<{ children: React.ReactElement }> = ({ children }) => (
6+
<QueryClientProvider client={new QueryClient()}>
7+
<AuthProvider>
8+
<MemoryRouter>{children}</MemoryRouter>
9+
</AuthProvider>
10+
</QueryClientProvider>
11+
)

hivemq-edge/src/frontend/src/__test-utils__/setup.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ window.crypto.randomUUID = randomUUID
88

99
// Establish API mocking before all tests.
1010
beforeAll(() => {
11-
server.listen({ onUnhandledRequest: 'error' })
11+
server.listen({ onUnhandledRequest: 'warn' })
1212
})
1313

1414
// Reset any request handlers that we may add during the tests,

hivemq-edge/src/frontend/src/api/hooks/useConnection/__handlers__/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ export const handlers = [
2727
http.get('*/management/protocol-adapters/status', () => {
2828
return HttpResponse.json<StatusList>(
2929
{
30-
items: [mockBridgeConnectionStatus],
30+
items: [mockAdapterConnectionStatus],
3131
},
3232
{ status: 200 }
3333
)
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import { expect } from 'vitest'
2+
import { renderHook, waitFor } from '@testing-library/react'
3+
4+
import { server } from '@/__test-utils__/msw/mockServer.ts'
5+
import { SimpleWrapper as wrapper } from '@/__test-utils__/hooks/SimpleWrapper.tsx'
6+
7+
import { handlers } from './__handlers__'
8+
import { useGetAdaptersStatus } from '@/api/hooks/useConnection/useGetAdaptersStatus.ts'
9+
10+
describe('useGetAdaptersStatus', () => {
11+
afterEach(() => {
12+
server.resetHandlers()
13+
})
14+
15+
it('should load the data', async () => {
16+
server.use(...handlers)
17+
18+
const { result } = renderHook(useGetAdaptersStatus, { wrapper })
19+
await waitFor(() => {
20+
expect(result.current.isLoading).toBeFalsy()
21+
expect(result.current.isSuccess).toBeTruthy()
22+
})
23+
expect(result.current.data?.items).toStrictEqual([
24+
{
25+
connection: 'CONNECTED',
26+
id: 'my-adapter',
27+
type: 'adapter',
28+
},
29+
])
30+
})
31+
})
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import { expect } from 'vitest'
2+
import { renderHook, waitFor } from '@testing-library/react'
3+
4+
import { server } from '@/__test-utils__/msw/mockServer.ts'
5+
import { SimpleWrapper as wrapper } from '@/__test-utils__/hooks/SimpleWrapper.tsx'
6+
7+
import { handlers } from './__handlers__'
8+
import { useGetBridgesStatus } from '@/api/hooks/useConnection/useGetBridgesStatus.ts'
9+
10+
describe('useGetBridgesStatus', () => {
11+
afterEach(() => {
12+
server.resetHandlers()
13+
})
14+
15+
it('should load the data', async () => {
16+
server.use(...handlers)
17+
18+
const { result } = renderHook(useGetBridgesStatus, { wrapper })
19+
await waitFor(() => {
20+
expect(result.current.isLoading).toBeFalsy()
21+
expect(result.current.isSuccess).toBeTruthy()
22+
})
23+
expect(result.current.data?.items).toStrictEqual([
24+
{
25+
connection: 'CONNECTED',
26+
id: 'first-bridge',
27+
type: 'bridge',
28+
},
29+
])
30+
})
31+
})

0 commit comments

Comments
 (0)