首页 文章

Cli海市蜃楼路线在接受测试中不起作用

提问于
浏览
1

我正在尝试登录页面的验收测试,使用cli mirage作为模拟服务器 . 海市蜃楼中定义的路线在从应用程序访问时工作正常 . 但是当在ember测试中尝试它时,它会返回

Mirage:你的Ember应用试图发布'http://localhost:4200/tests?module=Acceptance |登录',但没有定义处理此请求的路由 . 在mirage / config.js文件中定义与此路径匹配的路径 . 你忘了添加命名空间吗?

Acceptance Test

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');
  });
});

Mirage/config

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);
  }
});

如何纠正这个问题?有人帮我请 .

1 回答

  • 1

    问题出在环境配置中 . 经过定义的测试配置工作正常 .

相关问题