Add acceptance tests for plugin outlets
This commit is contained in:
parent
86deec3528
commit
217007ff54
|
@ -61,6 +61,11 @@ function findOutlets(collection, callback) {
|
|||
});
|
||||
}
|
||||
|
||||
export function clearCache() {
|
||||
_connectorCache = null;
|
||||
_rawCache = null;
|
||||
}
|
||||
|
||||
function buildConnectorCache() {
|
||||
_connectorCache = {};
|
||||
_rawCache = {};
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
import { acceptance } from "helpers/qunit-helpers";
|
||||
import { clearCache } from 'discourse/helpers/plugin-outlet';
|
||||
|
||||
const HELLO = 'javascripts/multi-test/connectors/user-profile-primary/hello';
|
||||
const GOODBYE = 'javascripts/multi-test/connectors/user-profile-primary/goodbye';
|
||||
|
||||
acceptance("Plugin Outlet - Multi Template", {
|
||||
setup() {
|
||||
Ember.TEMPLATES[HELLO] = Ember.HTMLBars.compile(`<span class='hello-span'>Hello</span>`);
|
||||
Ember.TEMPLATES[GOODBYE] = Ember.HTMLBars.compile(`<span class='bye-span'>Goodbye</span>`);
|
||||
},
|
||||
|
||||
teardown() {
|
||||
delete Ember.TEMPLATES[HELLO];
|
||||
delete Ember.TEMPLATES[GOODBYE];
|
||||
clearCache();
|
||||
}
|
||||
});
|
||||
|
||||
test("Renders a template into the outlet", assert => {
|
||||
visit("/users/eviltrout");
|
||||
andThen(() => {
|
||||
assert.ok(find('.user-profile-primary-outlet.hello').length === 1, 'it has class names');
|
||||
assert.ok(find('.user-profile-primary-outlet.goodbye').length === 1, 'it has class names');
|
||||
assert.equal(find('.hello-span').text(), 'Hello', 'it renders into the outlet');
|
||||
assert.equal(find('.bye-span').text(), 'Goodbye', 'it renders into the outlet');
|
||||
});
|
||||
});
|
|
@ -0,0 +1,32 @@
|
|||
import { acceptance } from "helpers/qunit-helpers";
|
||||
import { clearCache } from 'discourse/helpers/plugin-outlet';
|
||||
|
||||
const CONNECTOR = 'javascripts/single-test/connectors/user-profile-primary/hello';
|
||||
acceptance("Plugin Outlet - Single Template", {
|
||||
setup() {
|
||||
Ember.TEMPLATES[CONNECTOR] = Ember.HTMLBars.compile(
|
||||
`
|
||||
<span class='hello-username'>{{model.username}}</span>
|
||||
<button class='hello-check-email' {{action "checkEmail" model}}></button>
|
||||
<span class='hello-email'>{{model.email}}</span>
|
||||
`
|
||||
);
|
||||
},
|
||||
|
||||
teardown() {
|
||||
delete Ember.TEMPLATES[CONNECTOR];
|
||||
clearCache();
|
||||
}
|
||||
});
|
||||
|
||||
test("Renders a template into the outlet", assert => {
|
||||
visit("/users/eviltrout");
|
||||
andThen(() => {
|
||||
assert.ok(find('.user-profile-primary-outlet.hello').length === 1, 'it has class names');
|
||||
assert.equal(find('.hello-username').text(), 'eviltrout', 'it renders into the outlet');
|
||||
});
|
||||
click('.hello-check-email');
|
||||
andThen(() => {
|
||||
assert.equal(find('.hello-email').text(), 'eviltrout@example.com', 'actions delegate properly');
|
||||
});
|
||||
});
|
|
@ -63,6 +63,10 @@ export default function() {
|
|||
}] });
|
||||
});
|
||||
|
||||
this.get(`/users/eviltrout/emails.json`, () => {
|
||||
return response({ email: 'eviltrout@example.com' });
|
||||
});
|
||||
|
||||
this.get('/users/eviltrout.json', () => {
|
||||
const json = fixturesByUrl['/users/eviltrout.json'];
|
||||
json.user.can_edit = loggedIn();
|
||||
|
|
Loading…
Reference in New Issue