Skip to content

Commit 2b5c080

Browse files
committed
Merge pull request #12 from power-assert-js/react
feat(jsx): support JSX
2 parents 1ed1f65 + d70bbd8 commit 2b5c080

File tree

6 files changed

+33
-6
lines changed

6 files changed

+33
-6
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
test/**/*.js

index.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,16 @@ function espowerTypeScript(options) {
1313
var compilerOptions = convertCompilerOptions(options.compilerOptions, options.basepath);
1414
var tss = new TypeScriptSimple(compilerOptions, false);
1515

16-
require.extensions['.ts'] = function(localModule, filepath) {
16+
function loadTypeScript(localModule, filepath) {
1717
var result = tss.compile(fs.readFileSync(filepath, 'utf-8'));
1818
if (minimatch(filepath, pattern)) {
1919
result = espowerSource(result, filepath, options);
2020
}
2121
localModule._compile(result, filepath);
2222
};
23+
24+
require.extensions['.ts'] = loadTypeScript;
25+
require.extensions['.tsx'] = loadTypeScript;
2326
}
2427

2528
function convertCompilerOptions(compilerOptions, basepath) {

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@
2323
"devDependencies": {
2424
"expect.js": "^0.3.1",
2525
"mocha": "^2.4.5",
26-
"power-assert": "^1.2.0"
26+
"power-assert": "^1.2.0",
27+
"react": "^0.14.7"
2728
},
2829
"dependencies": {
2930
"espower-source": "^1.1.0",

test/lib/mycomponent.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import React = require('react');
2+
3+
export default function foo(): any {
4+
return (<input />);
5+
}

test/to_be_instrumented_test.ts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
'use strict';
22

3-
let assert = require('power-assert')
4-
let expect = require('expect.js')
3+
import assert = require('power-assert')
4+
import expect = require('expect.js')
5+
import MyComponent from './lib/mycomponent.tsx';
56

67
describe('power-assert message', function() {
78

@@ -49,4 +50,15 @@ describe('power-assert message', function() {
4950
assert.equal(1, minusOne);
5051
}, expected);
5152
});
53+
54+
it('jsx:react', function() {
55+
let expected =
56+
` assert.equal(1, mycomponent_tsx_1.default())
57+
| |
58+
| Object{"$$typeof":Symbol(react.element),type:"input",key:null,ref:null,props:#Object#,_owner:null,_store:#Object#}
59+
Object{default:#function#} `;
60+
this.expectPowerAssertMessage(() => {
61+
assert.equal(1, MyComponent());
62+
}, expected);
63+
});
5264
});

tsconfig.json

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
{
22
"compilerOptions": {
3+
"module": "commonjs",
34
"target": "ES5",
4-
"noImplicitAny": true
5-
}
5+
"noImplicitAny": true,
6+
"jsx": "react"
7+
},
8+
"exclude": [
9+
"node_modules"
10+
]
611
}

0 commit comments

Comments
 (0)