github.com/quickfeed/quickfeed@v0.0.0-20240507093252-ed8ca812a09c/public/src/__tests__/Navbar.test.tsx (about) 1 import NavBar from "../components/NavBar" 2 import React from "react" 3 import { User } from "../../proto/qf/types_pb" 4 import { createOvermindMock } from "overmind" 5 import { config } from "../overmind" 6 import { createMemoryHistory } from "history" 7 import { Router } from "react-router-dom" 8 import { Provider } from "overmind-react" 9 import { render, screen } from "@testing-library/react" 10 11 12 describe("Visibility when logged in", () => { 13 14 const history = createMemoryHistory() 15 const mockedOvermind = createOvermindMock(config, (state) => { 16 state.self = new User({ 17 ID: BigInt(1), 18 Name: "Test User", 19 IsAdmin: true, 20 }) 21 }) 22 23 beforeEach(() => { 24 render( 25 <Provider value={mockedOvermind}> 26 <Router history={history}> 27 <NavBar /> 28 </Router> 29 </Provider> 30 ) 31 }) 32 33 it("Sign in is not visible when logged in", () => { 34 const signIn = "Sign in with" 35 const link = screen.getAllByRole("link") 36 link.forEach(element => { 37 expect(element.textContent).not.toEqual(signIn) 38 }) 39 }) 40 41 it("When user is logged in, hamburger menu should appear", () => { 42 const hamburger = "☰" 43 const element = screen.getByText(hamburger) 44 expect(element.tagName).toEqual("SPAN") 45 }) 46 })