在 firebase 3 更新之前,我们的验收测试一直在运行,没有任何问题。我们在beforeTest和afterTest中使用以下内容
moduleForAcceptance('Acceptance | Dashboard | Items | Library | New', {
beforeEach() {
stubFirebase();
var ref = createOfflineRef(basicDataRef, 'https://MY-APP.firebaseio.com');
replaceAppRef(this.application, ref);
stubValidSession(this.application, {uid: 'xxxx'});
},
afterEach() {
unstubFirebase();
}
});
basicDataRef 是测试的夹具。上面的代码允许我在 torii 库中的 test-helper 之后模拟会话,以允许我的应用程序正确获取所需的数据,因为我的 firebase 层次结构如下:/ +--uid +--profile +--otherdata
我不是在测试权限规则,只是在应用程序中保存/编辑数据的交互,这在 firebase 3 迁移之前运行良好。在版本 3 之后,我的所有测试都返回以下内容:
actual: >
false
expected: >
true
stack: >
at http://localhost:7357/assets/test-support.js:4130:12
at exports.default._emberTestingAdaptersAdapter.default.extend.exception (http://localhost:7357/assets/vendor.js:49473:7)
at onerrorDefault (http://localhost:7357/assets/vendor.js:41461:24)
at Object.exports.default.trigger (http://localhost:7357/assets/vendor.js:62212:11)
at http://localhost:7357/assets/vendor.js:63463:40
at Queue.invoke (http://localhost:7357/assets/vendor.js:10415:16)
message: >
Error: permission_denied at /xxxx/profile: Client doesn't have permission to access the desired data.
我一直认为 emberfire 中的 createOfflineRef 允许我们绕过规则检查。它不断返回 permission_denied 的事实非常令人困惑。也许我需要重新设计测试?还是我一直错误地处理这个问题?非常感谢任何输入