2017-02-27 27 views
0

app.use(flash())をユーザexpress-flashに追加した後、supertestはres.render()を呼び出す私のアプリケーションのどのルートでも動作しません。テストがタイムアウトするだけで、endまたはexpectコールバックは実行されません。Supertestが.render()を呼び出すルートで動作しない

スタティックルートとちょうどres.sendを呼び出すルートは期待どおりに動作します。

ブラウザでは、私のアプリはすべてのルートで完璧に動作します。

res.renderコールバックを聞いて、レンダリングエラーが発生していないことを確認しました。正しいレンダリングされたテンプレートを使用したテストでコールバックが正常に呼び出されます。

何が原因でテストがタイムアウトする可能性がありますか?

ここでは、設定したルートの例を示しますが、動作しません。

app.get("/test", (req, res) => res.render("dashboard")); 

そして、ここに私の仕様です:

it("at least returns something", (done) => { 
      request(app) 
       .get("/test") 
       .expect(200) 
       .end(err => 
        err 
        ? done.fail(err) 
        : done() 
       ); 
     }); 

答えて

0

まあ、最終的には問題は私のセッションストアは、MongoDBの上にあったということでした、と私はモンゴをからかったので、それは接続を取得することはありませんでしょう、したがって、それはハングアップします。

ここが原因です。

const session = expressSession({ 
    secret: "double rainbow", 
    store: new MongoStore({ mongooseConnection: database.getConnection() }), 
    resave: false, 
    saveUninitialized: false 
}); 

私はこのMongoStoreの作成を別のモジュールに移動し、テスト中にそれを嘲笑しました。

関連する問題