Comments (5)
I was trying to put together a test for a component that makes an ajax call and found it very awkward. Being able to use these test helpers would be helpful.
from ember-test-helpers.
This worked out of the box for me in 1.12, but in one of the point release 1.13's it broke, due to this change. Basically, view lookups stopped being a just-in-time check of a global shared by all "applications" (I put that in quotes because technically there's no application in the test helpers, but views do get registered into that global). That change meant that the application built by startApp
no longer had knowledge of the component views created in the test. When an event was invoked in the component, by clicking or filling in or whatever, the application event dispatcher couldn't find the view with the action corresponding to the event.
I fixed this by creating a test function that recreates the integration test event dispatcher with a link to the applications container, so view lookups worked again:
export default function (context, app) {
run(app, () => {
// destroy the old dispatcher...
context.dispatcher.destroy();
// ... then replace it with a dispatcher that knows about the application container
context.dispatcher = EventDispatcher.create({
container: app.container
});
context.dispatcher.setup({}, '#ember-testing');
});
}
In my tests I'd use it as such:
beforeEach() {
App = startApp();
linkAppDispatcher(this, App);
},
from ember-test-helpers.
@praxxis - Thank you for the detailed explanation and workaround.
from ember-test-helpers.
Huzzah, I updated a bunch of dependencies (including going to Ember 2.0) and no longer need to re-link the container with the above workaround. I assume it was #90 that fixed it
from ember-test-helpers.
FWIW, these helpers are available via ember-native-dom-helpers
, and I plan to submit an RFC to expose them directly from ember-test-helpers in the near future (as soon as the changes from emberjs/rfcs#232 are totally finished).
I'm going to close this for now (since it is possible with that addon)...
from ember-test-helpers.
Related Issues (20)
- Let's add fetch to the settled checks? HOT 2
- Missing types for @glimmer/interfaces HOT 3
- element doesn't exist on type TestContext HOT 2
- Property 'element' does not exist on type 'TestContext'. ? HOT 2
- `find` and `findAll` examples are swapped
- Cannot find type definition file for 'ember__test-helpers' after upgrading to v2.9.3 HOT 2
- Regression with `find()` generic type HOT 1
- Rethinking helpers for forms input HOT 2
- Observers not triggered in ember acceptance tests
- [proposal] add hooks support to all dom helpers + settled and wait-until
- Upgrade `registerHook` and `runHooks` as official public APIs HOT 4
- `fillIn` does not work with input values that are decorated with the `readonly` helper HOT 1
- [feature request] pass more information back in error scenarios
- `scrollTo` target type inconsistent with other test helpers
- Setup context fails when using ember-data v4 and a custom resolver
- Allow `waitUntil` to accept a callback that returns a promise HOT 1
- Types missing from version 3 HOT 4
- Anomalies in current published version compared to previous versions HOT 5
- Allow Ember v5
- needed infra maintainence
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ember-test-helpers.