mirror of
https://github.com/supabase/supabase.git
synced 2026-10-05 17:35:10 +03:00
chore: add tests for all , fixed some warnings
This commit is contained in:
1 parent
a70f7e9f32
commit
ccd155dd03
2 files changed
+87
-20
No files matched your search
@@ -3,14 +3,11 @@ import BarChart from 'components/ui/Charts/BarChart'
|
||||
import Table from 'components/to-be-cleaned/Table'
|
||||
import {
|
||||
jsonSyntaxHighlight,
|
||||
ResponseCodeFormatter,
|
||||
TextFormatter,
|
||||
} from 'components/interfaces/Settings/Logs/LogsFormatters'
|
||||
import { Button, Collapsible, IconChevronRight } from 'ui'
|
||||
import { queryParamsToObject } from '../Reports.utils'
|
||||
import Loading from 'components/ui/Loading'
|
||||
import { LoadingLine } from 'ui/src/components/Command/LoadingLine'
|
||||
import LoadingOpacity from 'components/ui/LoadingOpacity'
|
||||
import { Fragment } from 'react'
|
||||
|
||||
export const renderTotalRequests = (
|
||||
props: ReportWidgetProps<{
|
||||
@@ -64,7 +61,7 @@ export const renderTopApiRoutes = (
|
||||
body={
|
||||
<>
|
||||
{props.data.map((datum) => (
|
||||
<>
|
||||
<Fragment key={datum.path + (datum.search || '')}>
|
||||
<Table.tr className="p-0">
|
||||
<Table.td className={[cellClasses].join(' ')}>
|
||||
<RouteTdContent {...datum} />
|
||||
@@ -78,7 +75,7 @@ export const renderTopApiRoutes = (
|
||||
</Table.td>
|
||||
)}
|
||||
</Table.tr>
|
||||
</>
|
||||
</Fragment>
|
||||
))}
|
||||
</>
|
||||
}
|
||||
@@ -117,7 +114,7 @@ export const renderResponseSpeed = (
|
||||
) => {
|
||||
const transformedData = props.data.map((datum) => ({
|
||||
timestamp: datum.timestamp,
|
||||
avg: datum.avg
|
||||
avg: datum.avg,
|
||||
}))
|
||||
const lastAvg = props.data[props.data.length - 1]?.avg
|
||||
return (
|
||||
@@ -145,7 +142,7 @@ const RouteTdContent = (datum: RouteTdContentProps) => (
|
||||
<Collapsible>
|
||||
<Collapsible.Trigger asChild>
|
||||
<div className="flex gap-2">
|
||||
<Button type="text" className=" !py-0 !p-1" title="Show more route details">
|
||||
<Button as="span" type="text" className=" !py-0 !p-1" title="Show more route details">
|
||||
<IconChevronRight
|
||||
size={14}
|
||||
className="transition data-open-parent:rotate-90 data-closed-parent:rotate-0"
|
||||
|
||||
@@ -7,7 +7,7 @@ import userEvent from '@testing-library/user-event'
|
||||
beforeEach(() => {
|
||||
// reset mocks between tests
|
||||
get.mockReset()
|
||||
get.mockImplementation(async (_url) => [{ data: [] }])
|
||||
get.mockImplementation(async (_url) => [{ result: [] }])
|
||||
})
|
||||
|
||||
test(`static elements`, async () => {
|
||||
@@ -27,15 +27,85 @@ test('refresh button', async () => {
|
||||
await waitFor(() => expect(get).toBeCalled())
|
||||
})
|
||||
|
||||
test('expandable tables', async () => {
|
||||
get.mockImplementation(async (_url) => [
|
||||
{ data: [{ timestamp: new Date().toISOString(), count: 123 }] },
|
||||
])
|
||||
const expandables = await screen.findByText('View API requests')
|
||||
const first = expandables[0]
|
||||
get.mockImplementationOnce(async (_url) => [{ data: [{ path: '/my-path', count: 22 }] }])
|
||||
userEvent.click(first)
|
||||
await screen.findByText('Hide API Requests')
|
||||
await screen.findByText(/\/my\-path/)
|
||||
await screen.findByText(/22/)
|
||||
test('append - api request routes', async () => {
|
||||
get.mockImplementation(async (url) => {
|
||||
if (decodeURIComponent(url).includes("request.path")) {
|
||||
return { result: [{ path: 'mypath', method: 'GET', status_code: 200, search: 'some-query', count: 22 }] }
|
||||
}
|
||||
return { result: [{ timestamp: new Date().toISOString(), count: 123 }] }
|
||||
})
|
||||
render(<ApiReport />)
|
||||
await waitFor(() => expect(get).toBeCalled())
|
||||
await screen.findAllByText(/mypath/)
|
||||
await screen.findAllByText(/GET/)
|
||||
await screen.findAllByText(/200/)
|
||||
await screen.findAllByText(/some\-query/)
|
||||
await screen.findAllByText(/22/)
|
||||
})
|
||||
|
||||
|
||||
test('append - error routes', async () => {
|
||||
get.mockImplementation(async (url) => {
|
||||
const uri = decodeURIComponent(url)
|
||||
if (uri.includes("400")) {
|
||||
return { result: [{ path: 'mypath', method: 'GET', status_code: 200, search: 'some-query', count: 22 }] }
|
||||
}
|
||||
return { result: [{ timestamp: new Date().toISOString(), count: 123 }] }
|
||||
})
|
||||
render(<ApiReport />)
|
||||
await waitFor(() => expect(get).toBeCalled())
|
||||
await screen.findAllByText(/mypath/)
|
||||
await screen.findAllByText(/GET/)
|
||||
await screen.findAllByText(/200/)
|
||||
await screen.findAllByText(/some\-query/)
|
||||
await screen.findAllByText(/22/)
|
||||
})
|
||||
|
||||
|
||||
test('append - error routes', async () => {
|
||||
get.mockImplementation(async (url) => {
|
||||
const uri = decodeURIComponent(url)
|
||||
if (uri.includes("avg") && uri.includes("request.path")) {
|
||||
return { result: [{ path: 'mypath', method: 'GET', status_code: 200, avg: 534, search: 'some-query', count: 22 }] }
|
||||
}
|
||||
return { result: [{ timestamp: new Date().toISOString(), count: 123 }] }
|
||||
})
|
||||
render(<ApiReport />)
|
||||
await waitFor(() => expect(get).toBeCalled())
|
||||
await screen.findAllByText(/mypath/)
|
||||
await screen.findAllByText(/GET/)
|
||||
await screen.findAllByText(/200/)
|
||||
await screen.findAllByText(/some\-query/)
|
||||
await screen.findAllByText(/22/)
|
||||
await screen.findAllByText(/534\.00ms/)
|
||||
})
|
||||
|
||||
|
||||
|
||||
// test('expandable error routes', async () => {
|
||||
// get.mockImplementation(async (url) => {
|
||||
// if (url.includes('path')) {
|
||||
// return [{ data: [{ path: '/my-path', method: 'GET', search: '?=123', count: 22 }] }]
|
||||
// }
|
||||
// return [{ data: [{ timestamp: new Date().toISOString(), count: 123 }] }]
|
||||
// })
|
||||
|
||||
// render(<ApiReport />)
|
||||
// await screen.findByText(/\/my\-path/)
|
||||
// await screen.findByText(/\?\=123/)
|
||||
// await screen.findByText(/22/)
|
||||
// })
|
||||
|
||||
// test('expandable high latency routes', async () => {
|
||||
// get.mockImplementation(async (url) => {
|
||||
// if (url.includes('path')) {
|
||||
// return [{ data: [{ path: '/my-path', method: 'GET', search: '?=123', avg_ms: 55, count: 22 }] }]
|
||||
// }
|
||||
// return [{ data: [{ timestamp: new Date().toISOString(), avg_ms: 123 }] }]
|
||||
// })
|
||||
// render(<ApiReport />)
|
||||
// await screen.findByText(/\/my\-path/)
|
||||
// await screen.findByText(/\?\=123/)
|
||||
// await screen.findByText(/22/)
|
||||
// await screen.findByText(/55/)
|
||||
// })
|
||||
Reference in new issue
Block a user