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  })