chai
immutable-js

Immutable.jsのオブジェクト比較用のpluginを作った

More than 3 years have passed since last update.

気持ち

Immutable.jsは便利だけど、chaieqlを使って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使ってみたいからその一環でやるかも。