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() {
|
function buildConnectorCache() {
|
||||||
_connectorCache = {};
|
_connectorCache = {};
|
||||||
_rawCache = {};
|
_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', () => {
|
this.get('/users/eviltrout.json', () => {
|
||||||
const json = fixturesByUrl['/users/eviltrout.json'];
|
const json = fixturesByUrl['/users/eviltrout.json'];
|
||||||
json.user.can_edit = loggedIn();
|
json.user.can_edit = loggedIn();
|
||||||
|
|
Loading…
Reference in New Issue