これは古いですが、同じ問題に遭遇したばかりで、dredd のドキュメントはかなり古くなっています (皮肉なことではありませんか?!)。
フックを使用して、応答と要求の本文とヘッダーを読み取って上書きできます(これはトピックで見つけた最新のページですが、まだ問題とタイプミスがあります)。1 つの注意点は、dredd には Cookie のヘルパーがないように見えるため、Cookie ヘッダーを自分で解析して構築する必要があることです。
私の場合、sessionId
は json 本体と Cookie で返されます。本体を解析した方が簡単ですが、必要に応じて応答 Cookie からセッションを取得することもできます。これは、認証を機能させるために私が書いたフックの大まかなものです。
hooks = require('hooks');
stash = {}
// hook to retrieve session on a login
hooks.after('Auth > /remoteauth/userpass > POST', function(transaction){
stash['token'] = JSON.parse(transaction.real.body)['sessionId'];
});
// hook to set the session cookie in all following requests
hooks.beforeEach(function(transaction){
if(stash['token'] != undefined){
transaction.request['headers']['Cookie'] = "id=" + stash['token']
};
});
ドキュメントはフックの設定方法を説明していますが、私をつまずかせたのは、同じディレクトリにファイルがあるとdredd --names
コマンドが機能しないことですdredd.yml
(ファイルが存在すると、dreddがすべてのコマンドライン引数を無視するようです)。