私は、ユーザーがログインした後に実行されているsupertest
とテスト実装しました:私はES5を使用してにそのmodule.exports.token
としてソートの醜いハックを使用した今までNode.jsのES6モジュール輸出非同期変数
// ../prepare.login
"use strict";
import {default as request} from "supertest";
import {default as app} from "../../server.js";
const postUrl = "/api/v1/login";
const postData = {
"username": "user",
"password": "pass"
};
module.exports = {
prepare: function(done) {
request(app.listen())
.post(postUrl)
.send(postData)
.end((err, res) => {
if (err) {
throw err;
}
module.exports.token = res.body.token;
done();
});
}
}
を実際の試験にトークンを送信します。
// users.js
...
var login = require("../prepare.login");
describe("authenticated /api/v1/users", function() {
beforeEach(function(done) {
login.prepare(done);
});
});
...
it("On GET /api/v1/users I want to get all the users in an array", function(done) {
request(app.listen())
.get("/api/v1/users")
.set("X-Access-Token", login.token)
.expect(200)
...
私はモジュールのトップレベルよりもどこにもimport
とexport
文を許可していませんES6に切り替えました。したがって、私はこれをどのように実装すべきかについて本当に分かりません。私は結果を非同期で待つべきですか?それも可能ですか?他の方法はありますか?