2015-08-26 15:51:56 -04:00
|
|
|
import AppEvents from 'discourse/lib/app-events';
|
2015-07-14 13:56:59 -04:00
|
|
|
import createStore from 'helpers/create-store';
|
2016-03-18 16:31:59 -04:00
|
|
|
import { autoLoadModules } from 'discourse/initializers/auto-load-modules';
|
2016-04-14 15:23:05 -04:00
|
|
|
import TopicTrackingState from 'discourse/models/topic-tracking-state';
|
2015-07-14 13:56:59 -04:00
|
|
|
|
|
|
|
export default function(name, opts) {
|
|
|
|
opts = opts || {};
|
|
|
|
|
|
|
|
test(name, function(assert) {
|
2015-08-26 15:51:56 -04:00
|
|
|
const appEvents = AppEvents.create();
|
2016-03-21 14:16:05 -04:00
|
|
|
this.site = Discourse.Site.current();
|
|
|
|
|
2016-11-07 15:11:56 -05:00
|
|
|
this.registry.register('site-settings:main', Discourse.SiteSettings, { instantiate: false });
|
|
|
|
this.registry.register('app-events:main', appEvents, { instantiate: false });
|
|
|
|
this.registry.register('capabilities:main', Ember.Object);
|
|
|
|
this.registry.register('site:main', this.site, { instantiate: false });
|
|
|
|
this.registry.injection('component', 'siteSettings', 'site-settings:main');
|
|
|
|
this.registry.injection('component', 'appEvents', 'app-events:main');
|
|
|
|
this.registry.injection('component', 'capabilities', 'capabilities:main');
|
|
|
|
this.registry.injection('component', 'site', 'site:main');
|
2015-07-14 13:56:59 -04:00
|
|
|
|
2016-01-04 15:18:09 -05:00
|
|
|
this.siteSettings = Discourse.SiteSettings;
|
|
|
|
|
2016-11-07 15:11:56 -05:00
|
|
|
autoLoadModules(this.registry, this.registry);
|
2016-01-04 15:18:09 -05:00
|
|
|
|
2016-04-14 15:23:05 -04:00
|
|
|
const store = createStore();
|
|
|
|
if (!opts.anonymous) {
|
|
|
|
const currentUser = Discourse.User.create({ username: 'eviltrout' });
|
|
|
|
this.currentUser = currentUser;
|
2016-11-07 15:11:56 -05:00
|
|
|
this.registry.register('current-user:main', this.currentUser, { instantiate: false });
|
|
|
|
this.registry.register('topic-tracking-state:main',
|
2016-04-14 15:23:05 -04:00
|
|
|
TopicTrackingState.create({ currentUser }),
|
|
|
|
{ instantiate: false });
|
|
|
|
}
|
|
|
|
|
2016-11-07 15:11:56 -05:00
|
|
|
this.registry.register('store:main', store, { instantiate: false });
|
2016-04-14 15:23:05 -04:00
|
|
|
|
|
|
|
if (opts.setup) {
|
2016-01-04 15:18:09 -05:00
|
|
|
opts.setup.call(this, store);
|
|
|
|
}
|
|
|
|
|
2016-11-08 13:40:35 -05:00
|
|
|
andThen(() => {
|
|
|
|
return this.render(opts.template);
|
|
|
|
});
|
2015-09-28 14:01:16 -04:00
|
|
|
andThen(() => opts.test.call(this, assert));
|
2015-07-14 13:56:59 -04:00
|
|
|
});
|
|
|
|
}
|