気持ち
Immutable.jsは便利だけど、chai
のeql
を使ってspecを書くと、Immutable.jsの内部的な値の差分まで検出してしまうので、テストが通らないしその差分を見ても訳がわからない。
Immutable.is()
を使っちゃうとテストが落ちた時の差分情報が見れないので、あんまり使いたくない。
(みんなこの辺どうしてるんすかね?)
やっつけ
Immutable.jsはtoJS()
という、構造が同等の普通のjs objectを返してくれるAPIがあるので、toJS()
が定義されているオブジェクトがeql
に渡されたら内部的にtoJS()
を呼んで元々のeql
で比較するpluginを作った。plugin作りの練習にはちょうど良かった。
要するに、意識しなくても
expect(actual.toJS()).to.eql(expected.toJS());
をやってくれるようにした。
詳しく
https://github.com/hokuma/chai-eql-immutable
やっつけで作ったのでテストはないです。Travis CI使ってみたいからその一環でやるかも。