我正在尝试登录页面的验收测试,使用 cli mirage 作为模拟服务器。从应用程序访问时,在 mirage 中定义的路由可以正常工作。但是当在 ember 测试中尝试它时,它会返回
Mirage:您的 Ember 应用程序尝试 POST ' http://localhost:4200/tests?module=Acceptance | login',但没有定义路由来处理这个请求。在 mirage/config.js 文件中定义与此路径匹配的路由。您忘记添加命名空间了吗?
验收测试
test('visiting /login', function(assert) {
server.create('login', { username: 'xxx@test.com', password: 'password' });
visit('/login');
fillIn('input[placeholder="Email"]', 'xxx@test.com');
fillIn('input[placeholder="Password"]', 'password');
click('button.btn-primary');
andThen(function() {
assert.equal(currentURL(), '/route');
});
});
海市蜃楼/配置
import Mirage from 'ember-cli-mirage';
export default function() {
this.post('/token', function(db, request) {
var params = formEncodedToJson(request.requestBody);
if(params.username === "xxx@test.com && params.password === "password") {
return {
"auth":"Pass$Word",
"token_type":"bearer"
};
} else{
var body = { errors: 'Email or password is invalid' };
return new Mirage.Response(401, {}, body);
}
});
如何纠正这个问题?请有人帮助我。