Skip to content

Commit b4c41d3

Browse files
authored
chore: add users link to nav bar (#1797)
* chore: add users link to nav bar resolves #1746 * fix test names
1 parent 781f3d0 commit b4c41d3

File tree

2 files changed

+32
-3
lines changed

2 files changed

+32
-3
lines changed

site/src/components/NavbarView/NavbarView.test.tsx

+19-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { screen } from "@testing-library/react"
22
import React from "react"
33
import { MockUser } from "../../testHelpers/entities"
44
import { render } from "../../testHelpers/renderHelpers"
5-
import { NavbarView } from "./NavbarView"
5+
import { Language as navLanguage, NavbarView } from "./NavbarView"
66

77
describe("NavbarView", () => {
88
const noop = () => {
@@ -16,6 +16,24 @@ describe("NavbarView", () => {
1616
await screen.findAllByText("Coder", { exact: false })
1717
})
1818

19+
it("workspaces nav link has the correct href", async () => {
20+
render(<NavbarView user={MockUser} onSignOut={noop} displayAdminDropdown />)
21+
const workspacesLink = await screen.findByText(navLanguage.workspaces)
22+
expect((workspacesLink as HTMLAnchorElement).href).toContain("/workspaces")
23+
})
24+
25+
it("templates nav link has the correct href", async () => {
26+
render(<NavbarView user={MockUser} onSignOut={noop} displayAdminDropdown />)
27+
const templatesLink = await screen.findByText(navLanguage.templates)
28+
expect((templatesLink as HTMLAnchorElement).href).toContain("/templates")
29+
})
30+
31+
it("users nav link has the correct href", async () => {
32+
render(<NavbarView user={MockUser} onSignOut={noop} displayAdminDropdown />)
33+
const userLink = await screen.findByText(navLanguage.users)
34+
expect((userLink as HTMLAnchorElement).href).toContain("/users")
35+
})
36+
1937
it("renders profile picture for user", async () => {
2038
// Given
2139
const mockUser = {

site/src/components/NavbarView/NavbarView.tsx

+13-2
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@ export interface NavbarViewProps {
1515
displayAdminDropdown: boolean
1616
}
1717

18+
export const Language = {
19+
workspaces: "Workspaces",
20+
templates: "Templates",
21+
users: "Users",
22+
}
23+
1824
export const NavbarView: React.FC<NavbarViewProps> = ({ user, onSignOut, displayAdminDropdown }) => {
1925
const styles = useStyles()
2026
return (
@@ -27,12 +33,17 @@ export const NavbarView: React.FC<NavbarViewProps> = ({ user, onSignOut, display
2733
</ListItem>
2834
<ListItem button className={styles.item}>
2935
<NavLink className={styles.link} to="/workspaces">
30-
Workspaces
36+
{Language.workspaces}
3137
</NavLink>
3238
</ListItem>
3339
<ListItem button className={styles.item}>
3440
<NavLink className={styles.link} to="/templates">
35-
Templates
41+
{Language.templates}
42+
</NavLink>
43+
</ListItem>
44+
<ListItem button className={styles.item}>
45+
<NavLink className={styles.link} to="/users">
46+
{Language.users}
3647
</NavLink>
3748
</ListItem>
3849
</List>

0 commit comments

Comments
 (0)