From 72a337cba28d580690c2e21fc2a6fda7adaa703e Mon Sep 17 00:00:00 2001 From: goya Date: Thu, 10 May 2018 13:45:49 -0700 Subject: [PATCH] fix for phonegap-build/pgb-cli#2 --- lib/commands/helpers/wait.js | 2 +- package.json | 2 +- src/commands/helpers/wait.js | 2 +- test/commands/helpers/wait.js | 19 +++++++++++++++---- 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/lib/commands/helpers/wait.js b/lib/commands/helpers/wait.js index 31c3496..51263fc 100644 --- a/lib/commands/helpers/wait.js +++ b/lib/commands/helpers/wait.js @@ -1,4 +1,4 @@ -const format=require('./formatters');module.exports=a=>new Promise((b,c)=>{let d,e,f=a.id,g=Date.now(),h=()=>{clearInterval(d),clearInterval(e),{}!==a.error&&pgb.opts.exitcode?c(new Error):a.package?b(a):b(pgb.api.getApp(f))},i=a=>{a=Math.round(a/1e3);let b=Math.floor(a/60),c=a-60*b;return 10>c&&(c='0'+c),` ${b}:${c}`},j=b=>{if(!pgb.opts.noprogress){b||process.stderr.write('\x1B[7A');let c=i(Date.now()-g);a.completed&&' 0:00'===c&&(c=''),process.stderr.write(`${'-'.repeat(25)} +const format=require('./formatters');module.exports=a=>new Promise((b,c)=>{let d,e,f=a.id,g=Date.now(),h=()=>{clearInterval(d),clearInterval(e),0{a=Math.round(a/1e3);let b=Math.floor(a/60),c=a-60*b;return 10>c&&(c='0'+c),` ${b}:${c}`},j=b=>{if(!pgb.opts.noprogress){b||process.stderr.write('\x1B[7A');let c=i(Date.now()-g);a.completed&&' 0:00'===c&&(c=''),process.stderr.write(`${'-'.repeat(25)} ${pgb.colours.header(' App Id')}: ${pgb.colours.bold(f)} ${'-'.repeat(25)} ${pgb.colours.header('Android')}: ${format.status(a.status.android)} diff --git a/package.json b/package.json index 3421119..8f03055 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pgb-cli", - "version": "1.0.1", + "version": "1.0.2", "description": "nodeJS CLI to PhoneGap Build", "keywords": [ "PhoneGap", diff --git a/src/commands/helpers/wait.js b/src/commands/helpers/wait.js index b6dbd73..d55ae60 100644 --- a/src/commands/helpers/wait.js +++ b/src/commands/helpers/wait.js @@ -10,7 +10,7 @@ module.exports = (app) => { clearInterval(pollInt) clearInterval(printInt) - if (app.error !== {} && pgb.opts.exitcode) { + if (Object.keys(app.error).length > 0 && pgb.opts.exitcode) { reject(new Error()) } else if (app.package) { resolve(app) diff --git a/test/commands/helpers/wait.js b/test/commands/helpers/wait.js index cdd02b6..b94f51b 100644 --- a/test/commands/helpers/wait.js +++ b/test/commands/helpers/wait.js @@ -20,9 +20,9 @@ describe('progress', () => { }) test('should resolve with app if already completed', () => { - return wait({id: 12, package: 'com.example', status: {}, completed: true}) + return wait({id: 12, package: 'com.example', status: {}, error: {}, completed: true}) .then((app) => { - expect(app).toEqual({id: 12, package: 'com.example', status: {}, completed: true}) + expect(app).toEqual({id: 12, package: 'com.example', status: {}, error: {}, completed: true}) expect(pgb.api.getApp).not.toBeCalled() expect(pgb.api.getStatus).not.toBeCalled() }) @@ -30,9 +30,9 @@ describe('progress', () => { test('should resolve with app if exit', () => { pgb.opts.exit = true - return wait({id: 12, package: 'com.example', status: {}, completed: true}) + return wait({id: 12, package: 'com.example', status: {}, error: {}, completed: true}) .then((app) => { - expect(app).toEqual({id: 12, package: 'com.example', status: {}, completed: true}) + expect(app).toEqual({id: 12, package: 'com.example', status: {}, error: {}, completed: true}) expect(pgb.api.getApp).not.toBeCalled() expect(pgb.api.getStatus).not.toBeCalled() }) @@ -50,6 +50,17 @@ describe('progress', () => { }) }) + test('should not reject if exitcode and a successful build', (done) => { + pgb.opts.exitcode = true + return wait({id: 12, package: 'com.example', status: {}, error: { }, completed: true}) + .then((app) => { + expect(app).toEqual({id: 12, package: 'com.example', status: {}, error: { }, completed: true}) + expect(pgb.api.getApp).not.toBeCalled() + expect(pgb.api.getStatus).not.toBeCalled() + expect(stdout.flush().stderr).toHaveLength(1) + }) + }) + test('should not reject if not exitcode and a failed build', () => { pgb.opts.exitcode = false return wait({id: 12, package: 'com.example', status: {}, error: { android: 'bad' }, completed: true})