grommet
Version:
focus on the essential experience
107 lines • 3.77 kB
JavaScript
import React from 'react';
import renderer from 'react-test-renderer';
import 'jest-styled-components';
import { findAllByType } from '../../../utils';
import { Grommet } from '../../Grommet';
import { Anchor } from '..';
test('Anchor renders', function () {
var component = renderer.create(React.createElement(Grommet, null, React.createElement(Anchor, null)));
var tree = component.toJSON();
expect(tree).toMatchSnapshot();
});
test('Anchor renders with children', function () {
var component = renderer.create(React.createElement(Grommet, null, React.createElement(Anchor, {
href: "#"
}, "children")));
var tree = component.toJSON();
expect(tree).toMatchSnapshot();
});
test('Anchor warns about invalid label render', function () {
var warnSpy = jest.spyOn(console, 'warn');
var component = renderer.create(React.createElement(Grommet, null, React.createElement(Anchor, {
href: "#",
label: "Test"
}, "invalid")));
var tree = component.toJSON();
expect(tree).toMatchSnapshot();
expect(warnSpy).toHaveBeenCalledWith('Anchor should not have children if icon or label is provided');
warnSpy.mockReset();
warnSpy.mockRestore();
});
test('Anchor warns about invalid icon render', function () {
var warnSpy = jest.spyOn(console, 'warn');
var component = renderer.create(React.createElement(Grommet, null, React.createElement(Anchor, {
href: "#",
icon: React.createElement("svg", null)
}, "invalid")));
var tree = component.toJSON();
expect(tree).toMatchSnapshot();
expect(warnSpy).toHaveBeenCalledWith('Anchor should not have children if icon or label is provided');
warnSpy.mockReset();
warnSpy.mockRestore();
});
test('Anchor primary renders', function () {
var component = renderer.create(React.createElement(Grommet, null, React.createElement(Anchor, {
href: "#",
primary: true,
label: "Test"
})));
var tree = component.toJSON();
expect(tree).toMatchSnapshot();
});
test('Anchor focus renders', function () {
var component = renderer.create(React.createElement(Grommet, null, React.createElement(Anchor, {
href: "#",
focus: true,
label: "Test"
})));
var tree = component.toJSON();
expect(tree).toMatchSnapshot();
});
test('Anchor disabled renders', function () {
var component = renderer.create(React.createElement(Grommet, null, React.createElement(Anchor, {
disabled: true
})));
var tree = component.toJSON();
expect(tree).toMatchSnapshot();
});
test('Anchor icon label renders', function () {
var component = renderer.create(React.createElement(Grommet, null, React.createElement(Anchor, {
icon: React.createElement("svg", null),
label: "Test",
onClick: function onClick() {}
})));
var tree = component.toJSON();
expect(tree).toMatchSnapshot();
});
test('Anchor reverse icon label renders', function () {
var component = renderer.create(React.createElement(Grommet, null, React.createElement(Anchor, {
reverse: true,
icon: React.createElement("svg", null),
label: "Test",
onClick: function onClick() {}
})));
var tree = component.toJSON();
expect(tree).toMatchSnapshot();
});
test('Anchor is clickable', function () {
var onClick = jest.fn();
var component = renderer.create(React.createElement(Grommet, null, React.createElement(Anchor, {
href: "#",
label: "Test",
onClick: onClick
})));
var tree = component.toJSON();
var anchor = findAllByType(tree, 'a');
anchor[0].props.onClick();
expect(onClick).toBeCalled();
});
test('renders tag', function () {
var component = renderer.create(React.createElement(Grommet, null, React.createElement(Anchor, {
href: "#",
label: "Test",
as: "span"
})));
var tree = component.toJSON();
expect(tree).toMatchSnapshot();
});