2017-02-27 24 views
0

在將app.use(flash())添加到用戶express-flash之後,supertest不適用於我的應用中的任何稱爲res.render()的路由。測試剛剛超時,它不執行endexpect回調。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創建移動到另一個模塊,並在測試過程中嘲笑它。