事の発端は、CakePHPでのファイルアップロードなんだよね。
ファイルアップロードはできるんだけど、これをどうやってテストしようかと。
CakePHPのControllerのテストで書いてみたり、Selenium入れてブラウザテストでやってみたり、したんだけど、どうもしっくり来ないのでJavaScriptでやろうかと。
なんかapiに対してpostデータを捏造して投げる(でしかも画像ファイルをpostできる)みたいなのnpmでありそうだよね、ということでいろいろ探してたら、
supertest
とか
request
とかあることが分かった。
で、これをCakePHPの開発環境の bin/cake server
で起動している
http://localhost:8765/
に対して実行すると、なんかエラーが返って来る。
{ [Error: connect ECONNREFUSED]
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect' }
一体なんなんだこりゃと悩むこと数ヶ月、やっと分かった。
localhost だとダメらしい。
bin/cake server -H 127.0.0.1 -p 8765
と起動しなおして
request('http://127.0.0.1:8765').get('/').expect(200, done)
とすれば動く。全く問題ない。