Skip to content

Commit 065f559

Browse files
committed
Test rbac
1 parent e28639e commit 065f559

File tree

2 files changed

+31
-3
lines changed

2 files changed

+31
-3
lines changed

site/src/components/DropdownArrows/DropdownArrows.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ interface ArrowProps {
2121

2222
export const OpenDropdown: FC<ArrowProps> = ({ margin = true }) => {
2323
const styles = useStyles({ margin })
24-
return <KeyboardArrowDown className={styles.arrowIcon} />
24+
return <KeyboardArrowDown aria-label="open-dropdown" className={styles.arrowIcon} />
2525
}
2626

2727
export const CloseDropdown: FC<ArrowProps> = ({ margin = true }) => {
2828
const styles = useStyles({ margin })
29-
return <KeyboardArrowUp className={`${styles.arrowIcon} ${styles.arrowIconUp}`} />
29+
return <KeyboardArrowUp aria-label="close-dropdown" className={`${styles.arrowIcon} ${styles.arrowIconUp}`} />
3030
}

site/src/pages/TemplatePage/TemplatePage.test.tsx

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
1-
import { screen } from "@testing-library/react"
1+
import { fireEvent, screen } from "@testing-library/react"
2+
import { rest } from "msw"
3+
import { server } from "testHelpers/server"
24
import * as CreateDayString from "util/createDayString"
35
import {
6+
MockMemberPermissions,
47
MockTemplate,
58
MockTemplateVersion,
9+
MockUser,
610
MockWorkspaceResource,
711
renderWithAuth,
812
} from "../../testHelpers/renderHelpers"
@@ -23,4 +27,28 @@ describe("TemplatePage", () => {
2327
screen.getByText(MockWorkspaceResource.name)
2428
screen.queryAllByText(`${MockTemplateVersion.name}`).length
2529
})
30+
it("allows an admin to delete a template", async () => {
31+
renderWithAuth(<TemplatePage />, {
32+
route: `/templates/${MockTemplate.id}`,
33+
path: "/templates/:template",
34+
})
35+
const dropdownButton = await screen.findByLabelText("open-dropdown")
36+
fireEvent.click(dropdownButton)
37+
const deleteButton = await screen.findByText("Delete")
38+
expect(deleteButton).toBeDefined()
39+
})
40+
it("does not allow a member to delete a template", () => {
41+
// get member-level permissions
42+
server.use(
43+
rest.post(`/api/v2/users/${MockUser.id}/authorization`, async (req, res, ctx) => {
44+
return res(ctx.status(200), ctx.json(MockMemberPermissions))
45+
})
46+
)
47+
renderWithAuth(<TemplatePage />, {
48+
route: `/templates/${MockTemplate.id}`,
49+
path: "/templates/:template",
50+
})
51+
const dropdownButton = screen.queryByLabelText("open-dropdown")
52+
expect(dropdownButton).toBe(null)
53+
})
2654
})

0 commit comments

Comments
 (0)