Skip to content

Commit f1c3ed0

Browse files
committed
Expand Navbar test to render user icon
1 parent 5c11f7c commit f1c3ed0

File tree

4 files changed

+31
-10
lines changed

4 files changed

+31
-10
lines changed

site/components/Navbar/index.test.tsx

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,32 @@
11
import React from "react"
22
import { screen } from "@testing-library/react"
33

4-
import { render } from "../../test_helpers"
4+
import { render, MockUser } from "../../test_helpers"
55
import { Navbar } from "./index"
66

77
describe("Navbar", () => {
8+
const noop = () => { return; }
89
it("renders content", async () => {
910
// When
10-
render(<Navbar />)
11+
render(<Navbar onSignOut={noop} />)
1112

1213
// Then
1314
await screen.findAllByText("Coder", { exact: false })
1415
})
16+
17+
it("renders profile picture for user", async () => {
18+
// Given
19+
const mockUser = {
20+
...MockUser,
21+
username: "bryan"
22+
}
23+
24+
// When
25+
render(<Navbar user={mockUser} onSignOut={noop} />)
26+
27+
// Then
28+
// There should be a 'B' avatar!
29+
const element = await screen.findByText("B")
30+
expect(element).toBeDefined()
31+
})
1532
})

site/contexts/UserContext.test.tsx

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { SWRConfig } from "swr"
55
import { render, screen, waitFor } from "@testing-library/react"
66

77
import { User, UserProvider, useUser } from "./UserContext"
8+
import { MockUser } from "../test_helpers"
89

910
namespace Helpers {
1011
// Helper component that renders out the state of the `useUser` hook.
@@ -45,18 +46,11 @@ namespace Helpers {
4546
</SWRConfig>
4647
)
4748
}
48-
49-
export const mockUser: User = {
50-
id: "test-user-id",
51-
username: "TestUser",
52-
email: "test@coder.com",
53-
created_at: "",
54-
}
5549
}
5650

5751
describe("UserContext", () => {
5852
const failingRequest = () => Promise.reject("Failed to load user")
59-
const successfulRequest = () => Promise.resolve(Helpers.mockUser)
53+
const successfulRequest = () => Promise.resolve(MockUser)
6054

6155
// Reset the router to '/' before every test
6256
beforeEach(() => {

site/test_helpers/index.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,5 @@ export const WrapperComponent: React.FC = ({ children }) => {
1111
export const render = (component: React.ReactElement): RenderResult => {
1212
return wrappedRender(<WrapperComponent>{component}</WrapperComponent>)
1313
}
14+
15+
export * from "./user"

site/test_helpers/user.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { User } from "../contexts/UserContext"
2+
3+
export const MockUser: User = {
4+
id: "test-user-id",
5+
username: "TestUser",
6+
email: "test@coder.com",
7+
created_at: "",
8+
}

0 commit comments

Comments
 (0)