REST APIのテストフレームワークであるFrisby.jsに関する質問。
レスポンスのJSONデータの値が「nullか文字列」である事をテストしたい場合、以下のような形でCustom Matcherが使える。

frisby.create('Test using a path as the paramater')
.get('http://localhost:3000/test')
.expectJSONTypes('member.*', {
    "name": String,
    "hobby": function(val) { expect(val).toBeTypeOrNull(String); }, // Custom Matcher
    "rank": {
        "name": string, 
        "point": Number
    }
})
.toss()

しかし、JSONがネストしている場合、Custom Matcherがうまく使えない。
例えば"rank"の"name"がnullか文字列というテストをしようとするとエラーとなってしまう。
解決方法が分かれば教えて下さい。

frisby.create('Test using a path as the paramater')
.get('http://localhost:3000/test')
.expectJSONTypes('member.*', {
    "name": String,
    "hobby": String,
    "rank": {
        "name": function(val) { expect(val).toBeTypeOrNull(String); }, // エラーになる 
        "point": Number
    }
})
.toss()

エラーメッセージは以下。

1) Frisby Test: Test using a path as the paramater 
    [ GET http://localhost:3000/test ]
 Message:
   Error: Expected 'string' to be type 'object' on key 'name'
 Stacktrace:
   Error: Expected 'string' to be type 'object' on key 'name'
  at _jsonContainsTypes (/home/vagrant/frisby_test/node_modules/frisby/lib/frisby.js:1283:15)
  at _jsonContainsTypes (/home/vagrant/frisby_test/node_modules/frisby/lib/frisby.js:1271:9)
  at jasmine.Matchers.toContainJsonTypes (/home/vagrant/frisby_test/node_modules/frisby/lib/frisby.js:1156:12)
  at /home/vagrant/frisby_test/node_modules/frisby/lib/frisby.js:573:22
  at Array.forEach (native)
  at Function._.each._.forEach (/home/vagrant/frisby_test/node_modules/frisby/node_modules/underscore/underscore.js:81:11)
  at null.<anonymous> (/home/vagrant/frisby_test/node_modules/frisby/lib/frisby.js:572:9)
  at null.<anonymous> (/home/vagrant/frisby_test/node_modules/frisby/lib/frisby.js:1043:43)