mirror of
https://github.com/zhigang1992/react-native-code-push.git
synced 2026-06-11 08:04:23 +08:00
add tests
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
"use strict";
|
||||
|
||||
var React = require("react-native");
|
||||
var { DeviceEventEmitter } = require("react-native");
|
||||
var NativeCodePush = React.NativeModules.CodePush;
|
||||
|
||||
// RCTTestModule is not implemented yet for RN Android.
|
||||
var RCTTestModule = React.NativeModules.TestModule || {};
|
||||
|
||||
var {
|
||||
Text,
|
||||
View,
|
||||
} = React;
|
||||
|
||||
function createTestCaseComponent(displayName, description, setUp, runTest, passAfterRun = true) {
|
||||
var TestCaseComponent = React.createClass({
|
||||
propTypes: {
|
||||
shouldThrow: React.PropTypes.bool,
|
||||
waitOneFrame: React.PropTypes.bool,
|
||||
},
|
||||
getInitialState() {
|
||||
return {
|
||||
done: false,
|
||||
};
|
||||
},
|
||||
componentDidMount() {
|
||||
setUp()
|
||||
.then(runTest)
|
||||
.then(() => {
|
||||
if (passAfterRun) {
|
||||
this.setState({done: true}, RCTTestModule.markTestCompleted);
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
console.error(err);
|
||||
throw err;
|
||||
});
|
||||
},
|
||||
render() {
|
||||
return (
|
||||
<View style={{backgroundColor: "white", padding: 40}}>
|
||||
<Text>
|
||||
{this.state.done ? "Done" : "Testing..."}
|
||||
</Text>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
TestCaseComponent.displayName = displayName;
|
||||
TestCaseComponent.description = description;
|
||||
|
||||
return TestCaseComponent;
|
||||
}
|
||||
|
||||
module.exports = createTestCaseComponent;
|
||||
@@ -0,0 +1,19 @@
|
||||
var assert = require("assert");
|
||||
|
||||
function createMockAcquisitionSdk(serverPackage, localPackage, expectedDeploymentKey) {
|
||||
var AcquisitionManager = function (httpRequester, configuration) {
|
||||
expectedDeploymentKey && assert.equal(expectedDeploymentKey, configuration.deploymentKey, "checkForUpdate did not initialize Acquisition SDK with the expected deployment key");
|
||||
}
|
||||
AcquisitionManager.prototype.queryUpdateWithCurrentPackage = function (queryPackage, callback) {
|
||||
if (localPackage) {
|
||||
localPackage.appVersion = queryPackage.appVersion;
|
||||
assert.deepEqual(queryPackage, localPackage, "checkForUpdate did not attach current package info to the acquisition request");
|
||||
}
|
||||
callback(/*err:*/ null, serverPackage);
|
||||
};
|
||||
return AcquisitionManager;
|
||||
}
|
||||
|
||||
module.exports = createMockAcquisitionSdk;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user