added tests and typings for mobservable and mobservable-react packages

This commit is contained in:
Michel Weststrate
2015-09-22 09:20:01 +02:00
parent 09e37435ff
commit 7e75883306
6 changed files with 322 additions and 0 deletions
@@ -0,0 +1,58 @@
/// <reference path="./mobservable-react.d.ts"/>
/// <reference path="../react/react-global.d.ts" />
import {reactiveComponent} from 'mobservable-react';
{
let c1 = reactiveComponent(React.createClass({
getDefaultProps() {
return {
test: "hi"
};
},
render: function() {
return React.createElement("div");
}
}));
let c1Factory = React.createFactory(c1);
React.render(c1Factory({
test: "hello"
}), null);
}
@reactiveComponent
class TestComponent extends React.Component<{ test: string },{}> {
render() {
return React.createElement("div");
}
}
{
let c2Factory = React.createFactory(TestComponent);
React.render(c2Factory({
test: "hello"
}) , null);
}
{
var c3 = reactiveComponent((props: { test: string }) => React.createElement("div"));
var c3Factory = React.createFactory(c3); //without JSX
React.render(c3Factory({
test: "hello"
}), null);
}
class TestComponent2 extends React.Component<{ test: string },{}> {
render() {
return React.createElement("div");
}
}
{
let c4Factory = React.createFactory(reactiveComponent(TestComponent2));
React.render(c4Factory({
test: "hello"
}) , null);
}
@@ -0,0 +1 @@
--noImplicitAny --module commonjs --target es5 --experimentalDecorators
+16
View File
@@ -0,0 +1,16 @@
// Type definitions for mobservable v0.1.8
// Project: https://github.com/mweststrate/mobservable-react
// Definitions by: Michel Weststrate <https://github.com/mweststrate/>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
/// <reference path="../react/react-global.d.ts" />
declare module "mobservable-react" {
/**
* Turns a React component or stateless render function into a reactive component.
*/
export function reactiveComponent<P>(clazz: React.ClassicComponentClass<P>): React.ClassicComponentClass<P>;
export function reactiveComponent<P>(clazz: React.ComponentClass<P>): React.ComponentClass<P>;
export function reactiveComponent<P>(clazz: React.ComponentClass<P>): void; // for decorator
export function reactiveComponent<P>(renderFunction: (props: P) => React.ReactElement<any>): React.ClassicComponentClass<P>;
}