From e86194d1dcf2cd13fe51f3f9f2a5f6cebf1af8e8 Mon Sep 17 00:00:00 2001 From: "Zhuohuan LI (CARPE DIEM)" Date: Wed, 26 Oct 2016 02:58:53 +0800 Subject: [PATCH] #40 try to fix unit test in CI! --- index.ts | 4 ++-- package.json | 6 +++--- src/puppet-web/browser.ts | 36 +++++++++++++++++++++--------------- test/webdriver.spec.ts | 1 - test/wechaty.spec.ts | 31 +++++++++++++++++-------------- 5 files changed, 43 insertions(+), 35 deletions(-) diff --git a/index.ts b/index.ts index 07c17f1f..41a95f4a 100644 --- a/index.ts +++ b/index.ts @@ -14,7 +14,7 @@ import Wechaty from './src/wechaty' import log from './src/brolog-env' -const version = require('./package.json').version +const VERSION = require('./package.json').version export default Wechaty export { @@ -30,5 +30,5 @@ export { , UtilLib , Wechaty , log // for convenionce use npmlog with environment variable LEVEL - , version + , VERSION } diff --git a/package.json b/package.json index c328357a..0a6bbbd6 100644 --- a/package.json +++ b/package.json @@ -24,13 +24,13 @@ "tslint": "tslint \"{bin,example,src,test}/**/*.ts\" && tsc --noEmit", "sloc": "sloc . --details --format cli-table --keys total,source,comment --exclude \"node_modules|doc\" && sloc . --exclude \"node_modules|doc\"", "pretest": "npm run lint && npm run clean && npm run build", - "test": "npm run test:phantomjs && npm run test:chrome", + "test": "npm run test:chrome", "posttest": "npm run clean && npm run sloc", "test:phantomjs": "cross-env LC_ALL=C WECHATY_LOG=info WECHATY_HEAD=phantomjs ava --timeout=10m \"dist/test/*.spec.js\"", "test:phantomjs.bak": "cross-env LC_ALL=C WECHATY_LOG=info WECHATY_HEAD=phantomjs ava --timeout=10m \"dist/{src,test}/**/*.spec.js\"", - "test:chrome": "cross-env LC_ALL=C WECHATY_LOG=silly WECHATY_HEAD=chrome ava --timeout=10m \"dist/{src,test}/**/*.spec.js\"", + "test:chrome": "cross-env LC_ALL=C WECHATY_LOG=info WECHATY_HEAD=chrome ava --ext js --timeout=10m \"dist/{src,test}/**/*.spec.js\"", "testdev": "cross-env LC_ALL=C WECHATY_LOG=silly ava --ext ts --serial --verbose --fail-fast --timeout=3m", - "testdist": "ava --ext ts --verbose --fail-fast --timeout=3m", + "testdist": "WECHATY_HEAD=phantomjs ava --ext ts --verbose --fail-fast --timeout=3m", "ava": "cross-env LC_ALL=C WECHATY_LOG=verbose ts-node node_modules/.bin/ava \"{src,test}/**/*.spec.js\"", "start": "ts-node bin/client", "dev": "ts-node dev.ts", diff --git a/src/puppet-web/browser.ts b/src/puppet-web/browser.ts index 96c86dda..f161d480 100644 --- a/src/puppet-web/browser.ts +++ b/src/puppet-web/browser.ts @@ -12,14 +12,14 @@ import { Builder , Capabilities , WebDriver -} from 'selenium-webdriver' +} from 'selenium-webdriver' /* tslint:disable:no-var-requires */ const retryPromise = require('retry-promise').default // https://github.com/olalonde/retry-promise -import Config from '../config' +import Config from '../config' import StateMonitor from '../state-monitor' -import log from '../brolog-env' +import log from '../brolog-env' import { CookieType @@ -60,19 +60,21 @@ export class Browser extends EventEmitter { this.state.target('open') this.state.current('open', false) - // fastUrl is used to open in browser for we can set cookies. + // jumpUrl is used to open in browser for we can set cookies. // backup: 'https://res.wx.qq.com/zh_CN/htmledition/v2/images/icon/ico_loading28a2f7.gif' - const fastUrl = 'https://wx.qq.com/zh_CN/htmledition/v2/images/webwxgeticon.jpg' + const jumpUrl = 'https://wx.qq.com/zh_CN/htmledition/v2/images/webwxgeticon.jpg' - // return co.call(this, function* () { try { await this.initDriver() // this.live = true - await this.open(fastUrl) + await this.open(jumpUrl) await this.loadCookie() .catch(e => { // fail safe - log.verbose('PuppetWeb', 'browser.loadSession(%s) exception: %s', this.setting.sessionFile, e && e.message || e) + log.verbose('PuppetWeb', 'browser.loadSession(%s) exception: %s' + , this.setting.sessionFile + , e && e.message || e + ) }) await this.open() /** @@ -159,13 +161,13 @@ export class Browser extends EventEmitter { public driver(newDriver?: WebDriver | null): WebDriver | void { if (newDriver !== undefined) { log.verbose('PuppetWebBrowser', 'driver(%s)' - , newDriver - ? newDriver.constructor.name - : null + , newDriver + ? newDriver.constructor.name + : null ) } - if (typeof newDriver !== 'undefined') { + if (newDriver !== undefined) { if (newDriver) { this._driver = newDriver return this._driver @@ -343,7 +345,7 @@ export class Browser extends EventEmitter { /** * - * if we use AVA to test, then this.clean will cause problems + * if we use AVA test runner, then this.clean might cause problems * because there will be more than one instance of browser with the same nodejs process id * */ @@ -386,7 +388,8 @@ export class Browser extends EventEmitter { return retryPromise({ max: max, backoff: backoff }, attempt => { log.silly('PuppetWebBrowser', 'clean() retryPromise: attempt %s time for timeout %s' - , attempt, timeout) + , attempt, timeout + ) return new Promise((resolve, reject) => { this.getBrowserPids() @@ -549,7 +552,10 @@ export class Browser extends EventEmitter { // log.verbose('PuppetWebBrowser', 'dead() emit a `dead` event because %s', msg) // this.emit('dead', msg) // } - if (this.state.target() === 'open' && this.state.current() === 'open' && this.state.stable()) { + if ( this.state.target() === 'open' + && this.state.current() === 'open' + && this.state.stable() + ) { log.verbose('PuppetWebBrowser', 'dead() emit a `dead` event because %s', msg) this.emit('dead', msg) } else { diff --git a/test/webdriver.spec.ts b/test/webdriver.spec.ts index 898dc923..ad3cc42e 100644 --- a/test/webdriver.spec.ts +++ b/test/webdriver.spec.ts @@ -1,4 +1,3 @@ -// import * as path from 'path' import { test } from 'ava' // import { diff --git a/test/wechaty.spec.ts b/test/wechaty.spec.ts index ce44b928..73ce472d 100644 --- a/test/wechaty.spec.ts +++ b/test/wechaty.spec.ts @@ -3,6 +3,7 @@ import { test } from 'ava' import { Config , Contact + , FriendRequest , IoClient , Message , Puppet @@ -11,28 +12,30 @@ import { , Wechaty , log - , version + , VERSION } from '../' test('Wechaty Framework', t => { - t.truthy(Wechaty , 'should export Wechaty') - t.truthy(Message , 'should export Message') - t.truthy(Contact , 'should export Contact') - t.truthy(Room , 'should export Room') - - t.truthy(IoClient , 'should export IoClient') - - t.truthy(log , 'should export log') - - t.truthy(Puppet , 'should export Puppet') - t.truthy(PuppetWeb , 'should export PuppetWeb') + t.truthy(Contact , 'should export Contact') + t.truthy(FriendRequest, 'should export FriendREquest') + t.truthy(IoClient , 'should export IoClient') + t.truthy(Message , 'should export Message') + t.truthy(Puppet , 'should export Puppet') + t.truthy(PuppetWeb , 'should export PuppetWeb') + t.truthy(Room , 'should export Room') + t.truthy(Wechaty , 'should export Wechaty') + t.truthy(log , 'should export log') const bot = Wechaty.instance() - t.is(bot.version(true), version, 'should export version in package.json') + t.is(bot.version(true), require('../package.json').version + , 'should return version as the same in package.json' + ) + t.is(VERSION, require('../package.json').version + , 'should export version in package.json' + ) }) test('Wechaty Config setting', t => { - t.truthy(Config , 'should export Config') t.truthy(Config.DEFAULT_HEAD , 'should has DEFAULT_HEAD') t.truthy(Config.DEFAULT_PUPPET , 'should has DEFAULT_PUPPET') -- GitLab