Skip to content

Commit

Permalink
improve
Browse files Browse the repository at this point in the history
  • Loading branch information
jinqiming committed Mar 15, 2019
1 parent 8d716a4 commit bc29abc
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 2 deletions.
6 changes: 4 additions & 2 deletions lib/msghandler.js
Original file line number Diff line number Diff line change
Expand Up @@ -84,9 +84,10 @@ function getDownloadFn (filename, msgId, interfaceUrl, headers = {}) {

return new Promise(
(resolve, reject) => self.s0(options)
.on('error', () => resolve(false)) // pipe input error
.pipe(fs.createWriteStream(filename, { autoClose: true }))
.on('finish', () => resolve(true))
.on('error', () => resolve(false)) // how to ut it?
.on('error', () => resolve(false)) // pipe output error
)
}
}
Expand All @@ -110,9 +111,10 @@ function getDownloadSlaveFn (filename, msgId, interfaceUrl = 'webwxgetmsgimg', h

return new Promise(
(resolve, reject) => self.s0(options)
.on('error', () => resolve(false)) // pipe input error
.pipe(fs.createWriteStream(filename, { autoClose: true }))
.on('finish', () => resolve(true))
.on('error', () => resolve(false)) // how to ut it?
.on('error', () => resolve(false)) // pipe output error
)
}
}
Expand Down
46 changes: 46 additions & 0 deletions test/test-getDownloadSlaveFn.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
'use strict'

let log4js = require('log4js')
let fs = require('fs')
let logger = log4js.getLogger('chatwe')
var http = require('http')
var Wechat = require('../index')
Expand All @@ -25,6 +26,13 @@ var s = http.createServer(function (req, res) {
if (req.url.startsWith('/xyz')) {
res.end(ret)
}
if (req.url.startsWith('/timeout')) {
setTimeout(function () {
res.writeHead(200, { 'content-type': 'text/plain' })
res.write('waited')
res.end()
}, 200)
}
})

test('setup', function (t) {
Expand All @@ -40,17 +48,55 @@ test('setup', function (t) {
test('wechat getDownloadSlaveFn 1', async function (t) {
wechat.loginInfo['url'] = Config.BASE_URL
wechat.loginInfo['User'] = {}
fname = '/tmp/a'
let resp = await (wechat.getDownloadSlaveFn(fname, 111))()
t.equal(resp, true)
})

test('wechat getDownloadSlaveFn 2', async function (t) {
wechat.loginInfo['url'] = Config.BASE_URL
wechat.loginInfo['User'] = {}
fname = '/tmp'
let resp = await (wechat.getDownloadSlaveFn(fname, 111))()
t.equal(resp, false)
})

test('wechat getDownloadFn 1', async function (t) {
wechat.loginInfo['url'] = Config.BASE_URL
wechat.loginInfo['User'] = {}
fname = '/tmp/a'
let resp = await (wechat.getDownloadFn(fname, 111, 'xyz'))()
t.equal(resp, true)
})

test('wechat getDownloadFn 2', async function (t) {
wechat.loginInfo['url'] = Config.BASE_URL
wechat.loginInfo['User'] = {}
fname = '/tmp'
let resp = await (wechat.getDownloadFn(fname, 111, 'xyz'))()
t.equal(resp, false)
})

async function testPipe () {
var shouldTimeout = {
url: 'http://127.0.0.1:12345/timeout',
timeout: 100
}
fname = '/tmp'
return new Promise(
(resolve, reject) => wechat.s0(shouldTimeout)
.on('error', () => resolve(false))
.pipe(fs.createWriteStream(fname, { autoClose: true }))
.on('finish', () => resolve(true))
.on('error', () => resolve(false))
)
}

test('wechat testerror 1', async function (t) {
let resp = await testPipe()
t.equal(resp, false)
})

test('cleanup', function (t) {
s.close(function () {
t.end()
Expand Down

0 comments on commit bc29abc

Please sign in to comment.