@activelylearn/material-ui
Version:
Material-UI's workspace package
89 lines (76 loc) • 2.84 kB
JavaScript
import React from 'react';
import { assert } from 'chai';
import { createShallow, getClasses } from '../test-utils';
import Grid from './Grid';
describe('<Grid />', () => {
let shallow;
let classes;
before(() => {
const shallowInner = createShallow({ dive: true });
// Render deeper to bypass the GridWrapper.
shallow = node => {
return shallowInner(node)
.find('Grid')
.shallow({ context: shallowInner.context });
};
classes = getClasses(<Grid />);
});
it('should render', () => {
const wrapper = shallow(<Grid className="woofGrid" />);
assert.strictEqual(wrapper.name(), 'div');
assert.strictEqual(wrapper.hasClass('woofGrid'), true, 'should have the user class');
});
describe('prop: container', () => {
it('should apply the container class', () => {
const wrapper = shallow(<Grid container />);
assert.strictEqual(wrapper.hasClass(classes.container), true);
});
});
describe('prop: item', () => {
it('should apply the item class', () => {
const wrapper = shallow(<Grid item />);
assert.strictEqual(wrapper.hasClass(classes.item), true);
});
});
describe('prop: component', () => {
it('should change the component', () => {
const wrapper = shallow(<Grid component="span" />);
assert.strictEqual(wrapper.name(), 'span');
});
});
describe('prop: xs', () => {
it('should apply the flex-grow class', () => {
const wrapper = shallow(<Grid item xs />);
assert.strictEqual(wrapper.hasClass(classes['grid-xs']), true);
});
it('should apply the flex size class', () => {
const wrapper = shallow(<Grid item xs={3} />);
assert.strictEqual(wrapper.hasClass(classes['grid-xs-3']), true);
});
});
describe('prop: spacing', () => {
it('should have a spacing', () => {
const wrapper = shallow(<Grid container spacing={8} />);
assert.strictEqual(wrapper.hasClass(classes['spacing-xs-8']), true);
});
});
describe('prop: alignItems', () => {
it('should apply the align-item class', () => {
const wrapper = shallow(<Grid alignItems="center" container />);
assert.strictEqual(wrapper.hasClass(classes['align-items-xs-center']), true);
});
});
describe('prop: alignContent', () => {
it('should apply the align-content class', () => {
const wrapper = shallow(<Grid alignContent="center" container />);
assert.strictEqual(wrapper.hasClass(classes['align-content-xs-center']), true);
});
});
describe('prop: other', () => {
it('should spread the other properties to the root element', () => {
const handleClick = () => {};
const wrapper = shallow(<Grid component="span" onClick={handleClick} />);
assert.strictEqual(wrapper.props().onClick, handleClick);
});
});
});