/* eslint-disable max-lines-per-function */
import { render, screen } from "tests"
import { ComponentProps } from "."
import SocialLinks from "./SocialLinks"
describe("SocialLinks", () => {
let props: ComponentProps
beforeEach(() => {
props = {
facebook: "mightychroma",
instagram: "mightychroma",
reddit: "mightychroma",
twitterX: "mightychroma",
website: "https://mightychroma.me",
youtube: "mightychroma"
}
})
it("renders social links", () => {
render()
expect(
screen.getByRole("list", { name: "Social Links" })
).toBeInTheDocument()
})
it("renders instagram", () => {
render()
expect(
screen.getByRole("listitem", { name: "Instagram" })
).toBeInTheDocument()
expect(screen.getByTitle("Instagram")).toBeInTheDocument()
expect(screen.getByRole("link", { name: "Instagram" })).toBeInTheDocument()
expect(screen.getByRole("link", { name: "Instagram" })).toHaveAttribute(
"href",
"https://instagram.com/mightychroma"
)
expect(screen.getByRole("link", { name: "Instagram" })).toHaveAttribute(
"target",
"__blank"
)
expect(screen.getByRole("link", { name: "Instagram" })).toHaveTextContent(
"mightychroma"
)
})
it("renders facebook", () => {
render()
expect(
screen.getByRole("listitem", { name: "Facebook" })
).toBeInTheDocument()
expect(screen.getByTitle("Facebook")).toBeInTheDocument()
expect(screen.getByRole("link", { name: "Facebook" })).toBeInTheDocument()
expect(screen.getByRole("link", { name: "Facebook" })).toHaveAttribute(
"href",
"https://facebook.com/mightychroma"
)
expect(screen.getByRole("link", { name: "Facebook" })).toHaveAttribute(
"target",
"__blank"
)
expect(screen.getByRole("link", { name: "Facebook" })).toHaveTextContent(
"mightychroma"
)
})
it("renders twitter", () => {
render()
expect(
screen.getByRole("listitem", { name: "Twitter X" })
).toBeInTheDocument()
expect(screen.getByTitle("Twitter X")).toBeInTheDocument()
expect(screen.getByRole("link", { name: "Twitter X" })).toBeInTheDocument()
expect(screen.getByRole("link", { name: "Twitter X" })).toHaveAttribute(
"href",
"https://twitter.com/mightychroma"
)
expect(screen.getByRole("link", { name: "Twitter X" })).toHaveAttribute(
"target",
"__blank"
)
expect(screen.getByRole("link", { name: "Twitter X" })).toHaveTextContent(
"mightychroma"
)
})
it("renders youtube", () => {
render()
expect(
screen.getByRole("listitem", { name: "YouTube" })
).toBeInTheDocument()
expect(screen.getByTitle("YouTube")).toBeInTheDocument()
expect(screen.getByRole("link", { name: "YouTube" })).toBeInTheDocument()
expect(screen.getByRole("link", { name: "YouTube" })).toHaveAttribute(
"href",
"https://youtube.com/mightychroma"
)
expect(screen.getByRole("link", { name: "YouTube" })).toHaveAttribute(
"target",
"__blank"
)
expect(screen.getByRole("link", { name: "YouTube" })).toHaveTextContent(
"mightychroma"
)
})
it("renders reddit", () => {
render()
expect(screen.getByRole("listitem", { name: "Reddit" })).toBeInTheDocument()
expect(screen.getByTitle("Reddit")).toBeInTheDocument()
expect(screen.getByRole("link", { name: "Reddit" })).toBeInTheDocument()
expect(screen.getByRole("link", { name: "Reddit" })).toHaveAttribute(
"href",
"https://reddit.com/user/mightychroma"
)
expect(screen.getByRole("link", { name: "Reddit" })).toHaveAttribute(
"target",
"__blank"
)
expect(screen.getByRole("link", { name: "Reddit" })).toHaveTextContent(
"mightychroma"
)
})
it("renders website", () => {
render()
expect(
screen.getByRole("listitem", { name: "Website" })
).toBeInTheDocument()
expect(screen.getByTitle("Website")).toBeInTheDocument()
expect(screen.getByRole("link", { name: "Website" })).toBeInTheDocument()
expect(screen.getByRole("link", { name: "Website" })).toHaveAttribute(
"href",
"https://mightychroma.me"
)
expect(screen.getByRole("link", { name: "Website" })).toHaveTextContent(
"mightychroma.me"
)
})
})