From 7f9957a8c9661e64f29204ae85e95692ef0d1a2f Mon Sep 17 00:00:00 2001 From: "Zhuohuan LI (CARPE DIEM)" Date: Mon, 31 Oct 2016 17:33:31 +0800 Subject: [PATCH] code clean & log enhance --- src/puppet-web/browser-driver.ts | 21 +++++++++++++++------ src/puppet-web/puppet-web.ts | 13 ++++++++----- test/puppet-web/browser.spec.ts | 3 +-- 3 files changed, 24 insertions(+), 13 deletions(-) diff --git a/src/puppet-web/browser-driver.ts b/src/puppet-web/browser-driver.ts index 1f376946..b9d9ae8a 100644 --- a/src/puppet-web/browser-driver.ts +++ b/src/puppet-web/browser-driver.ts @@ -110,12 +110,14 @@ export class BrowserDriver { /** * XXX when will Builder().build() throw exception??? */ - let ttl = 3 + let retry = 0 let err = new Error('unknown') let driver: WebDriver|null = null - while (!driver && ttl-- > 0) { - log.verbose('PuppetWebBrowserDriver', 'getChromeDriver() with ttl: %d', ttl) + do { + if (retry > 0) { + log.warn('PuppetWebBrowserDriver', 'getChromeDriver() with retry: %d', retry) + } try { driver = new Builder() @@ -127,19 +129,24 @@ export class BrowserDriver { const valid = await this.valid(driver) if (!valid) { + log.warn('PuppetWebBrowserDriver', 'getChromeDriver() got invalid driver') driver = null } } catch (e) { - log.warn('PuppetWebBrowserDriver', 'getChromeDriver() exception: %s, retry ttl: %d', e.message, ttl) + log.warn('PuppetWebBrowserDriver', 'getChromeDriver() exception: %s, retry: %d', e.message, retry) driver = null err = e } - } + + } while (!driver && retry++ < 3) + if (!driver) { - log.error('PuppetWebBrowserDriver', 'getChromeDriver() exception: %s, retry ttl: %d', err.stack, ttl) + log.error('PuppetWebBrowserDriver', 'getChromeDriver() exception: %s, retry: %d', err.stack, retry) throw err + } else { + log.silly('PuppetWebBrowserDriver', 'getChromeDriver() success') } return driver @@ -227,6 +234,8 @@ export class BrowserDriver { const session = await driver.getSession() if (!session) { log.warn('PuppetWebBrowserDriver', 'valid() found an invalid driver') + } else { + log.silly('PuppetWebBrowserDriver', 'valid() driver ok') } return !!session diff --git a/src/puppet-web/puppet-web.ts b/src/puppet-web/puppet-web.ts index b60c5c7b..cd4e6f16 100644 --- a/src/puppet-web/puppet-web.ts +++ b/src/puppet-web/puppet-web.ts @@ -61,6 +61,8 @@ export class PuppetWeb extends Puppet { setting.head = Config.head } this.on('watchdog', Watchdog.onFeed.bind(this)) + + this.createBrowser() } public toString() { return `Class PuppetWeb({browser:${this.browser},port:${this.port}})` } @@ -92,7 +94,6 @@ export class PuppetWeb extends Puppet { this.emit('watchdog', food) log.verbose('PuppetWeb', 'init() done') - // this.currentState('live') this.state.current('live') return @@ -161,16 +162,19 @@ export class PuppetWeb extends Puppet { this.state.current('dead') } - public async initBrowser(): Promise { - log.verbose('PuppetWeb', 'initBrowser()') + public createBrowser() { + log.verbose('PuppetWeb', 'createBrowser()') this.browser = new Browser({ head: this.setting.head , sessionFile: this.setting.profile }) + } + + public async initBrowser(): Promise { + log.verbose('PuppetWeb', 'initBrowser()') this.browser.on('dead', Event.onBrowserDead.bind(this)) - // if (this.targetState() !== 'live') { if (this.state.target() !== 'live') { const e = new Error('found state.target()) != live, no init anymore') log.warn('PuppetWeb', 'initBrowser() %s', e.message) @@ -193,7 +197,6 @@ export class PuppetWeb extends Puppet { , this.port ) - // if (this.targetState() !== 'live') { if (this.state.target() !== 'live') { const errMsg = 'initBridge() found targetState != live, no init anymore' log.warn('PuppetWeb', errMsg) diff --git a/test/puppet-web/browser.spec.ts b/test/puppet-web/browser.spec.ts index 2e9bfad0..124571b1 100644 --- a/test/puppet-web/browser.spec.ts +++ b/test/puppet-web/browser.spec.ts @@ -173,8 +173,7 @@ test('Browser Cookie save/load test', async t => { t.truthy(cookieAfterQuit, 'should get cookie from getCookie()') t.is(cookieAfterQuit.name, EXPECTED_COOKIE.name, 'cookie from getCookie() after browser quit, should load the right cookie back') - // clean - fs.unlink(profileName, err => { + fs.unlink(profileName, err => { // clean if (err) { log.warn('Browser', 'unlink session file %s fail: %s', PROFILE, err) } -- GitLab