Node6のテストコードでasync/await
先日からの続きで Node6 でコードを書いてるわけだけど、どうしてもテストの際には同期的に処理されてほしい before, after な辺りがあるわけですよ。
追加したもの
yortus/asyncawait: Callback heaven for Node.js with async/await
他にもいくつか似たようなライブラリはあるが、これを選んだ理由は
async () => {}
を
const {async} = require('asyncawait')
async(() => {})
と書けて、字面的に構文としての async/await に対していちばん違和感が少ないため。
これで
desribe('..', () => {
beforeEach(async(() => {
..
}))
it('..', async(() => {
..
}))
})
のように書ける。
除外したもの
eslint では test/ 以下を対象としないようにしておく。
eslint-plugin-node を使って async/await がコードに混入しないようにしている場合、ライブラリで追加した async/await も弾かれてしまうため。
テストコードに lint … 要らないよね? ダメすか。
cf. eslint-plugin-nodeでNode8を使いつつNode6で問題の起きないコードを書く - あーありがち(2018-05-23)
しかしこれ
同期的に処理されてほしいから async/await が欲しいと考えてるわけで、async とは?