[WIP] Added a proof of concept for unit testing of a React component. Uses flow type annotations as well
This commit is contained in:
parent
a9a3c34358
commit
f806c4c420
5 changed files with 1242 additions and 32 deletions
2
.babelrc
2
.babelrc
|
|
@ -1,4 +1,4 @@
|
||||||
{
|
{
|
||||||
"presets": ["env"],
|
"presets": ["env", "flow"],
|
||||||
"plugins": ["transform-react-jsx"]
|
"plugins": ["transform-react-jsx"]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
9
.flowconfig
Normal file
9
.flowconfig
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
[ignore]
|
||||||
|
|
||||||
|
[include]
|
||||||
|
|
||||||
|
[libs]
|
||||||
|
|
||||||
|
[options]
|
||||||
|
|
||||||
|
[lints]
|
||||||
22
src/components/test-component.js
Normal file
22
src/components/test-component.js
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
import React, { Component } from 'react';
|
||||||
|
|
||||||
|
function TestComponent(props) {
|
||||||
|
return (
|
||||||
|
<p>Hello {props.name}</p>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default class TestApp extends Component {
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<div className="testing">
|
||||||
|
This is just a test
|
||||||
|
<TestComponent name="Sean"/>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
20
tests/concept.test.js
Normal file
20
tests/concept.test.js
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
// @flow
|
||||||
|
import React from 'react'
|
||||||
|
import { shallow, mount, ShallowWrapper } from 'enzyme';
|
||||||
|
|
||||||
|
import TestApp, { TestComponent } from "../lib/components/test-component";
|
||||||
|
|
||||||
|
|
||||||
|
var test = require('tape'); // assign the tape library to the variable "test"
|
||||||
|
|
||||||
|
test('should return -1 when the value is not present in Array', (t) => {
|
||||||
|
let testArray: Array<number> = [1, 2, 3];
|
||||||
|
t.equal(-1, testArray.indexOf(4)); // 4 is not present in this array so passes
|
||||||
|
t.end();
|
||||||
|
});
|
||||||
|
|
||||||
|
test("should have 'Sean' in the TestComponent sub-component", (t) => {
|
||||||
|
const app: ShallowWrapper = shallow(<TestApp />);
|
||||||
|
t.equal(app.find("TestComponent").prop("name"), "Sean");
|
||||||
|
t.end();
|
||||||
|
});
|
||||||
Loading…
Add table
Add a link
Reference in a new issue