问题标签 [ember-cli-mirage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
638 浏览

javascript - 来自 Mirage 的 Ember 数据无法在 index.hbs 上显示

Ember新手在这里。我一直在关注 Ember 网站上的教程

我一直在研发这个词的例子,一切正常……直到我尝试实现 Mirage。数据永远不会出现在 index.hbs 页面上。

这是我的模型钩子:

我的模型:rental.js

我的 index.hbs:

最后是我的 app/mirage/config.js:

我在 Chrome 开发者控制台中收到两条消息:

Mirage:您的 Ember 应用程序尝试获取“ http://localhost:4200/assets/vendor.js ”,但没有定义路由来处理此请求。在 mirage/config.js 文件中定义与此路径匹配的路由。您忘记添加命名空间了吗?

这个警告:

警告:在有效负载中遇到“数据”,但没有找到模型名称“数据”的模型(使用 super-rentals@serializer:-rest:.modelNameFromPayloadKey("data") 解析模型名称)

但是,当我看到以下信息时,信息似乎已成功检索:

成功请求:GET /rentals Object {data: Array[3]}

这反映了正确的数据。它只是介于它和 index.hbs 之间的某个地方,我是新手才能弄清楚。我敢肯定这只是我的一个小误会。任何帮助,将不胜感激!

0 投票
3 回答
1054 浏览

ember.js - Ember 测试/Mirage 找不到 DOM 元素

我正在尝试使用 Mirage 在 Ember 中进行一些基本的验收测试。我现在只使用固定装置来填充测试环境,只是为了找到我的脚。当我在测试环境中运行 ember(即,使用 -e test)时,我可以看到我的应用程序正在填充预期的数据。并且 DOM 有一些按钮等。一切都很好。

但是,当我运行测试以访问页面并单击按钮时,测试告诉我它找不到按钮。换句话说,运行 -e test 并检查 localhost 表明该应用程序似乎很好。但是然后检查 localhost/tests 有一个测试失败,说它在 -e 测试屏幕中找不到肯定存在的按钮。

我已经确认该按钮存在于 -e 测试环境中,同时使用检查器并仅在控制台行发出基本的 jquery 选择。

所以我认为设置或配置中的某个地方有问题?

尤其是:

第一个测试(只是访问 url)通过了。第二个测试是它说它找不到按钮。再一次,当我提供 -e test 并在控制台输入: $('.top-row-orders-button') 它返回有问题的按钮。

很高兴提供任何人需要的更多信息。将不胜感激任何帮助。几天来我一直在努力解决这个问题,但没有运气。

编辑添加:

更一般地说,当使用 Mirage 时,有没有办法查看 /tests 环境中的 DOM(即运行实际测试的 DOM)?即,每个 Mirage 测试的 DOM 是什么样的?

0 投票
0 回答
200 浏览

ember.js - 如何在 Ember 中显示嵌套的相关模型数据

作为序言,我是 Ember 的新手,并使用 Mirage 来模拟符合 JSON-API 的后端,但我在我认为常见的场景上遇到了障碍。理想情况下,我希望创建一个单独的视图,列出帖子和下面每个帖子的评论。当我想显示与每条评论关联的作者时,麻烦就来了。所以,我肯定在这里做错了什么,因为 Ember 知道如何获取Post模型的直接关联,但比这更深的东西是未定义的。

在我的路线中,我获取所有帖子并且知道然后从正确的 Mirage 路线请求关系数据。

这是 Ember 在请求所有帖子时从 Mirage 收到的响应。

在获得所有帖子和顶级关系模型之后,Ember 并没有更深入,所以我的comment.author模板中留下了一个未定义的内容。有什么方法可以告诉 Ember 获取我需要的嵌套模型,还是我做错了?

编辑

这是我的模型的结构和它们的模板。希望这将有助于提供更多背景信息。

Post模型:

Comment模型:

User模型:

Index模板:

Post模板:

Comment模板:

0 投票
1 回答
47 浏览

ember-cli - Ember 允许某些请求将海市蜃楼传递到互联网

我正在使用 ember-cli-mirage 并且我想模拟一些请求,但允许其他人实际呼叫互联网。有没有办法告诉匹配特定模式的 mirage 请求应该被忽略并允许实际访问网络?

0 投票
1 回答
190 浏览

ember.js - Ember CLI + Mirage:对象何时保存到商店

我正在编写一些测试,在其中创建了一堆相互依赖的对象。我的代码如下所示:

我有一个服务应该知道其中一些对象。当我打电话时:

从服务中我没有得到任何结果,但是以相同方式检索到的所有其他对象都存在于商店中;简介、员工、公司和引导程序。

我确信我必须以某种方式调整我的模型、序列化程序或工厂才能使这项工作正常进行,但了解基础知识会更有用。

是什么导致通过 Mirage 创建的对象进入商店?他们必须满足某些要求吗?它是否取决于它们与其他对象的关系?

0 投票
1 回答
136 浏览

ember.js - Integrating Ember_simple_auth with acceptance tests (using Mirage)

I created a basic test app that uses the OMDb API (The Open Movie Database), and with some help from SO posters everything is working fine.

I added ember-simple-auth (version 1.0.0) to the project, and got the dev side of things going. Basically there's a simple login screen to get into the main app. It's working as expected.

However, my two basic acceptance tests are now not working. After adding the ember-simple-auth components and functionality to the app, to the acceptance test file I added:

and in a test itself, I added:

The test now fails, saying:

Moreover, if I comment out the import line and the authenticateSession() call, the test still fails, but because the DOM is apparently completely empty.

The whole thing is available in a repo if anyone is curious/willing: git@github.com:bdrsgg/ember-movie-example.git (branch = feature/ember-simple-auth)

I assume there's some configuration issue I'm getting wrong, or something like that. Appreciate any help anyone can offer.

EDITED TO ADD:

The issue definitely seems to center on authentication. For example, if I remove the AuthenticatedRouteMixin calls from the routes, and leave out authenticateSession() calls, the tests pass.

0 投票
2 回答
855 浏览

ember.js - 在 ember-cli-mirage 中引入瞬时延迟

我正在使用 ember-cli-mirage 进行验收测试。对于特定情况,我想检查通过慢速连接获取数据时的行为。

ember-cli-mirage 中有一个设置timing可以模拟响应的延迟。但是,不能将此设置更改为在特定测试中有所不同:

我尝试过的其他方法是在假端点返回一个承诺。通过一些导入/导出,我可以控制我的测试中承诺的解决方案。不幸的是,ember-cli-mirage 似乎没有将返回值识别为一个承诺,而是简单地将它逐字传递回适配器:

问题:有没有办法做到这一点?即:控制ember-cli-mirage中特定响应的延迟?

0 投票
1 回答
374 浏览

ember.js - 来自 mirage 的失败的身份验证请求(401 Unauthorized)总是在 ember-simple-auth-token 中解决

在我的 Ember 应用程序中,我有一个登录操作。

当我使用我的服务器(http://127.0.0.1:8091)进行测试时,它工作正常。当响应为 200 时,我已登录。如果是 401,则设置了我的错误消息。

问题发生在 ember-cli-mirage 上。我有这个测试代码:

我只是发送一个测试令牌,它在凭据正确时起作用。我可以登录我的应用程序。但是如果我尝试使用错误的凭据,那么我会在我的 JS 控制台中收到此错误:

未捕获的类型错误:无法读取未定义的属性“拆分”

经过一番调查,似乎错误发生在这段代码中调用的函数 getTokenData 内部:

查看它所说的行var tokenData = _this2.getTokenData(token);。由于请求被拒绝,不应该调用第二个函数(被拒绝的承诺)吗?

看起来 ember-simple-auth-token 正在尝试使用不存在的令牌,因为响应是空的 401。我尝试在被拒绝的请求中包含一个令牌,但我仍然得到同样的错误。

请记住,当响应来自我的本地服务器(甚至是我的真实服务器)时,它工作正常。

我找不到调试海市蜃楼的方法。如何查看有关回复的详细信息?在我的浏览器中,请求不会出现在我的开发人员工具中的网络选项卡下。

接下来我应该研究什么来解决这个问题?

0 投票
1 回答
159 浏览

node.js - ember:车把不满足其兄弟姐妹的 peerDependencies

我刚刚将 ember 更新到 2.4.2:

当我输入时:ember init按照此处所述重新运行蓝图:https ://github.com/ember-cli/ember-cli/releases/tag/v2.4.2

我收到以下错误:

无论如何,该应用程序似乎工作正常,虽然我需要添加ember-cli-mirage插件,但我得到了同样的错误,并且没有安装这个东西,

我不确定哪些文件在这里是相关的,因为我的项目中没有一个文件包含字符串把手:

0 投票
1 回答
1431 浏览

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

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

Mirage:您的 Ember 应用程序尝试 POST ' http://localhost:4200/tests?module=Acceptance | login',但没有定义路由来处理这个请求。在 mirage/config.js 文件中定义与此路径匹配的路由。您忘记添加命名空间了吗?

验收测试

海市蜃楼/配置

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