redux-ab-test
Version:
A/B testing React components with Redux and debug tools. Isomorphic with a simple, universal interface. Well documented and lightweight. Tested in popular browsers and Node.js. Includes helpers for React, Redux, and Segment.io
136 lines (111 loc) • 4.11 kB
JavaScript
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _immutable = require('immutable');
var _immutable2 = _interopRequireDefault(_immutable);
var _redux = require('redux');
var _reactRedux = require('react-redux');
var _reactTestRenderer = require('react-test-renderer');
var _reactTestRenderer2 = _interopRequireDefault(_reactTestRenderer);
var _sinon = require('sinon');
var _module = require('../../module');
var _module2 = _interopRequireDefault(_module);
var _loadedComponent = require('./loaded-component');
var _loadedComponent2 = _interopRequireDefault(_loadedComponent);
var _variation = require('./variation');
var _variation2 = _interopRequireDefault(_variation);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
// eslint-disable-line no-unused-vars
describe.only('src/components/experiments2/loaded-component.js', function () {
var component = void 0;
var tree = void 0;
describe('plain text', function () {
beforeEach(function () {
component = _reactTestRenderer2['default'].create(_react2['default'].createElement(
_reactRedux.Provider,
{ store: (0, _redux.createStore)(_module2['default'], { reduxAbTest: _module.initialState }) },
_react2['default'].createElement(
_loadedComponent2['default'],
{
experimentName: 'Test experiment',
variationName: 'Test variation',
experiment: null,
variation: null,
play: (0, _sinon.spy)(),
activate: (0, _sinon.spy)(),
deactivate: (0, _sinon.spy)()
},
_react2['default'].createElement(
_variation2['default'],
{ name: 'Test variation' },
'Testing some text'
),
_react2['default'].createElement(
_variation2['default'],
{ name: 'Test other variation' },
'Testing some differient text'
)
)
));
tree = component.toJSON();
});
it('exists', function () {
expect(component).not.toBeUndefined;
});
it('has the correct text', function () {
expect(tree).toMatchSnapshot();
expect(tree.children).toEqual(['Testing some text']);
});
it('has the correct tagName', function () {
expect(tree).toMatchSnapshot();
expect(tree.type).toEqual('span');
});
});
describe.skip('component children', function () {
beforeEach(function () {
component = _reactTestRenderer2['default'].create(_react2['default'].createElement(
_reactRedux.Provider,
{ store: (0, _redux.createStore)(_module2['default'], { reduxAbTest: _module.initialState }) },
_react2['default'].createElement(
_loadedComponent2['default'],
{
experimentName: 'Test experiment',
variationName: 'Test variation',
experiment: _immutable2['default'].Map({ name: 'Test experiment' }),
variation: _immutable2['default'].Map({ name: 'Test variation' })
},
_react2['default'].createElement(
_variation2['default'],
{ name: 'Test variation' },
_react2['default'].createElement(
'div',
null,
'Testing some text'
)
),
_react2['default'].createElement(
_variation2['default'],
{ name: 'Test other variation' },
_react2['default'].createElement(
'div',
null,
'Testing some differient text'
)
)
)
));
tree = component.toJSON();
});
it('exists', function () {
expect(component).not.toBeUndefined;
});
it('has the correct text', function () {
expect(tree).toMatchSnapshot();
expect(tree.children).toEqual(['Testing some text']);
});
it('has the correct tagName', function () {
expect(tree).toMatchSnapshot();
expect(tree.type).toEqual('div');
});
});
});
;