Skip to content

Commit

Permalink
adding more tests
Browse files Browse the repository at this point in the history
  • Loading branch information
timcash committed Apr 28, 2016
1 parent a56289b commit bf670a1
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 28 deletions.
7 changes: 4 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"main": "index.js",
"repository": "https://github.com/timcash/async_workshop",
"scripts": {
"test": "ava --timeout=3s",
"test": "ava",
"watch-test": "npm test -- --watch",
"transpile": "./node_modules/babel-cli/bin/babel.js --source-maps inline src --out-dir lib",
"watch-transpile": "npm run transpile -- --watch"
Expand Down Expand Up @@ -45,7 +45,8 @@
"parser": "babel-eslint"
},
"dependencies": {
"isomorphic-fetch": "^2.2.1",
"ramda": "^0.21.0"
"es6-promisify": "^4.0.0",
"ramda": "^0.21.0",
"rxjs": "^5.0.0-beta.6"
}
}
4 changes: 3 additions & 1 deletion src/api.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ export const userDB = {
export function getUserHandle (token, cb) {
setTimeout(() => {
if (tokenDB[token]) {
console.log('getUserHandle', token)
cb(null, tokenDB[token])
} else {
cb('token not in the database', undefined)
Expand All @@ -25,9 +26,10 @@ export function getUserHandle (token, cb) {
export function getUserData (handle, cb) {
setTimeout(() => {
if (userDB[handle]) {
console.log('getUserData', handle)
cb(null, userDB[handle])
} else {
cb('token not in the database', undefined)
cb('handle not in the database', undefined)
}
}, 100)
}
28 changes: 26 additions & 2 deletions src/index.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
// import R from 'ramda'
// import Rx from 'rxjs/Rx'
import pfy from 'es6-promisify'
import * as api from './api'

let getUser = pfy(api.getUserHandle)
let getData = pfy(api.getUserData)

export function callbacker (token, cb) {

}
Expand All @@ -10,9 +15,28 @@ export function promiser (token) {
}

export function * yielder (token) {

let u = yield getUser(token)
let d = yield getData(u.handle)
return d
}

export async function asyncer (token) {

let u = await getUser(token)
let d = await getData(u.handle)
return d
}

// export function observer (token, done) {
// let s$ = Rx.Observable.of(1, 2, 3).map(x => x + '!!!')
// s$.subscribe(console.log, () => {}, () => {
// done()
// })
// }
//
// function * call () {
// console.log('yielding')
// let data1 = yield yielder('token1')
// console.log('data1', data1)
// }

//call()
45 changes: 23 additions & 22 deletions test.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,35 +2,36 @@ import test from 'ava'
import * as wshop from './lib/index'
import * as api from './lib/api'

test.cb('callbacker', t => {
test('hello world', t => t.pass())

test.skip.cb('callbacker', t => {
let token = 'token1'
let expected = api.userDB['timbretone']
let cb = (err, res) => {
if (err) throw new Error(err)
t.deepEqual(res, expected)
t.end()
}

wshop.callbacker(token, cb)
})

// test('promiser', t => {
// let token = 'token2'
// let expected = api.userDB['carlmemaybe']
// return wshop.promiser(token)
// .then(res => t.deepEqual(res, expected))
// })
//
// test('bar', function * (t) {
// let token = 'token3'
// let expected = api.userDB['meghanbacon']
// let res = yield wshop.yielder(token)
// t.deepEqual(res, expected)
// })
//
// test('bilbo', async t => {
// let token = 'token4'
// let expected = api.userDB['frankiestein']
// let res = await wshop.asyncer(token)
// t.deepEqual(res, expected)
// })
test.skip('promiser', t => {
let token = 'token2'
let expected = api.userDB['carlmemaybe']
return wshop.promiser(token)
.then(res => t.deepEqual(res, expected))
})

test.skip('bar', function * (t) {
let token = 'token3'
let expected = api.userDB['meghanbacon']
let res = yield wshop.yielder(token)
t.deepEqual(res, expected)
})

test.skip('bilbo', async t => {
let token = 'token4'
let expected = api.userDB['frankiestein']
let res = await wshop.asyncer(token)
t.deepEqual(res, expected)
})

0 comments on commit bf670a1

Please sign in to comment.