将 Ember_simple_auth 与验收测试集成(使用 Mirage)

Integrating Ember_simple_auth with acceptance tests (using Mirage)

我创建了一个使用 OMDb API(开放电影数据库)的基本测试应用程序, 一切正常。

我将 ember-simple-auth(版本 1.0.0)添加到项目中,并让开发方面的事情顺利进行。基本上有一个简单的登录屏幕可以进入主应用程序。它按预期工作。

但是,我的两个基本验收测试现在不起作用。将 ember-simple-auth 组件和功能添加到应用程序后,我在验收测试文件中添加了:

import { currentSession, authenticateSession, invalidateSession } from 'movie-example/tests/helpers/ember-simple-auth';

并且在测试本身中,我添加了:

authenticateSession();

现在测试失败,表示:

Cannot read property '__container__' of undefined

此外,如果我注释掉导入行和 authenticateSession() 调用,测试仍然会失败,但是因为 DOM 显然完全是空的。

如果有人curious/willing,那么整个事情都可以在回购中找到:git@github.com:bdrsgg/ember-movie-example.git(分支=feature/ember-simple-auth)

我假设有一些配置问题我弄错了,或者类似的问题。感谢任何人可以提供的帮助。

编辑添加:

问题似乎确实集中在身份验证上。例如,如果我从路由中删除 AuthenticatedRouteMixin 调用,并省略 authenticateSession() 调用,则测试通过。

原来我只是没有正确声明早期的应用程序变量。长话短说,当我将 authenticateSession() 更改为 authenticateSession(this.application) 时,一切按预期进行。