Fix randomly failing JS acceptance tests.

This commit is contained in:
Guo Xiang Tan
2017-12-20 11:04:23 +08:00
parent 7aa56fc9d9
commit 87c334c063
2 changed files with 15 additions and 9 deletions

View File

@ -3,14 +3,18 @@ import { createWidget } from 'discourse/widgets/widget';
import { h } from 'virtual-dom'; import { h } from 'virtual-dom';
import DiscourseURL from 'discourse/lib/url'; import DiscourseURL from 'discourse/lib/url';
const searchData = { const searchData = {};
loading: false,
results: {}, export function initSearchData() {
noResults: false, searchData.loading = false;
term: undefined, searchData.results = {};
typeFilter: null, searchData.noResults = false;
invalidTerm: false searchData.term = undefined;
}; searchData.typeFilter = null;
searchData.invalidTerm = false;
}
initSearchData();
// Helps with debouncing and cancelling promises // Helps with debouncing and cancelling promises
const SearchHelper = { const SearchHelper = {
@ -161,7 +165,7 @@ export default createWidget('search-menu', {
html(attrs) { html(attrs) {
if (searchData.contextEnabled !== attrs.contextEnabled) { if (searchData.contextEnabled !== attrs.contextEnabled) {
searchData.contextEnabled = attrs.contextEnabled; searchData.contextEnabled = attrs.contextEnabled;
this.triggerSearch(); if (searchData.term) this.triggerSearch();
} else { } else {
searchData.contextEnabled = attrs.contextEnabled; searchData.contextEnabled = attrs.contextEnabled;
} }

View File

@ -8,6 +8,7 @@ import { clearCache as clearOutletCache, resetExtraClasses } from 'discourse/lib
import { clearHTMLCache } from 'discourse/helpers/custom-html'; import { clearHTMLCache } from 'discourse/helpers/custom-html';
import { flushMap } from 'discourse/models/store'; import { flushMap } from 'discourse/models/store';
import { clearRewrites } from 'discourse/lib/url'; import { clearRewrites } from 'discourse/lib/url';
import { initSearchData } from 'discourse/widgets/search-menu';
export function currentUser() { export function currentUser() {
return Discourse.User.create(sessionFixtures['/session/current.json'].current_user); return Discourse.User.create(sessionFixtures['/session/current.json'].current_user);
@ -97,6 +98,7 @@ export function acceptance(name, options) {
clearHTMLCache(); clearHTMLCache();
resetPluginApi(); resetPluginApi();
clearRewrites(); clearRewrites();
initSearchData();
Discourse.reset(); Discourse.reset();
} }
}); });