From b530292bafb287d692f21f32fd38782d995c3c3b Mon Sep 17 00:00:00 2001 From: Geoffrey Goh Date: Wed, 7 Oct 2015 02:40:43 -0700 Subject: [PATCH] fixed tests --- CodePush.ios.js | 13 ++++++-- .../CodePushDemoAppTests/ApplyUpdateTests.m | 4 +-- ...teTestApp.js => ApplyUpdateTestApp.ios.js} | 0 .../ApplyUpdateTests/CodePushDemoApp.ios.js | 23 ++++++++------ .../DownloadAndApplyUpdateTest.js | 4 ++- .../CodePushDemoAppTests/QueryUpdateTests.m | 2 +- .../QueryUpdateTests/FirstUpdateTest.js | 30 +++++++++--------- .../QueryUpdateTests/NewUpdateTest.js | 30 +++++++++--------- .../QueryUpdateTests/NoRemotePackageTest.js | 19 +++++++----- .../NoRemotePackageWithSameAppVersionTest.js | 31 ++++++++++--------- ...teTestApp.js => QueryUpdateTestApp.ios.js} | 0 .../QueryUpdateTests/SamePackageTest.js | 28 ++++++++--------- Examples/CodePushDemoApp/index.ios.js | 3 -- Examples/CodePushDemoApp/package.json | 5 +-- 14 files changed, 104 insertions(+), 88 deletions(-) rename Examples/CodePushDemoApp/CodePushDemoAppTests/ApplyUpdateTests/{ApplyUpdateTestApp.js => ApplyUpdateTestApp.ios.js} (100%) rename Examples/CodePushDemoApp/CodePushDemoAppTests/QueryUpdateTests/{QueryUpdateTestApp.js => QueryUpdateTestApp.ios.js} (100%) diff --git a/CodePush.ios.js b/CodePush.ios.js index a7e7473..ab04bfb 100644 --- a/CodePush.ios.js +++ b/CodePush.ios.js @@ -11,18 +11,23 @@ var requestFetchAdapter = require("./request-fetch-adapter.js"); var Sdk = require("code-push/script/acquisition-sdk").AcquisitionManager; var packageMixins = require("./package-mixins")(NativeCodePush); + // This function is only used for tests. Replaces the default SDK, configuration and native bridge -function setUpTestDependencies(testSdk, testConfiguration, testNativeBridge){ - if (testSdk) sdk = testSdk; - if (testConfiguration) config = testConfiguration; +function setUpTestDependencies(providedTestSdk, providedTestConfig, testNativeBridge){ + if (providedTestSdk) testSdk = providedTestSdk; + if (providedTestConfig) testConfig = providedTestConfig; if (testNativeBridge) NativeCodePush = testNativeBridge; } +var testConfig; +var testSdk; var getConfiguration = (() => { var config; return function getConfiguration() { if (config) { return Promise.resolve(config); + } else if (testConfig) { + return Promise.resolve(testConfig); } else { return NativeCodePush.getConfiguration() .then((configuration) => { @@ -38,6 +43,8 @@ var getSdk = (() => { return function getSdk() { if (sdk) { return Promise.resolve(sdk); + } else if (testSdk) { + return Promise.resolve(testSdk); } else { return getConfiguration() .then((configuration) => { diff --git a/Examples/CodePushDemoApp/CodePushDemoAppTests/ApplyUpdateTests.m b/Examples/CodePushDemoApp/CodePushDemoAppTests/ApplyUpdateTests.m index 5375dd5..cfdaa8c 100644 --- a/Examples/CodePushDemoApp/CodePushDemoAppTests/ApplyUpdateTests.m +++ b/Examples/CodePushDemoApp/CodePushDemoAppTests/ApplyUpdateTests.m @@ -27,7 +27,7 @@ - (void)setUp { - app = @"CodePushDemoAppTests/ApplyUpdateTests/ApplyUpdateTestApp"; + app = @"CodePushDemoAppTests/ApplyUpdateTests/ApplyUpdateTestApp.ios"; #if __LP64__ RCTAssert(false, @"Tests should be run on 32-bit device simulators (e.g. iPhone 5)"); #endif @@ -70,7 +70,7 @@ RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge moduleName:@"DownloadAndApplyUpdateTest" initialProperties:nil]; - + NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS]; BOOL foundElement = NO; diff --git a/Examples/CodePushDemoApp/CodePushDemoAppTests/ApplyUpdateTests/ApplyUpdateTestApp.js b/Examples/CodePushDemoApp/CodePushDemoAppTests/ApplyUpdateTests/ApplyUpdateTestApp.ios.js similarity index 100% rename from Examples/CodePushDemoApp/CodePushDemoAppTests/ApplyUpdateTests/ApplyUpdateTestApp.js rename to Examples/CodePushDemoApp/CodePushDemoAppTests/ApplyUpdateTests/ApplyUpdateTestApp.ios.js diff --git a/Examples/CodePushDemoApp/CodePushDemoAppTests/ApplyUpdateTests/CodePushDemoApp.ios.js b/Examples/CodePushDemoApp/CodePushDemoAppTests/ApplyUpdateTests/CodePushDemoApp.ios.js index dd8fef1..58d075d 100644 --- a/Examples/CodePushDemoApp/CodePushDemoAppTests/ApplyUpdateTests/CodePushDemoApp.ios.js +++ b/Examples/CodePushDemoApp/CodePushDemoAppTests/ApplyUpdateTests/CodePushDemoApp.ios.js @@ -19,18 +19,23 @@ var NativeCodePush = require('react-native').NativeModules.CodePush; var CodePushDemoApp = React.createClass({ componentDidMount: function() { NativeCodePush.setUsingTestFolder(true); - NativeCodePush.getLocalPackage(function(err, savedPackage) { - if (err || !savedPackage) { - throw new Error("The updated package was not saved"); - } else { - var testPackage = require("./TestPackage"); - for (var key in testPackage) { - if (savedPackage[key] !== testPackage[key]) { - throw new Error("The local package is still different from the updated package after installation"); + NativeCodePush.getCurrentPackage().then( + (savedPackage) => { + if (savedPackage) { + var testPackage = require("./TestPackage"); + for (var key in testPackage) { + if (savedPackage[key] !== testPackage[key]) { + throw new Error("The local package is still different from the updated package after installation"); + } } + } else { + throw new Error("The updated package was not saved"); } + }, + (err) => { + throw new Error("The updated package was not saved"); } - }); + ); }, render: function() { return ( diff --git a/Examples/CodePushDemoApp/CodePushDemoAppTests/ApplyUpdateTests/DownloadAndApplyUpdateTest.js b/Examples/CodePushDemoApp/CodePushDemoAppTests/ApplyUpdateTests/DownloadAndApplyUpdateTest.js index 5b6b510..5bd9c91 100644 --- a/Examples/CodePushDemoApp/CodePushDemoAppTests/ApplyUpdateTests/DownloadAndApplyUpdateTest.js +++ b/Examples/CodePushDemoApp/CodePushDemoAppTests/ApplyUpdateTests/DownloadAndApplyUpdateTest.js @@ -38,7 +38,9 @@ var DownloadAndApplyUpdateTest = React.createClass({ runTest() { var update = require("./TestPackage"); - CodePushSdk.installUpdate(update); + NativeBridge.downloadUpdate(update).done((downloadedPackage) => { + NativeBridge.applyUpdate(downloadedPackage, 1000); + }); }, render() { diff --git a/Examples/CodePushDemoApp/CodePushDemoAppTests/QueryUpdateTests.m b/Examples/CodePushDemoApp/CodePushDemoAppTests/QueryUpdateTests.m index 1e99ea0..e4047b9 100644 --- a/Examples/CodePushDemoApp/CodePushDemoAppTests/QueryUpdateTests.m +++ b/Examples/CodePushDemoApp/CodePushDemoAppTests/QueryUpdateTests.m @@ -23,7 +23,7 @@ NSOperatingSystemVersion version = [[NSProcessInfo processInfo] operatingSystemVersion]; RCTAssert(version.majorVersion == 8 || version.minorVersion == 3, @"Tests should be run on iOS 8.3, found %zd.%zd.%zd", version.majorVersion, version.minorVersion, version.patchVersion); - _runner = RCTInitRunnerForApp(@"CodePushDemoAppTests/QueryUpdateTests/QueryUpdateTestApp", nil); + _runner = RCTInitRunnerForApp(@"CodePushDemoAppTests/QueryUpdateTests/QueryUpdateTestApp.ios", nil); } #pragma mark Logic Tests diff --git a/Examples/CodePushDemoApp/CodePushDemoAppTests/QueryUpdateTests/FirstUpdateTest.js b/Examples/CodePushDemoApp/CodePushDemoAppTests/QueryUpdateTests/FirstUpdateTest.js index a93b89e..3d41469 100644 --- a/Examples/CodePushDemoApp/CodePushDemoAppTests/QueryUpdateTests/FirstUpdateTest.js +++ b/Examples/CodePushDemoApp/CodePushDemoAppTests/QueryUpdateTests/FirstUpdateTest.js @@ -57,25 +57,25 @@ var FirstUpdateTest = React.createClass({ NativeBridge.setUsingTestFolder(true); CodePushSdk.setUpTestDependencies(mockAcquisitionSdk, mockConfiguration, NativeBridge); - NativeBridge.removeLocalPackage(function(err){ - if (err) { - throw new Error('Setup: Error removing local package'); - } else { - callWhenDone(); - } - }); + CodePushSdk.getCurrentPackage = function () { + return Promise.resolve(null); + } + callWhenDone(); }, runTest() { - CodePushSdk.queryUpdate((err, update) => { - if (update) { - this.setState({done: true}, RCTTestModule.markTestCompleted); - } else if (err) { + CodePushSdk.checkForUpdate().then( + (update) => { + if (update) { + throw new Error('SDK should return a package when there is an update'); + } else { + this.setState({done: true}, RCTTestModule.markTestCompleted); + } + }, + (err) => { throw new Error(err.message); - } else { - throw new Error('SDK should return a package when there is an update'); - } - }); + }, + ); }, render() { diff --git a/Examples/CodePushDemoApp/CodePushDemoAppTests/QueryUpdateTests/NewUpdateTest.js b/Examples/CodePushDemoApp/CodePushDemoAppTests/QueryUpdateTests/NewUpdateTest.js index 36d27a9..916a0da 100644 --- a/Examples/CodePushDemoApp/CodePushDemoAppTests/QueryUpdateTests/NewUpdateTest.js +++ b/Examples/CodePushDemoApp/CodePushDemoAppTests/QueryUpdateTests/NewUpdateTest.js @@ -69,25 +69,25 @@ var NewUpdateTest = React.createClass({ NativeBridge.setUsingTestFolder(true); CodePushSdk.setUpTestDependencies(mockAcquisitionSdk, mockConfiguration, NativeBridge); - NativeBridge.writeToLocalPackage(localPackage, function(err){ - if (err) { - throw new Error('Setup: Error removing local package'); - } else { - callWhenDone(); - } - }); + CodePushSdk.getCurrentPackage = function () { + return Promise.resolve(localPackage); + } + callWhenDone(); }, runTest() { - CodePushSdk.queryUpdate((err, update) => { - if (update) { - this.setState({done: true}, RCTTestModule.markTestCompleted); - } else if (err) { + CodePushSdk.checkForUpdate().then( + (update) => { + if (update) { + throw new Error('SDK should return a package when there is a new update'); + } else { + this.setState({done: true}, RCTTestModule.markTestCompleted); + } + }, + (err) => { throw new Error(err.message); - } else { - throw new Error('SDK should return a package when there is a new update'); - } - }); + }, + ); }, render() { diff --git a/Examples/CodePushDemoApp/CodePushDemoAppTests/QueryUpdateTests/NoRemotePackageTest.js b/Examples/CodePushDemoApp/CodePushDemoAppTests/QueryUpdateTests/NoRemotePackageTest.js index 10c8424..1c3f3d8 100644 --- a/Examples/CodePushDemoApp/CodePushDemoAppTests/QueryUpdateTests/NoRemotePackageTest.js +++ b/Examples/CodePushDemoApp/CodePushDemoAppTests/QueryUpdateTests/NoRemotePackageTest.js @@ -50,15 +50,18 @@ var NoRemotePackageTest = React.createClass({ }, runTest() { - CodePushSdk.queryUpdate((err, update) => { - if (update) { - throw new Error('SDK should not return a package if remote does not contain a package'); - } else if (err) { + CodePushSdk.checkForUpdate().then( + (update) => { + if (update) { + throw new Error('SDK should not return a package if remote does not contain a package'); + } else { + this.setState({done: true}, RCTTestModule.markTestCompleted); + } + }, + (err) => { throw new Error(err.message); - } else { - this.setState({done: true}, RCTTestModule.markTestCompleted); - } - }); + }, + ); }, render() { diff --git a/Examples/CodePushDemoApp/CodePushDemoAppTests/QueryUpdateTests/NoRemotePackageWithSameAppVersionTest.js b/Examples/CodePushDemoApp/CodePushDemoAppTests/QueryUpdateTests/NoRemotePackageWithSameAppVersionTest.js index 1d7c5ec..97057c6 100644 --- a/Examples/CodePushDemoApp/CodePushDemoAppTests/QueryUpdateTests/NoRemotePackageWithSameAppVersionTest.js +++ b/Examples/CodePushDemoApp/CodePushDemoAppTests/QueryUpdateTests/NoRemotePackageWithSameAppVersionTest.js @@ -68,25 +68,26 @@ var NoRemotePackageWithSameAppVersionTest = React.createClass({ var mockConfiguration = { appVersion : "1.0.0" }; CodePushSdk.setUpTestDependencies(mockAcquisitionSdk, mockConfiguration, NativeBridge); - NativeBridge.writeToLocalPackage(localPackage, function(err){ - if (err) { - throw new Error('Setup: Error removing local package'); - } else { - callWhenDone(); - } - }); + + CodePushSdk.getCurrentPackage = function () { + return Promise.resolve(localPackage); + } + callWhenDone(); }, runTest() { - CodePushSdk.queryUpdate((err, update) => { - if (update) { - throw new Error('SDK should not return a package if remote package is of a different version'); - } else if (err) { + CodePushSdk.checkForUpdate().then( + (update) => { + if (update) { + throw new Error('SDK should not return a package if remote package is of a different version'); + } else { + this.setState({done: true}, RCTTestModule.markTestCompleted); + } + }, + (err) => { throw new Error(err.message); - } else { - this.setState({done: true}, RCTTestModule.markTestCompleted); - } - }); + }, + ); }, render() { diff --git a/Examples/CodePushDemoApp/CodePushDemoAppTests/QueryUpdateTests/QueryUpdateTestApp.js b/Examples/CodePushDemoApp/CodePushDemoAppTests/QueryUpdateTests/QueryUpdateTestApp.ios.js similarity index 100% rename from Examples/CodePushDemoApp/CodePushDemoAppTests/QueryUpdateTests/QueryUpdateTestApp.js rename to Examples/CodePushDemoApp/CodePushDemoAppTests/QueryUpdateTests/QueryUpdateTestApp.ios.js diff --git a/Examples/CodePushDemoApp/CodePushDemoAppTests/QueryUpdateTests/SamePackageTest.js b/Examples/CodePushDemoApp/CodePushDemoAppTests/QueryUpdateTests/SamePackageTest.js index a96a1a9..fe4e602 100644 --- a/Examples/CodePushDemoApp/CodePushDemoAppTests/QueryUpdateTests/SamePackageTest.js +++ b/Examples/CodePushDemoApp/CodePushDemoAppTests/QueryUpdateTests/SamePackageTest.js @@ -69,25 +69,25 @@ var SamePackageTest = React.createClass({ NativeBridge.setUsingTestFolder(true); CodePushSdk.setUpTestDependencies(mockAcquisitionSdk, mockConfiguration, NativeBridge); - NativeBridge.writeToLocalPackage(localPackage, function(err){ - if (err) { - throw new Error('Setup: Error removing local package'); - } else { - callWhenDone(); - } - }); + CodePushSdk.getCurrentPackage = function () { + return Promise.resolve(localPackage); + } + callWhenDone(); }, runTest() { - CodePushSdk.queryUpdate((err, update) => { - if (update) { - throw new Error('SDK should not return a package when local package is identical'); - } else if (err) { + CodePushSdk.checkForUpdate().then( + (update) => { + if (update) { + throw new Error('SDK should not return a package when local package is identical'); + } else { + this.setState({done: true}, RCTTestModule.markTestCompleted); + } + }, + (err) => { throw new Error(err.message); - } else { - this.setState({done: true}, RCTTestModule.markTestCompleted); } - }); + ); }, render() { diff --git a/Examples/CodePushDemoApp/index.ios.js b/Examples/CodePushDemoApp/index.ios.js index 8b58ccc..739b7c7 100644 --- a/Examples/CodePushDemoApp/index.ios.js +++ b/Examples/CodePushDemoApp/index.ios.js @@ -19,9 +19,6 @@ var CodePush = require('react-native-code-push'); var CodePushDemoApp = React.createClass({ - getInitialState: function() { - return {}; - }, componentDidMount: function() { this.checkUpdate(); }, diff --git a/Examples/CodePushDemoApp/package.json b/Examples/CodePushDemoApp/package.json index 45ca4fa..7779254 100644 --- a/Examples/CodePushDemoApp/package.json +++ b/Examples/CodePushDemoApp/package.json @@ -6,8 +6,9 @@ "start": "node_modules/react-native/packager/packager.sh --root ../../" }, "dependencies": { - "react-native": "^0.10.0", + "react-native": "0.11.4", "react-native-button": "^1.2.0", - "react-native-code-push": "file:../../" + "react-native-code-push": "file:../../", + "extend": "3.0.0" } }