UNPKG

vcc-ui

Version:

VCC UI is a collection of React UI Components that can be used for developing front-end applications at Volvo Car Corporation.

85 lines 2.4 kB
import React from "react"; import { NavItem } from "."; import { getThemeArrowStyles } from "./helpers"; import createSnapshot from "../../test/create-snapshot"; describe("<NavItem /> snapshot tests", function () { it("renders correctly with default props", function () { var snapshot = createSnapshot(React.createElement(NavItem, null, "Children")); expect(snapshot).toMatchSnapshot(); }); it("renders correctly with dropdown=true", function () { var snapshot = createSnapshot(React.createElement(NavItem, { dropdown: true }, "Children")); expect(snapshot).toMatchSnapshot(); }); it("renders correctly with isActive=true", function () { var snapshot = createSnapshot(React.createElement(NavItem, { isActive: true }, "Children")); expect(snapshot).toMatchSnapshot(); }); it("renders correctly with dropdown=true and isActive=true", function () { var snapshot = createSnapshot(React.createElement(NavItem, { dropdown: true, isActive: true }, "Children")); expect(snapshot).toMatchSnapshot(); }); it("renders correctly with theme", function () { var theme = { navItem: { backgroundColor: "green", padding: "20px", color: "black" }, navItemArrows: { color: "white", size: "16" } }; var snapshot = createSnapshot(React.createElement(NavItem, { dropdown: true, isActive: true }, "Children"), theme); expect(snapshot).toMatchSnapshot(); }); }); describe("helpers", function () { it("should return default styles when navItemArrow is not defined", function () { var defaults = { color: "red", size: "15" }; var theme = { navItem: { border: "1px solid black" } }; var arrowStyles = getThemeArrowStyles({ theme: theme, defaults: defaults }); expect(arrowStyles).toEqual(defaults); }); it("should return theme styles when navItemArrow is defined", function () { var defaults = { color: "red", size: "15" }; var theme = { navItem: { border: "1px solid black" }, navItemArrow: { color: "daisy", size: "40" } }; var arrowStyles = getThemeArrowStyles({ theme: theme, defaults: defaults }); expect(arrowStyles).toEqual(theme.navItemArrow); }); });