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