2017-10-25 13 views
0

キュウリとNightwatch.jsに問題があります。私の機能の1つでは、最初のステップでIDを取得するPOSTリクエストを作成し、そのIDをナビゲートする必要があるURLに使用します。私が問題を抱えているのは、私が応答を得るまでには別のステップにあるため、テストしようとしているアイテムが見えなくなってしまうからです。ここに私が取っていたステップのスニペットがあります。キュウリは約束が終わるのを待つ

Given(/^I make a post request and retreive the Id i got the page + id$/,() => { 
    //I make the post request 
    var transactionIdPromise = utils.getTransactionId(1); 
    var url = ""; 

    transactionIdPromise.getBody('utf8').then(JSON.parse).done(function (result) { 
     var id = result.transaction_id; 
     url = "https://mywebpage.com:8443/" + id; 
     return client.url(url) 
    }); 
}); 

//request that returns id 
var getTransactionId = function (user) { 
     return request('POST', 'http://localhost:8888/internal/retreive_transaction/?', {json: {user_id: user, type: 'UNIQUENESS', info: '{"person_id":"xxxxxxxxxxxxxxxx"}'}}); 
    }; 

私の質問は、次のステップに進む前にリクエストが完了するまで待つことができますか?

答えて

0

Cucumber.jsが約束を解決するのを待つようにするには、ステップ定義の結果として返さなければなりません。したがって、returntransactionIdPromise.getBody...

+0

の前に置く必要があります。しかし、今起こっていることは、私のclient.urlがページに直接移動していないということです – elcharrua

関連する問題