Revert Ember 2.10+ for a short while

This commit is contained in:
Robin Ward
2016-12-15 16:43:38 -05:00
parent f01f95d62d
commit 21682fd60b
101 changed files with 1273 additions and 1866 deletions
@@ -1,47 +0,0 @@
import { acceptance } from "helpers/qunit-helpers";
import { extraConnectorClass } from 'discourse/lib/plugin-connectors';
const PREFIX = "javascripts/single-test/connectors";
acceptance("Plugin Outlet - Connector Class", {
setup() {
extraConnectorClass('user-profile-primary/hello', {
actions: {
sayHello() {
this.set('hello', 'hello!');
}
}
});
extraConnectorClass('user-profile-primary/dont-render', {
shouldRender(args) {
return args.model.get('username') !== 'eviltrout';
}
});
Ember.TEMPLATES[`${PREFIX}/user-profile-primary/hello`] = Ember.HTMLBars.compile(
`<span class='hello-username'>{{model.username}}</span>
<button class='say-hello' {{action "sayHello"}}></button>
<span class='hello-result'>{{hello}}</span>`
);
Ember.TEMPLATES[`${PREFIX}/user-profile-primary/dont-render`] = Ember.HTMLBars.compile(
`I'm not rendered!`
);
},
teardown() {
delete Ember.TEMPLATES[`${PREFIX}/user-profile-primary/hello`];
delete Ember.TEMPLATES[`${PREFIX}/user-profile-primary/dont-render`];
}
});
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.dont-render').length, "doesn't render");
});
click('.say-hello');
andThen(() => {
assert.equal(find('.hello-result').text(), 'hello!', 'actions delegate properly');
});
});
@@ -1,5 +1,5 @@
import { acceptance } from "helpers/qunit-helpers";
import { clearCache } from 'discourse/lib/plugin-connectors';
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';
@@ -4,7 +4,9 @@ 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>`
`<span class='hello-username'>{{model.username}}</span>
<button class='hello-check-email' {{action "checkEmail" model}}></button>
<span class='hello-email'>{{model.email}}</span>`
);
},
@@ -19,4 +21,8 @@ test("Renders a template into the outlet", assert => {
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');
});
});
@@ -71,29 +71,27 @@ test("open advanced search", assert => {
andThen(() => assert.ok(visible('.search-advanced .search-advanced-options'), '"search-advanced-options" is visible'));
});
// these tests are screwy with the runloop
test("validate population of advanced search", assert => {
visit("/search");
fillIn('.search input.full-page-search', 'test user:admin #bug group:moderators badge:Reader tags:monkey in:likes in:private in:wiki in:bookmarks status:open after:2016-10-05 min_post_count:10');
click('.search-advanced-btn');
// test("validate population of advanced search", assert => {
// visit("/search");
// fillIn('.search input.full-page-search', 'test user:admin #bug group:moderators badge:Reader tags:monkey in:likes in:private in:wiki in:bookmarks status:open after:2016-10-05 min_post_count:10');
// click('.search-advanced-btn');
//
// andThen(() => {
// assert.ok(exists('.search-advanced-options span:contains("admin")'), 'has "admin" pre-populated');
// assert.ok(exists('.search-advanced-options .badge-category:contains("bug")'), 'has "bug" pre-populated');
// //assert.ok(exists('.search-advanced-options span:contains("moderators")'), 'has "moderators" pre-populated');
// //assert.ok(exists('.search-advanced-options span:contains("Reader")'), 'has "Reader" pre-populated');
// assert.ok(exists('.search-advanced-options .tag-chooser .tag-monkey'), 'has "monkey" pre-populated');
// assert.ok(exists('.search-advanced-options .in-likes:checked'), 'has "I liked" pre-populated');
// assert.ok(exists('.search-advanced-options .in-private:checked'), 'has "are in my messages" pre-populated');
// assert.ok(exists('.search-advanced-options .in-wiki:checked'), 'has "are wiki" pre-populated');
// assert.ok(exists('.search-advanced-options .combobox .select2-choice .select2-chosen:contains("I\'ve bookmarked")'), 'has "I\'ve bookmarked" pre-populated');
// assert.ok(exists('.search-advanced-options .combobox .select2-choice .select2-chosen:contains("are open")'), 'has "are open" pre-populated');
// assert.ok(exists('.search-advanced-options .combobox .select2-choice .select2-chosen:contains("after")'), 'has "after" pre-populated');
// assert.equal(find('.search-advanced-options #search-post-date').val(), "2016-10-05", 'has "2016-10-05" pre-populated');
// assert.equal(find('.search-advanced-options #search-min-post-count').val(), "10", 'has "10" pre-populated');
// });
// });
andThen(() => {
assert.ok(exists('.search-advanced-options span:contains("admin")'), 'has "admin" pre-populated');
assert.ok(exists('.search-advanced-options .badge-category:contains("bug")'), 'has "bug" pre-populated');
//assert.ok(exists('.search-advanced-options span:contains("moderators")'), 'has "moderators" pre-populated');
//assert.ok(exists('.search-advanced-options span:contains("Reader")'), 'has "Reader" pre-populated');
assert.ok(exists('.search-advanced-options .tag-chooser .tag-monkey'), 'has "monkey" pre-populated');
assert.ok(exists('.search-advanced-options .in-likes:checked'), 'has "I liked" pre-populated');
assert.ok(exists('.search-advanced-options .in-private:checked'), 'has "are in my messages" pre-populated');
assert.ok(exists('.search-advanced-options .in-wiki:checked'), 'has "are wiki" pre-populated');
assert.ok(exists('.search-advanced-options .combobox .select2-choice .select2-chosen:contains("I\'ve bookmarked")'), 'has "I\'ve bookmarked" pre-populated');
assert.ok(exists('.search-advanced-options .combobox .select2-choice .select2-chosen:contains("are open")'), 'has "are open" pre-populated');
assert.ok(exists('.search-advanced-options .combobox .select2-choice .select2-chosen:contains("after")'), 'has "after" pre-populated');
assert.equal(find('.search-advanced-options #search-post-date').val(), "2016-10-05", 'has "2016-10-05" pre-populated');
assert.equal(find('.search-advanced-options #search-min-post-count').val(), "10", 'has "10" pre-populated');
});
});
test("escape search term", (assert) => {
visit("/search");
@@ -20,6 +20,6 @@ test("grantableBadges", function() {
});
not(badgeNames.includes(badgeDisabled), "excludes disabled badges");
not(badgeNames.contains(badgeDisabled), "excludes disabled badges");
deepEqual(badgeNames, sortedNames, "sorts badges by name");
});
@@ -5,10 +5,8 @@ import siteFixtures from 'fixtures/site-fixtures';
import HeaderComponent from 'discourse/components/site-header';
import { forceMobile, resetMobile } from 'discourse/lib/mobile';
import { resetPluginApi } from 'discourse/lib/plugin-api';
import { clearCache as clearOutletCache, resetExtraClasses } from 'discourse/lib/plugin-connectors';
import { clearCache as clearOutletCache } from 'discourse/helpers/plugin-outlet';
import { clearHTMLCache } from 'discourse/helpers/custom-html';
import { flushMap } from 'discourse/models/store';
function currentUser() {
return Discourse.User.create(sessionFixtures['/session/current.json'].current_user);
@@ -46,7 +44,6 @@ function acceptance(name, options) {
// For now don't do scrolling stuff in Test Mode
HeaderComponent.reopen({examineDockHeader: Ember.K});
resetExtraClasses();
const siteJson = siteFixtures['site.json'].site;
if (options) {
if (options.setup) {
@@ -80,11 +77,9 @@ function acceptance(name, options) {
if (options && options.teardown) {
options.teardown.call(this);
}
flushMap();
Discourse.User.resetCurrent();
Discourse.Site.resetCurrent(Discourse.Site.create(jQuery.extend(true, {}, fixtures['site.json'].site)));
resetExtraClasses();
clearOutletCache();
clearHTMLCache();
resetPluginApi();
@@ -170,7 +170,7 @@ test("toggleParticipant", function() {
equal(postStream.get('userFilters.length'), 0, "by default no participants are toggled");
postStream.toggleParticipant(participant.username);
ok(postStream.get('userFilters').includes('eviltrout'), 'eviltrout is in the filters');
ok(postStream.get('userFilters').contains('eviltrout'), 'eviltrout is in the filters');
postStream.toggleParticipant(participant.username);
blank(postStream.get('userFilters'), "toggling the participant again removes them");
@@ -283,7 +283,7 @@ test("identity map", function() {
});
test("loadIntoIdentityMap with no data", () => {
return buildStream(1234).loadIntoIdentityMap([]).then(result => {
buildStream(1234).loadIntoIdentityMap([]).then(result => {
equal(result.length, 0, 'requesting no posts produces no posts');
});
});
@@ -291,7 +291,7 @@ test("loadIntoIdentityMap with no data", () => {
test("loadIntoIdentityMap with post ids", function() {
const postStream = buildStream(1234);
return postStream.loadIntoIdentityMap([10]).then(function() {
postStream.loadIntoIdentityMap([10]).then(function() {
present(postStream.findLoadedPost(10), "it adds the returned post to the store");
});
});
@@ -327,7 +327,7 @@ test("staging and undoing a new post", function() {
equal(stagedPost.get('topic'), topic, "it assigns the topic reference");
equal(stagedPost.get('post_number'), 2, "it is assigned the probable post_number");
present(stagedPost.get('created_at'), "it is assigned a created date");
ok(postStream.get('posts').includes(stagedPost), "the post is added to the stream");
ok(postStream.get('posts').contains(stagedPost), "the post is added to the stream");
equal(stagedPost.get('id'), -1, "the post has a magical -1 id");
// Undoing a created post (there was an error)
@@ -337,7 +337,7 @@ test("staging and undoing a new post", function() {
equal(topic.get('highest_post_number'), 1, "it reverts the highest_post_number");
equal(topic.get('posts_count'), 1, "it reverts the post count");
equal(postStream.get('filteredPostsCount'), 1, "it retains the filteredPostsCount");
ok(!postStream.get('posts').includes(stagedPost), "the post is removed from the stream");
ok(!postStream.get('posts').contains(stagedPost), "the post is removed from the stream");
ok(postStream.get('lastAppended'), original, "it doesn't consider undid post lastAppended");
});
@@ -367,7 +367,7 @@ test("staging and committing a post", function() {
ok(postStream.get('lastAppended'), original, "staging a post doesn't change the lastAppended");
postStream.commitPost(stagedPost);
ok(postStream.get('posts').includes(stagedPost), "the post is still in the stream");
ok(postStream.get('posts').contains(stagedPost), "the post is still in the stream");
ok(!postStream.get('loading'), "it is no longer loading");
equal(postStream.get('filteredPostsCount'), 2, "it increases the filteredPostsCount");
@@ -15,7 +15,7 @@ test('defaults', function() {
test('pagination support', function() {
const store = createStore();
return store.findAll('widget').then(function(rs) {
store.findAll('widget').then(function(rs) {
equal(rs.get('length'), 2);
equal(rs.get('totalRows'), 4);
ok(rs.get('loadMoreUrl'), 'has a url to load more');
@@ -36,7 +36,7 @@ test('pagination support', function() {
test('refresh support', function() {
const store = createStore();
return store.findAll('widget').then(function(rs) {
store.findAll('widget').then(function(rs) {
equal(rs.get('refreshUrl'), '/widgets?refresh=true', 'it has the refresh url');
const promise = rs.refresh();
+1 -1
View File
@@ -30,9 +30,9 @@
//= require sinon-1.7.1
//= require sinon-qunit-1.0.0
//= require helpers/qunit-helpers
//= require helpers/assertions
//= require helpers/qunit-helpers
//= require_tree ./fixtures
//= require_tree ./lib
//= require_tree .
@@ -23,7 +23,7 @@ widgetTest('listing actions', {
});
widgetTest('undo', {
template: '{{mount-widget widget="actions-summary" args=args undoPostAction=undoPostAction}}',
template: '{{mount-widget widget="actions-summary" args=args undoPostAction="undoPostAction"}}',
setup() {
this.set('args', {
actionsSummary: [
@@ -31,7 +31,7 @@ widgetTest('undo', {
]
});
this.set('undoPostAction', () => this.undid = true);
this.on('undoPostAction', () => this.undid = true);
},
test(assert) {
assert.equal(this.$('.post-actions .post-action').length, 1);