react-frame-component
Version:
React component to wrap your application or component in an iFrame for encapsulation purposes
56 lines (50 loc) • 1.49 kB
JSX
import React from 'react';
import ReactTestUtils from 'react-dom/test-utils';
import { expect } from 'chai';
import {
FrameContextProvider,
FrameContextConsumer,
FrameContext
} from '../src/Context';
describe('The DocumentContext Component', () => {
it('will establish context variables', done => {
const document = { x: 1 };
const window = { y: 2 };
const Child = () => (
<FrameContextConsumer>
{({ document: doc, window: win }) => {
expect(doc).to.equal(document);
expect(win).to.equal(window);
done();
return <h1>{`x=${doc.x},y=${win.y}`}</h1>;
}}
</FrameContextConsumer>
);
ReactTestUtils.renderIntoDocument(
<FrameContextProvider value={{ document, window }}>
<Child />
</FrameContextProvider>
);
});
it('exports full context instance to allow accessing via Class.contextType', done => {
const document = { foo: 1 };
const window = { bar: 2 };
class Child extends React.Component {
componentDidMount() {
const { document: doc, window: win } = this.context;
expect(doc).to.deep.equal({ foo: 1 });
expect(win).to.deep.equal({ bar: 2 });
done();
}
render() {
return null;
}
}
Child.contextType = FrameContext;
ReactTestUtils.renderIntoDocument(
<FrameContextProvider value={{ document, window }}>
<Child />
</FrameContextProvider>
);
});
});