Skip to content

Commit 6442b3a

Browse files
committed
Fix Audit Log page test
1 parent 6e572e3 commit 6442b3a

File tree

2 files changed

+46
-33
lines changed

2 files changed

+46
-33
lines changed

site/src/api/api.ts

Lines changed: 2 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -34,18 +34,6 @@ export const withDefaultFeatures = (
3434
return fs as TypesGen.Entitlements["features"]
3535
}
3636

37-
// defaultEntitlements has a default set of disabled functionality.
38-
export const defaultEntitlements = (): TypesGen.Entitlements => {
39-
return {
40-
features: withDefaultFeatures({}),
41-
has_license: false,
42-
errors: [],
43-
warnings: [],
44-
experimental: false,
45-
trial: false,
46-
}
47-
}
48-
4937
// Always attach CSRF token to all requests.
5038
// In puppeteer the document is undefined. In those cases, just
5139
// do nothing.
@@ -625,15 +613,8 @@ export const putWorkspaceExtension = async (
625613
}
626614

627615
export const getEntitlements = async (): Promise<TypesGen.Entitlements> => {
628-
try {
629-
const response = await axios.get("/api/v2/entitlements")
630-
return response.data
631-
} catch (error) {
632-
if (axios.isAxiosError(error) && error.response?.status === 404) {
633-
return defaultEntitlements()
634-
}
635-
throw error
636-
}
616+
const response = await axios.get("/api/v2/entitlements")
617+
return response.data
637618
}
638619

639620
export const getExperiments = async (): Promise<TypesGen.Experiment[]> => {

site/src/pages/AuditPage/AuditPage.test.tsx

Lines changed: 44 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,64 @@
11
import { screen, waitFor } from "@testing-library/react"
22
import userEvent from "@testing-library/user-event"
33
import * as API from "api/api"
4+
import { rest } from "msw"
45
import {
5-
history,
6+
renderWithAuth,
67
MockAuditLog,
78
MockAuditLog2,
8-
render,
99
waitForLoaderToBeRemoved,
10+
MockEntitlementsWithAuditLog,
1011
} from "testHelpers/renderHelpers"
12+
import { server } from "testHelpers/server"
13+
1114
import * as CreateDayString from "util/createDayString"
1215
import AuditPage from "./AuditPage"
1316

17+
interface RenderPageOptions {
18+
filter?: string
19+
page?: number
20+
}
21+
22+
const renderPage = async ({ filter, page }: RenderPageOptions = {}) => {
23+
let route = "/audit"
24+
const params = new URLSearchParams()
25+
26+
if (filter) {
27+
params.set("filter", filter)
28+
}
29+
30+
if (page) {
31+
params.set("page", page.toString())
32+
}
33+
34+
if (Array.from(params).length > 0) {
35+
route += `?${params.toString()}`
36+
}
37+
38+
renderWithAuth(<AuditPage />, {
39+
route,
40+
path: "/audit",
41+
})
42+
await waitForLoaderToBeRemoved()
43+
}
44+
1445
describe("AuditPage", () => {
1546
beforeEach(() => {
1647
// Mocking the dayjs module within the createDayString file
1748
const mock = jest.spyOn(CreateDayString, "createDayString")
1849
mock.mockImplementation(() => "a minute ago")
50+
51+
// Mock the entitlements
52+
server.use(
53+
rest.get("/api/v2/entitlements", (req, res, ctx) => {
54+
return res(ctx.status(200), ctx.json(MockEntitlementsWithAuditLog))
55+
}),
56+
)
1957
})
2058

2159
it("shows the audit logs", async () => {
2260
// When
23-
render(<AuditPage />)
61+
await renderPage()
2462

2563
// Then
2664
await screen.findByTestId(`audit-log-row-${MockAuditLog.id}`)
@@ -29,8 +67,7 @@ describe("AuditPage", () => {
2967

3068
describe("Filtering", () => {
3169
it("filters by typing", async () => {
32-
render(<AuditPage />)
33-
await waitForLoaderToBeRemoved()
70+
await renderPage()
3471
await screen.findByText("updated", { exact: false })
3572

3673
const filterField = screen.getByLabelText("Filter")
@@ -47,19 +84,14 @@ describe("AuditPage", () => {
4784
.mockResolvedValue({ audit_logs: [MockAuditLog], count: 1 })
4885

4986
const query = "resource_type:workspace action:create"
50-
history.push(`/audit?filter=${encodeURIComponent(query)}`)
51-
render(<AuditPage />)
52-
53-
await waitForLoaderToBeRemoved()
87+
await renderPage({ filter: query })
5488

5589
expect(getAuditLogsSpy).toBeCalledWith({ limit: 25, offset: 0, q: query })
5690
})
5791

5892
it("resets page to 1 when filter is changed", async () => {
59-
history.push(`/audit?page=2`)
60-
render(<AuditPage />)
93+
await renderPage({ page: 2 })
6194

62-
await waitForLoaderToBeRemoved()
6395
const getAuditLogsSpy = jest.spyOn(API, "getAuditLogs")
6496

6597
const filterField = screen.getByLabelText("Filter")

0 commit comments

Comments
 (0)