Comments (8)
Got some help from @rwjblue on this one today and wanted to share here:
It seems that a nicer (but currently undocumented solution) is to extend
the EventDispatcher
:
// inside of app/event_dispatcher.js
import Ember from 'ember';
export default Ember.EventDispatcher.extend({
init() {
this._super(...arguments);
this.events.webkitAnimationEnd = 'animationEnd'
}
});
This works and feels like a better solution since setting up custom events is unlikely to change based on the current environment.
The _
in the file name is surprising but currently needed. Also there could be a more intentional hook to let users edit the events.
from ember-test-helpers.
We create and setup the EventDispatcher
here for unit tests and here for integration tests but do not provide any custom settings.
Ember does that here as part of application boot, passing the customEvents
hash that is specified on the Ember.Application
instance.
from ember-test-helpers.
The simplest solution is to allow the user to specify customEvents
(instead of using {}
). Something like:
moduleForComponent('foo-bar', {
beforeEach() {
this.customEvents = {
webkitAnimationEnd: 'animationEnd'
msAnimationEnd: 'animationEnd'
oAnimationEnd: 'animationEnd'
animationend: 'animationEnd'
};
}
});
Which would be used here like so:
context.dispatcher = Ember.EventDispatcher.create();
context.dispatcher.setup(context.customEvents || {}, '#ember-testing');
from ember-test-helpers.
@ef4 / @dgeb - Would love your thoughts on the right API here...
from ember-test-helpers.
Ideally we should not require additional config. If you have custom events set up correctly in your app, they should Just Work in integration tests too.
We may need to refactor Application a little so that we can use just the customized event setup separately from booting a whole app instance.
from ember-test-helpers.
I'd like to contribute, but would need hand holding
from ember-test-helpers.
Anybody? it's been a while :|
from ember-test-helpers.
Thanks for writing up the solution here. I think I'm going to close this issue now that the solution is documented, but I suspect we might still want to do some work in Ember to make this a bit more ergonomic. I'm happy to help someone spearhead an RFC on this, if they are interested in it...
from ember-test-helpers.
Related Issues (20)
- 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
- 3.2.0 Missing `lookup` and `register` on `Owner` type definition HOT 7
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.