You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ra...@apache.org on 2020/01/12 12:34:21 UTC
[cordova-lib] branch master updated: test: use expectAsync for
rejections (#831)
This is an automated email from the ASF dual-hosted git repository.
raphinesse pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cordova-lib.git
The following commit(s) were added to refs/heads/master by this push:
new f7f9343 test: use expectAsync for rejections (#831)
f7f9343 is described below
commit f7f9343ca9b3c616570b5d2d0a00f2e39e0b1424
Author: Raphael von der GrĂ¼n <ra...@gmail.com>
AuthorDate: Sun Jan 12 13:34:15 2020 +0100
test: use expectAsync for rejections (#831)
---
integration-tests/HooksRunner.spec.js | 8 ++--
integration-tests/plugman_fetch.spec.js | 10 ++---
integration-tests/plugman_uninstall.spec.js | 51 +++++++++-------------
spec/cordova/build.spec.js | 42 +++++++-----------
spec/cordova/compile.spec.js | 41 ++++++++---------
spec/cordova/emulate.spec.js | 38 ++++++++--------
spec/cordova/platform/addHelper.spec.js | 28 ++++++------
.../platform/getPlatformDetailsFromDir.spec.js | 22 +++++-----
spec/cordova/platform/index.spec.js | 29 ++++++------
spec/cordova/platform/remove.spec.js | 8 ++--
spec/cordova/plugin/add.spec.js | 18 +++-----
spec/cordova/plugin/index.spec.js | 9 ++--
spec/cordova/plugin/remove.spec.js | 18 +++-----
spec/cordova/prepare.spec.js | 29 ++++++------
spec/cordova/run.spec.js | 40 ++++++++---------
spec/cordova/serve.spec.js | 41 ++++++++---------
spec/plugman/add_platform.spec.js | 22 +++++-----
spec/plugman/create.spec.js | 12 +++--
spec/plugman/install.spec.js | 51 ++++++++--------------
19 files changed, 213 insertions(+), 304 deletions(-)
diff --git a/integration-tests/HooksRunner.spec.js b/integration-tests/HooksRunner.spec.js
index 6375748..5bce9f3 100644
--- a/integration-tests/HooksRunner.spec.js
+++ b/integration-tests/HooksRunner.spec.js
@@ -164,11 +164,9 @@ describe('HooksRunner', function () {
`;
addHooksToConfig(FAIL_HOOK);
- return hooksRunner.fire('fail').then(function () {
- fail('Expected promise to be rejected');
- }, function (err) {
- expect(err).toEqual(jasmine.any(Error));
- });
+ return expectAsync(
+ hooksRunner.fire('fail')
+ ).toBeRejectedWithError();
});
it('Test 024 : should not error if the hook is unrecognized', function () {
diff --git a/integration-tests/plugman_fetch.spec.js b/integration-tests/plugman_fetch.spec.js
index 77d2551..a29770a 100644
--- a/integration-tests/plugman_fetch.spec.js
+++ b/integration-tests/plugman_fetch.spec.js
@@ -115,13 +115,9 @@ describe('fetch', function () {
});
it('Test 028 : should fail when locally-available plugin is missing pacakge.json', function () {
test_plugin = path.join(plugins_dir, 'org.test.androidonly');
- return fetch(test_plugin, temp)
- .then(function () {
- fail();
- }, function (err) {
- expect(err).toBeDefined();
- expect(err.message).toContain('needs a valid package.json');
- });
+ return expectAsync(
+ fetch(test_plugin, temp)
+ ).toBeRejectedWithError(/needs a valid package\.json/);
});
});
diff --git a/integration-tests/plugman_uninstall.spec.js b/integration-tests/plugman_uninstall.spec.js
index 7b77ef3..5d6c651 100644
--- a/integration-tests/plugman_uninstall.spec.js
+++ b/integration-tests/plugman_uninstall.spec.js
@@ -154,21 +154,17 @@ describe('plugman/uninstall', () => {
describe('failure ', function () {
it('Test 004 : should throw if platform is unrecognized', function () {
- return uninstall.uninstallPlatform('atari', project, 'SomePlugin')
- .then(function (result) {
- fail('Expected promise to be rejected');
- }, function err (errMsg) {
- expect(errMsg.toString()).toContain('Platform "atari" not supported.');
- });
+ return expectAsync(
+ uninstall.uninstallPlatform('atari', project, 'SomePlugin')
+ ).toBeRejectedWithError('Platform "atari" not supported.');
});
it('Test 005 : should throw if plugin is missing', function () {
- return uninstall.uninstallPlatform('android', project, 'SomePluginThatDoesntExist')
- .then(function (result) {
- fail('Expected promise to be rejected');
- }, function err (errMsg) {
- expect(errMsg.toString()).toContain('Plugin "SomePluginThatDoesntExist" not found. Already uninstalled?');
- });
+ return expectAsync(
+ uninstall.uninstallPlatform('android', project, 'SomePluginThatDoesntExist')
+ ).toBeRejectedWithError(
+ 'Plugin "SomePluginThatDoesntExist" not found. Already uninstalled?'
+ );
});
});
});
@@ -192,12 +188,11 @@ describe('plugman/uninstall', () => {
it('Test 007 : should fail if plugin is a required dependency', function () {
setupProject('uninstall.test');
- return uninstall.uninstallPlugin('C', plugins_install_dir)
- .then(function (result) {
- fail('Expected promise to be rejected');
- }, function err (errMsg) {
- expect(errMsg.toString()).toEqual('Plugin "C" is required by (A) and cannot be removed (hint: use -f or --force)');
- });
+ return expectAsync(
+ uninstall.uninstallPlugin('C', plugins_install_dir)
+ ).toBeRejectedWithError(
+ 'Plugin "C" is required by (A) and cannot be removed (hint: use -f or --force)'
+ );
});
it('Test 008 : allow forcefully removing a plugin', function () {
@@ -245,21 +240,17 @@ describe('plugman/uninstall', () => {
describe('failure', function () {
it('Test 011 : should throw if platform is unrecognized', function () {
- return uninstall('atari', project, 'SomePlugin')
- .then(function (result) {
- fail('Expected promise to be rejected');
- }, function err (errMsg) {
- expect(errMsg.toString()).toContain('Platform "atari" not supported.');
- });
+ return expectAsync(
+ uninstall('atari', project, 'SomePlugin')
+ ).toBeRejectedWithError('Platform "atari" not supported.');
});
it('Test 012 : should throw if plugin is missing', function () {
- return uninstall('android', project, 'SomePluginThatDoesntExist')
- .then(function (result) {
- fail('Expected promise to be rejected');
- }, function err (errMsg) {
- expect(errMsg.toString()).toContain('Plugin "SomePluginThatDoesntExist" not found. Already uninstalled?');
- });
+ return expectAsync(
+ uninstall('android', project, 'SomePluginThatDoesntExist')
+ ).toBeRejectedWithError(
+ 'Plugin "SomePluginThatDoesntExist" not found. Already uninstalled?'
+ );
});
});
});
diff --git a/spec/cordova/build.spec.js b/spec/cordova/build.spec.js
index ab397c8..8c49d43 100644
--- a/spec/cordova/build.spec.js
+++ b/spec/cordova/build.spec.js
@@ -39,29 +39,21 @@ describe('build command', function () {
describe('failure', function () {
it('Test 001 : should not run inside a project with no platforms', function () {
util.listPlatforms.and.returnValue([]);
- return cordovaBuild()
- .then(function () {
- fail('Expected promise to be rejected');
- }, function (err) {
- expect(err).toEqual(jasmine.any(Error));
- expect(err.message).toEqual(
- 'No platforms added to this project. Please use `cordova platform add <platform>`.'
- );
- });
+ return expectAsync(
+ cordovaBuild()
+ ).toBeRejectedWithError(
+ 'No platforms added to this project. Please use `cordova platform add <platform>`.'
+ );
});
it('Test 002 : should not run outside of a Cordova-based project', function () {
util.isCordova.and.returnValue(false);
- return cordovaBuild()
- .then(function () {
- fail('Expected promise to be rejected');
- }, function (err) {
- expect(err).toEqual(jasmine.any(Error));
- expect(err.message).toEqual(
- 'Current working directory is not a Cordova-based project.'
- );
- });
+ return expectAsync(
+ cordovaBuild()
+ ).toBeRejectedWithError(
+ 'Current working directory is not a Cordova-based project.'
+ );
});
});
@@ -101,14 +93,12 @@ describe('build command', function () {
describe('with no platforms added', function () {
it('Test 008 : should not fire the hooker', function () {
util.listPlatforms.and.returnValue([]);
- return Promise.resolve().then(cordovaBuild).then(function () {
- fail('Expected promise to be rejected');
- }, function (err) {
- expect(err).toEqual(jasmine.any(Error));
- expect(err.message).toEqual(
- 'No platforms added to this project. Please use `cordova platform add <platform>`.'
- );
- });
+
+ return expectAsync(
+ cordovaBuild()
+ ).toBeRejectedWithError(
+ 'No platforms added to this project. Please use `cordova platform add <platform>`.'
+ );
});
});
});
diff --git a/spec/cordova/compile.spec.js b/spec/cordova/compile.spec.js
index 19bf83b..2bb9d05 100644
--- a/spec/cordova/compile.spec.js
+++ b/spec/cordova/compile.spec.js
@@ -42,22 +42,17 @@ describe('compile command', function () {
describe('failure', function () {
it('Test 001 : should not run inside a Cordova-based project with no added platforms by calling util.listPlatforms', function () {
list_platforms.and.returnValue([]);
- return cordova.compile()
- .then(function () {
- fail('Expected promise to be rejected');
- }, function (err) {
- expect(err).toEqual(jasmine.any(Error));
- expect(err.message).toContain('No platforms added to this project. Please use `cordova platform add <platform>`.');
- });
+ return expectAsync(
+ cordova.compile()
+ ).toBeRejectedWithError(
+ 'No platforms added to this project. Please use `cordova platform add <platform>`.'
+ );
});
it('Test 002 : should not run outside of a Cordova-based project', function () {
is_cordova.and.returnValue(false);
- return cordova.compile()
- .then(function () {
- fail('Expected promise to be rejected');
- }, function (err) {
- expect(err).toEqual(jasmine.any(Error));
- });
+ return expectAsync(
+ cordova.compile()
+ ).toBeRejectedWithError();
});
});
@@ -97,18 +92,16 @@ describe('compile command', function () {
});
describe('with no platforms added', function () {
- it('Test 008 : should not fire the hooker', function () {
+ it('Test 008 : should not fire the hooker', async function () {
list_platforms.and.returnValue([]);
- return Promise.resolve().then(cordova.compile)
- .then(function () {
- fail('Expected promise to be rejected');
- }, function (err) {
- expect(err).toEqual(jasmine.any(Error));
- expect(fire).not.toHaveBeenCalled();
- expect(err.message).toContain(
- 'No platforms added to this project. Please use `cordova platform add <platform>`.'
- );
- });
+
+ await expectAsync(
+ cordova.compile()
+ ).toBeRejectedWithError(
+ 'No platforms added to this project. Please use `cordova platform add <platform>`.'
+ );
+
+ expect(fire).not.toHaveBeenCalled();
});
});
});
diff --git a/spec/cordova/emulate.spec.js b/spec/cordova/emulate.spec.js
index 28d20fb..e7c7cfe 100644
--- a/spec/cordova/emulate.spec.js
+++ b/spec/cordova/emulate.spec.js
@@ -46,22 +46,17 @@ describe('emulate command', function () {
describe('failure', function () {
it('Test 001 : should not run inside a Cordova-based project with no added platforms by calling util.listPlatforms', function () {
util.listPlatforms.and.returnValue([]);
- return cordovaEmulate()
- .then(function () {
- fail('Expected promise to be rejected');
- }, function (err) {
- expect(err).toEqual(jasmine.any(Error));
- expect(err.message).toContain('No platforms added to this project. Please use `cordova platform add <platform>`.');
- });
+ return expectAsync(
+ cordovaEmulate()
+ ).toBeRejectedWithError(
+ 'No platforms added to this project. Please use `cordova platform add <platform>`.'
+ );
});
it('Test 002 : should not run outside of a Cordova-based project', function () {
util.isCordova.and.returnValue(false);
- return cordovaEmulate()
- .then(function () {
- fail('Expected promise to be rejected');
- }, function (err) {
- expect(err).toEqual(jasmine.any(Error));
- });
+ return expectAsync(
+ cordovaEmulate()
+ ).toBeRejectedWithError();
});
});
@@ -144,15 +139,16 @@ describe('emulate command', function () {
});
describe('with no platforms added', function () {
- it('Test 011 : should not fire the hooker', function () {
+ it('Test 011 : should not fire the hooker', async function () {
util.listPlatforms.and.returnValue([]);
- return Promise.resolve().then(cordovaEmulate).then(function () {
- fail('Expected promise to be rejected');
- }, function (err) {
- expect(err).toEqual(jasmine.any(Error));
- expect(err.message).toContain('No platforms added to this project. Please use `cordova platform add <platform>`.');
- expect(HooksRunner.prototype.fire).not.toHaveBeenCalled();
- });
+
+ await expectAsync(
+ cordovaEmulate()
+ ).toBeRejectedWithError(
+ 'No platforms added to this project. Please use `cordova platform add <platform>`.'
+ );
+
+ expect(HooksRunner.prototype.fire).not.toHaveBeenCalled();
});
});
});
diff --git a/spec/cordova/platform/addHelper.spec.js b/spec/cordova/platform/addHelper.spec.js
index 7a16968..06d6577 100644
--- a/spec/cordova/platform/addHelper.spec.js
+++ b/spec/cordova/platform/addHelper.spec.js
@@ -110,19 +110,17 @@ describe('cordova/platform/addHelper', function () {
it('should throw if platform was already added before adding', function () {
fs.existsSync.and.returnValue('/some/path/platforms/ios');
- return platform_addHelper('add', hooks_mock, projectRoot, ['ios']).then(function () {
- fail('addHelper success handler unexpectedly invoked');
- }, function (e) {
- expect(e.message).toContain('already added.');
- });
+ return expectAsync(
+ platform_addHelper('add', hooks_mock, projectRoot, ['ios'])
+ ).toBeRejectedWithError(/already added\./);
});
it('should throw if platform was not added before updating', function () {
- return platform_addHelper('update', hooks_mock, projectRoot, ['atari']).then(function () {
- fail('addHelper success handler unexpectedly invoked');
- }, function (e) {
- expect(e.message).toContain('Platform "atari" is not yet added. See `cordova platform list`.');
- });
+ return expectAsync(
+ platform_addHelper('update', hooks_mock, projectRoot, ['atari'])
+ ).toBeRejectedWithError(
+ 'Platform "atari" is not yet added. See `cordova platform list`.'
+ );
});
});
describe('happy path (success conditions)', function () {
@@ -272,11 +270,11 @@ describe('cordova/platform/addHelper', function () {
describe('errors', function () {
it('should reject the promise should fetch fail', function () {
fetch_mock.and.returnValue(Promise.reject(new Error('fetch has failed, rejecting promise')));
- return platform_addHelper.downloadPlatform(projectRoot, 'android', '67').then(function () {
- fail('success handler unexpectedly invoked');
- }, function (e) {
- expect(e.message).toContain('fetch has failed, rejecting promise');
- });
+ return expectAsync(
+ platform_addHelper.downloadPlatform(projectRoot, 'android', '67')
+ ).toBeRejectedWithError(
+ /fetch has failed, rejecting promise/
+ );
});
});
describe('happy path', function () {
diff --git a/spec/cordova/platform/getPlatformDetailsFromDir.spec.js b/spec/cordova/platform/getPlatformDetailsFromDir.spec.js
index d1850eb..60244c8 100644
--- a/spec/cordova/platform/getPlatformDetailsFromDir.spec.js
+++ b/spec/cordova/platform/getPlatformDetailsFromDir.spec.js
@@ -35,22 +35,20 @@ describe('cordova/platform/getPlatformDetailsFromDir', function () {
});
it('should throw if no config.xml or pkgJson', function () {
- return platform_getPlatformDetails('dir', ['ios'])
- .then(function () {
- fail('Expected promise to be rejected');
- }, function (reason) {
- expect(reason).toMatch(/does not seem to contain a valid package.json or a valid Cordova platform/);
- });
+ return expectAsync(
+ platform_getPlatformDetails('dir', ['ios'])
+ ).toBeRejectedWithError(
+ /does not seem to contain a valid package.json or a valid Cordova platform/
+ );
});
it('should throw if no platform is provided', function () {
cordova_util.requireNoCache.and.returnValue({});
- return platform_getPlatformDetails('dir')
- .then(function () {
- fail('Expected promise to be rejected');
- }, function (reason) {
- expect(reason).toMatch(/does not seem to contain a Cordova platform:/);
- });
+ return expectAsync(
+ platform_getPlatformDetails('dir')
+ ).toBeRejectedWithError(
+ /does not seem to contain a Cordova platform:/
+ );
});
it('should return a promise with platform and version', function () {
diff --git a/spec/cordova/platform/index.spec.js b/spec/cordova/platform/index.spec.js
index a2c664f..ea58a28 100644
--- a/spec/cordova/platform/index.spec.js
+++ b/spec/cordova/platform/index.spec.js
@@ -32,23 +32,20 @@ describe('cordova/platform', function () {
describe('main module function', function () {
describe('error/warning conditions', function () {
// TODO: what about other commands? update? save?
- it('should require at least one platform for add and remove commands', function () {
+ it('should require at least one platform for add and remove commands', async function () {
// targets = empty array
- return platform('add', [])
- .then(function () {
- fail('should not succeed without targets');
- }, function (err) {
- expect(err).toMatch(/You need to qualify.* with one or more platforms/gi);
- })
- .then(function () {
- // targets = null
- return platform('remove', null);
- })
- .then(function () {
- fail('should not succeed without targets');
- }, function (err) {
- expect(err).toMatch(/You need to qualify.* with one or more platforms/gi);
- });
+ await expectAsync(
+ platform('add', [])
+ ).toBeRejectedWithError(
+ /You need to qualify.* with one or more platforms/i
+ );
+
+ // targets = null
+ await expectAsync(
+ platform('remove', null)
+ ).toBeRejectedWithError(
+ /You need to qualify.* with one or more platforms/i
+ );
});
});
describe('handling of targets parameter', function () {
diff --git a/spec/cordova/platform/remove.spec.js b/spec/cordova/platform/remove.spec.js
index 8aca614..3fda0b2 100644
--- a/spec/cordova/platform/remove.spec.js
+++ b/spec/cordova/platform/remove.spec.js
@@ -55,11 +55,9 @@ describe('cordova/platform/remove', function () {
describe('error/warning conditions', function () {
it('should require specifying at least one platform', function () {
- return platform_remove('remove', hooks_mock).then(function () {
- fail('remove success handler unexpectedly invoked');
- }, function (e) {
- expect(e.message).toContain('No platform(s) specified.');
- });
+ return expectAsync(
+ platform_remove('remove', hooks_mock)
+ ).toBeRejectedWithError(/No platform\(s\) specified\./);
});
});
describe('happy path (success conditions)', function () {
diff --git a/spec/cordova/plugin/add.spec.js b/spec/cordova/plugin/add.spec.js
index 84858de..2d2f467 100644
--- a/spec/cordova/plugin/add.spec.js
+++ b/spec/cordova/plugin/add.spec.js
@@ -81,22 +81,16 @@ describe('cordova/plugin/add', function () {
});
describe('error/warning conditions', function () {
it('should error out if at least one plugin is not specified', function () {
- return add(projectRoot, hook_mock, { plugins: [] }).then(function () {
- fail('Expected promise to be rejected');
- }, function (err) {
- expect(err).toEqual(jasmine.any(Error));
- expect(err.message).toContain('No plugin specified');
- });
+ return expectAsync(
+ add(projectRoot, hook_mock, { plugins: [] })
+ ).toBeRejectedWithError(/No plugin specified/);
});
it('should error out if any mandatory plugin variables are not provided', function () {
plugin_info.getPreferences.and.returnValue({ some: undefined });
- return add(projectRoot, hook_mock, { plugins: ['cordova-plugin-device'] }).then(function () {
- fail('Expected promise to be rejected');
- }, function (err) {
- expect(err).toEqual(jasmine.any(Error));
- expect(err.message).toContain('Variable(s) missing (use: --variable');
- });
+ return expectAsync(
+ add(projectRoot, hook_mock, { plugins: ['cordova-plugin-device'] })
+ ).toBeRejectedWithError(/Variable\(s\) missing \(use: --variable/);
});
});
describe('happy path', function () {
diff --git a/spec/cordova/plugin/index.spec.js b/spec/cordova/plugin/index.spec.js
index 8bdbe1f..abe55d3 100644
--- a/spec/cordova/plugin/index.spec.js
+++ b/spec/cordova/plugin/index.spec.js
@@ -32,12 +32,9 @@ describe('cordova/plugin', function () {
describe('error conditions', function () {
it('should require at least one target for add and rm commands', function () {
- return plugin('add', null).then(function () {
- fail('Expected promise to be rejected');
- }, function (err) {
- expect(err).toEqual(jasmine.any(Error));
- expect(err.message).toContain('one or more plugins');
- });
+ return expectAsync(
+ plugin('add', null)
+ ).toBeRejectedWithError(/one or more plugins/);
});
});
diff --git a/spec/cordova/plugin/remove.spec.js b/spec/cordova/plugin/remove.spec.js
index 3c0436d..53db85e 100644
--- a/spec/cordova/plugin/remove.spec.js
+++ b/spec/cordova/plugin/remove.spec.js
@@ -62,22 +62,16 @@ describe('cordova/plugin/remove', function () {
describe('error/warning conditions', function () {
it('should require that a plugin be provided', function () {
- return remove(projectRoot, null).then(function () {
- fail('Expected promise to be rejected');
- }, function (err) {
- expect(err).toEqual(jasmine.any(Error));
- expect(err.message).toContain('No plugin specified');
- });
+ return expectAsync(
+ remove(projectRoot, null)
+ ).toBeRejectedWithError(/No plugin specified/);
});
it('should require that a provided plugin be installed in the current project', function () {
var opts = { plugins: [undefined] };
- return remove(projectRoot, 'plugin', hook_mock, opts).then(function () {
- fail('Expected promise to be rejected');
- }, function (err) {
- expect(err).toEqual(jasmine.any(Error));
- expect(err.message).toContain('is not present in the project');
- });
+ return expectAsync(
+ remove(projectRoot, 'plugin', hook_mock, opts)
+ ).toBeRejectedWithError(/is not present in the project/);
});
});
describe('happy path', function () {
diff --git a/spec/cordova/prepare.spec.js b/spec/cordova/prepare.spec.js
index 7fdb83e..0f83b33 100644
--- a/spec/cordova/prepare.spec.js
+++ b/spec/cordova/prepare.spec.js
@@ -65,30 +65,27 @@ describe('cordova/prepare', function () {
spyOn(prepare, 'preparePlatforms').and.returnValue(Promise.resolve());
});
describe('failure', function () {
- it('should invoke util.preProcessOptions as preflight task checker, which, if fails, should trigger promise rejection and only fire the before_prepare hook', function () {
+ it('should invoke util.preProcessOptions as preflight task checker, which, if fails, should trigger promise rejection and only fire the before_prepare hook', async function () {
util.preProcessOptions.and.callFake(function () {
throw new Error('preProcessOption error');
});
- return prepare({}).then(function () {
- fail('Expected promise to be rejected');
- }, function (err) {
- expect(err).toEqual(jasmine.any(Error));
- expect(err.message).toBe('preProcessOption error');
- expect(HooksRunner.prototype.fire).toHaveBeenCalledWith('before_prepare', jasmine.any(Object));
- });
+
+ await expectAsync(
+ prepare({})
+ ).toBeRejectedWithError('preProcessOption error');
+
+ expect(HooksRunner.prototype.fire).toHaveBeenCalledWith('before_prepare', jasmine.any(Object));
});
- it('should invoke util.cdProjectRoot as a preflight task checker, which, if fails, should trigger a promise rejection and fire no hooks', function () {
+ it('should invoke util.cdProjectRoot as a preflight task checker, which, if fails, should trigger a promise rejection and fire no hooks', async function () {
util.cdProjectRoot.and.callFake(function () {
throw new Error('cdProjectRoot error');
});
- return prepare({}).then(function () {
- fail('Expected promise to be rejected');
- }, function (err) {
- expect(err).toEqual(jasmine.any(Error));
- expect(err.message).toBe('cdProjectRoot error');
- expect(HooksRunner.prototype.fire).not.toHaveBeenCalled();
- });
+ await expectAsync(
+ prepare({})
+ ).toBeRejectedWithError('cdProjectRoot error');
+
+ expect(HooksRunner.prototype.fire).not.toHaveBeenCalled();
});
});
diff --git a/spec/cordova/run.spec.js b/spec/cordova/run.spec.js
index 4bba1e8..b8647ec 100644
--- a/spec/cordova/run.spec.js
+++ b/spec/cordova/run.spec.js
@@ -46,25 +46,19 @@ describe('run command', function () {
describe('failure', function () {
it('Test 001 : should not run inside a Cordova-based project with no added platforms by calling util.listPlatforms', function () {
util.listPlatforms.and.returnValue([]);
- return Promise.resolve().then(cordovaRun)
- .then(function () {
- fail('Expected promise to be rejected');
- }, function (err) {
- expect(err).toEqual(jasmine.any(Error));
- expect(err.message).toEqual('No platforms added to this project. Please use `cordova platform add <platform>`.');
- });
+ return expectAsync(
+ cordovaRun()
+ ).toBeRejectedWithError(
+ 'No platforms added to this project. Please use `cordova platform add <platform>`.'
+ );
});
it('Test 002 : should not run outside of a Cordova-based project', function () {
var msg = 'Dummy message about not being in a cordova dir.';
util.cdProjectRoot.and.throwError(new Error(msg));
util.isCordova.and.returnValue(false);
- return Promise.resolve().then(cordovaRun)
- .then(function () {
- fail('Expected promise to be rejected');
- }, function (err) {
- expect(err).toEqual(jasmine.any(Error));
- expect(err.message).toEqual(msg);
- });
+ return expectAsync(
+ cordovaRun()
+ ).toBeRejectedWithError(msg);
});
});
@@ -142,16 +136,16 @@ describe('run command', function () {
});
describe('with no platforms added', function () {
- it('Test 012 : should not fire the hooker', function () {
+ it('Test 012 : should not fire the hooker', async function () {
util.listPlatforms.and.returnValue([]);
- return Promise.resolve().then(cordovaRun)
- .then(function () {
- fail('Expected promise to be rejected');
- }, function (err) {
- expect(err).toEqual(jasmine.any(Error));
- expect(HooksRunner.prototype.fire).not.toHaveBeenCalled();
- expect(err.message).toEqual('No platforms added to this project. Please use `cordova platform add <platform>`.');
- });
+
+ await expectAsync(
+ cordovaRun()
+ ).toBeRejectedWithError(
+ 'No platforms added to this project. Please use `cordova platform add <platform>`.'
+ );
+
+ expect(HooksRunner.prototype.fire).not.toHaveBeenCalled();
});
});
});
diff --git a/spec/cordova/serve.spec.js b/spec/cordova/serve.spec.js
index 24aca94..07e0207 100644
--- a/spec/cordova/serve.spec.js
+++ b/spec/cordova/serve.spec.js
@@ -77,27 +77,24 @@ describe('cordova/serve', () => {
});
});
- it('should fail if run outside of a Cordova project', () => {
+ it('should fail if run outside of a Cordova project', async () => {
const fakeMessage = 'CAN I HAZ CORDOVA PLZ?';
cordovaUtil.cdProjectRoot.and.throwError(fakeMessage);
- return serve(1234567, {}).then(() => {
- fail('Expected promise to be rejected');
- }, function (err) {
- expect(err).toEqual(jasmine.any(Error));
- expect(err.message).toBe(fakeMessage);
- expect(cordovaUtil.cdProjectRoot).toHaveBeenCalled();
- });
+ await expectAsync(
+ serve(1234567, {})
+ ).toBeRejectedWithError(fakeMessage);
+
+ expect(cordovaUtil.cdProjectRoot).toHaveBeenCalled();
});
it('should fail if serve fails', () => {
- const fakeError = new Error();
+ const fakeError = new Error('FAKE');
serve.__get__('serve').and.returnValue(Promise.reject(fakeError));
- return serve(1234567, {}).then(
- _ => fail('Expected promise to be rejected'),
- err => expect(err).toBe(fakeError)
- );
+ return expectAsync(
+ serve(1234567, {})
+ ).toBeRejectedWith(fakeError);
}, 100);
});
@@ -141,24 +138,22 @@ describe('cordova/serve', () => {
});
it('should fail if prepare fails', () => {
- const fakeError = new Error();
+ const fakeError = new Error('FAKE');
const prepareSpy = serve.__get__('cordovaPrepare');
prepareSpy.and.returnValue(Promise.reject(fakeError));
- return privateServe(1234567, {}).then(
- _ => fail('Expected promise to be rejected'),
- err => expect(err).toBe(fakeError)
- );
+ return expectAsync(
+ privateServe(1234567, {})
+ ).toBeRejectedWith(fakeError);
}, 100);
it('should fail if launching the server fails', () => {
- const fakeError = new Error();
+ const fakeError = new Error('FAKE');
serverSpy.launchServer.and.returnValue(Promise.reject(fakeError));
- return privateServe(1234567, {}).then(
- _ => fail('Expected promise to be rejected'),
- err => expect(err).toBe(fakeError)
- );
+ return expectAsync(
+ privateServe(1234567, {})
+ ).toBeRejectedWith(fakeError);
}, 100);
});
diff --git a/spec/plugman/add_platform.spec.js b/spec/plugman/add_platform.spec.js
index 1d72912..88475df 100644
--- a/spec/plugman/add_platform.spec.js
+++ b/spec/plugman/add_platform.spec.js
@@ -25,12 +25,11 @@ describe('plugman/platform', () => {
spyOn(fs, 'existsSync').and.returnValue(false);
});
it('Test 002 : should error on non existing plugin.xml', function () {
- return platform.add().then(function () {
- fail('Expected promise to be rejected');
- }, function (err) {
- expect(err).toEqual(jasmine.any(Error));
- expect(err.message).toContain('can\'t find a plugin.xml. Are you in the plugin?');
- });
+ return expectAsync(
+ platform.add()
+ ).toBeRejectedWithError(
+ 'can\'t find a plugin.xml. Are you in the plugin?'
+ );
}, 6000);
});
@@ -39,12 +38,11 @@ describe('plugman/platform', () => {
spyOn(fs, 'existsSync').and.returnValue(false);
});
it('Test 003 : should error on non existing plugin.xml', function () {
- return platform.remove().then(function () {
- fail('Expected promise to be rejected');
- }, function (err) {
- expect(err).toEqual(jasmine.any(Error));
- expect(err.message).toContain('can\'t find a plugin.xml. Are you in the plugin?');
- });
+ return expectAsync(
+ platform.remove()
+ ).toBeRejectedWithError(
+ 'can\'t find a plugin.xml. Are you in the plugin?'
+ );
}, 6000);
});
});
diff --git a/spec/plugman/create.spec.js b/spec/plugman/create.spec.js
index 5e18585..a65e217 100644
--- a/spec/plugman/create.spec.js
+++ b/spec/plugman/create.spec.js
@@ -34,12 +34,10 @@ describe('plugman/create', () => {
it('Test 003 : should fail due to an existing plugin.xml', function () {
spyOn(fs, 'existsSync').and.returnValue(true);
- return create()
- .then(function () {
- fail('Expected promise to be rejected');
- }, function (err) {
- expect(err).toEqual(jasmine.any(Error));
- expect(err.message).toContain('plugin.xml already exists. Are you already in a plugin?');
- });
+ return expectAsync(
+ create()
+ ).toBeRejectedWithError(
+ 'plugin.xml already exists. Are you already in a plugin?'
+ );
}, 6000);
});
diff --git a/spec/plugman/install.spec.js b/spec/plugman/install.spec.js
index 16f6b13..817ea8d 100644
--- a/spec/plugman/install.spec.js
+++ b/spec/plugman/install.spec.js
@@ -285,12 +285,11 @@ describe('plugman/install', () => {
}, TIMEOUT);
it('Test 019 : should throw if there is a cyclic dependency', () => {
- return install('android', project, pluginDir('G'))
- .then(() => {
- fail('Expected promise to be rejected');
- }, err => {
- expect(err.toString()).toContain('Cyclic dependency from G to H');
- });
+ return expectAsync(
+ install('android', project, pluginDir('G'))
+ ).toBeRejectedWithError(
+ 'Cyclic dependency from G to H'
+ );
}, TIMEOUT);
it('Test 020 : install subdir relative to top level plugin if no fetch meta', () => {
@@ -333,12 +332,11 @@ describe('plugman/install', () => {
describe('failure', () => {
it('Test 023 : should throw if variables are missing', () => {
spyOn(PlatformJson.prototype, 'isPluginInstalled').and.returnValue(false);
- return install('android', project, pluginDir('com.adobe.vars'))
- .then(() => {
- fail('Expected promise to be rejected');
- }, err => {
- expect(err.toString()).toContain('Variable(s) missing: API_KEY');
- });
+ return expectAsync(
+ install('android', project, pluginDir('com.adobe.vars'))
+ ).toBeRejectedWithError(
+ 'Variable(s) missing: API_KEY'
+ );
}, TIMEOUT);
it('Test 025 :should not fail when trying to install plugin less than minimum version. Skip instead ', () => {
@@ -353,32 +351,21 @@ describe('plugman/install', () => {
it('Test 026 : should throw if the engine scriptSrc escapes out of the plugin dir.', () => {
spyOn(PlatformJson.prototype, 'isPluginInstalled').and.returnValue(false);
- return install('android', project, pluginDir('org.test.invalid.engine.script'))
- .then(() => {
- fail('Expected promise to be rejected');
- }, err => {
- // <engine name="path-escaping-plugin" version=">=1.0.0" scriptSrc="../../../malicious/script" platform="*" />
- expect(err).toBeDefined();
- expect(err.message.indexOf('Security violation:')).toBe(0);
- });
+ return expectAsync(
+ install('android', project, pluginDir('org.test.invalid.engine.script'))
+ ).toBeRejectedWithError(/^Security violation:/);
}, TIMEOUT);
it('Test 027 : should throw if a non-default cordova engine platform attribute is not defined.', () => {
spyOn(PlatformJson.prototype, 'isPluginInstalled').and.returnValue(false);
- return install('android', project, pluginDir('org.test.invalid.engine.no.platform'))
- .then(() => {
- fail('Expected promise to be rejected');
- }, err => {
- expect(err).toEqual(jasmine.any(Error));
- });
+ return expectAsync(
+ install('android', project, pluginDir('org.test.invalid.engine.no.platform'))
+ ).toBeRejectedWithError();
}, TIMEOUT);
it('Test 028 : should throw if a non-default cordova engine scriptSrc attribute is not defined.', () => {
spyOn(PlatformJson.prototype, 'isPluginInstalled').and.returnValue(false);
- return install('android', project, pluginDir('org.test.invalid.engine.no.scriptSrc'))
- .then(() => {
- fail('Expected promise to be rejected');
- }, err => {
- expect(err).toEqual(jasmine.any(Error));
- });
+ return expectAsync(
+ install('android', project, pluginDir('org.test.invalid.engine.no.scriptSrc'))
+ ).toBeRejectedWithError();
}, TIMEOUT);
});
});
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org