提交 e86194d1 编写于 作者: Huan (李卓桓)'s avatar Huan (李卓桓)

#40 try to fix unit test in CI!

上级 ce50196d
......@@ -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
}
......@@ -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",
......
......@@ -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 {
......
// import * as path from 'path'
import { test } from 'ava'
// import {
......
......@@ -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')
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册