GithubHelp home page GithubHelp logo

isabella232 / react-stub-context Goto Github PK

View Code? Open in Web Editor NEW

This project forked from findhotel/react-stub-context

0.0 0.0 0.0 105 KB

Stub context for a component, to be used for testing purposes.

License: Other

HTML 0.81% JavaScript 99.19%

react-stub-context's Introduction

react-stub-context Build Status

Stub context for a component, to be used for testing purposes.

Installation

npm install react-stub-context

Usage

var React = require('react');
var Router = require('react-router');
var Link = Router.Link;

var TestHandler = React.createClass({
  getInitialState: function() {
    return {
      text: 'foo' 
    }
  },

  changeText: function() {
    this.setState({ text: 'bar' });
  },

  render: function() {
    return React.createElement(Link, {
      to: 'home',
      onClick: this.changeText
    }, this.state.text);
  }
});

module.exports = TestHandler
jest.dontMock('../');

function noop() {}

describe('React Router Context Test', function() {
  var React, Router, TestUtils, stubContext, TestHandler;

  beforeEach(function() {
    React = require.requireActual('react/addons');
    TestUtils = React.addons.TestUtils;
    stubContext = require.requireActual('react-stub-context');
    TestHandler = require('..');
    Router = function() {}
  });

  it('has context correctly', function() {
    Router.makeHref = noop;
    Router.isActive = noop;

    TestHandler = stubContext(TestHandler, { router: Router });

    var render = TestUtils.renderIntoDocument(React.createElement(TestHandler, {}));
    var link = TestUtils.findRenderedDOMComponentWithTag(render, 'a');

    expect(link).toBeDefined();
    expect(link.getDOMNode().innerHTML).toEqual('foo');

    TestUtils.Simulate.click(link);

    expect(link.getDOMNode().innerHTML).toEqual('bar');
  });
});

react-stub-context's People

Contributors

jopdeklein avatar karlbright avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.