@alexjeffburke/unexpected-react
Version:
Plugin for unexpected, to allow for assertions on the React.js virtual DOM, and the shallow and test renderers
38 lines (33 loc) • 1.4 kB
JavaScript
import RenderHook from 'react-render-hook';
import ReactElementAdapter from 'unexpected-htmllike-jsx-adapter';
import RawAdapter from 'unexpected-htmllike-raw-adapter';
import React from 'react';
import TestUtils from 'react-dom/test-utils';
import AssertionGenerator from './AssertionGenerator';
import { triggerEvent } from './shallowAssertions';
function getOptions(expect) {
return {
ActualAdapter: ReactElementAdapter,
QueryAdapter: ReactElementAdapter,
ExpectedAdapter: RawAdapter,
actualTypeName: 'ReactShallowRenderer',
queryTypeName: 'ReactElement',
expectedTypeName: 'ReactRawObjectElement',
getRenderOutput: renderer => renderer.getRenderOutput(),
actualRenderOutputType: 'ReactElement',
getDiffInputFromRenderOutput: renderOutput => renderOutput,
rewrapResult: (renderer, target) => target,
triggerEvent: triggerEvent.bind(expect)
};
}
function installInto(expect) {
const assertionGenerator = new AssertionGenerator(getOptions(expect));
assertionGenerator.installInto(expect);
return assertionGenerator;
}
function installAsAlternative(expect, mainAssertionGenerator) {
const generatorOptions = getOptions(expect);
const assertionGenerator = new AssertionGenerator({ mainAssertionGenerator, ...generatorOptions });
assertionGenerator.installAlternativeExpected(expect);
}
export { installInto, installAsAlternative};