【发布时间】:2019-10-01 14:49:13
【问题描述】:
我的 ember.js 应用使用名为 user-backoffice 的可在 repo 中安装的引擎。
这个引擎提供了一个名为my-engine-route的路由,这里是它的单元测试,位于my-app/lib/user-backoffice/test-support/unit/my-engine-route/route-test.js
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
import engineResolverFor from 'ember-engines/test-support/engine-resolver-for';
const modulePrefix = 'user-backoffice';
const resolver = engineResolverFor(modulePrefix);
module('[user-backoffice] Unit | Route | my-engine-route', function(hooks) {
setupTest(hooks, {resolver});
test('it exists', function(assert) {
let route = this.owner.lookup('route:my-engine-route');
assert.ok(route);
});
});
engineResolverFor 部分取自ember-engine.com docs。
我的问题是由于ember/no-restricted-resolver-tests 规则,此代码会生成一个 eslint 错误。
my-app/lib/user-backoffice/test-support/test-support/unit/my-engine-route/route-test.js
9:20 error Do not use setupTest whose last parameter is an object unless used in conjunction with `integration: true` ember/no-restricted-resolver-tests
在我看来,eslint 规则和 ember-engine 文档是矛盾的,所以我想知道是否应该在引擎的上下文中禁用该规则,或者是否应该更新 ember-engine.com 文档.
编辑
@villander 在emberjs Discord #ember-engines 频道建议,这可能与我在项目中使用的 ember 版本有关,确实有点旧:3.8。
这里有一个 repo 可以复制:https://github.com/bartocc/stackoverflow-question-58007416
【问题讨论】: