DEV: Import pretender instead of global server var (#8996)

* DEV: Remove server global test variable

* Delete yarn-error.log

* prettier and some eslint fixes

* add global server variable back for plugins

* rename imported server to pretender

* prettier

* support plugin server. usage

* Export pretender as named

* Prettier

* change default pretender export

* fix bad import

* Use pretender() and original default export

* export new Pretender as default

* fix accidental change

* WIP testing

* add pretend handlers in correct location

* move more stuff into the correct pretender

* Consolidated more pretenders

* comment out another bad test

* fix user acceptance tests

* commented out bad test

* fixed another composer server stub

* fix more tests

* fixed tag test pretender

* Fix admin email test

* removed another draft handler

* add back test

* fix and uncomment another test

* remove test that is not useful

* remove commented out lines

* reapply handlers between every test

* no need to re-stub requests now :)

* cleanup from review

* more cleanup
This commit is contained in:
Mark VanLandingham
2020-03-02 13:24:31 -06:00
committed by GitHub
parent fedd8e3e3a
commit 176aa0ac7d
30 changed files with 1050 additions and 1035 deletions

View File

@ -1,5 +1,4 @@
/*global document, sinon, QUnit, Logster */
//= require env
//= require jquery.debug
//= require jquery.ui.widget
@ -77,7 +76,7 @@ if (window.Logster) {
window.Logster = { enabled: false };
}
var pretender = require("helpers/create-pretender", null, null, false),
var createPretender = require("helpers/create-pretender", null, null, false),
fixtures = require("fixtures/site-fixtures", null, null, false).default,
flushMap = require("discourse/models/store", null, null, false).flushMap,
ScrollingDOMMethods = require("discourse/mixins/scrolling", null, null, false)
@ -102,13 +101,32 @@ function resetSite(siteSettings, extras) {
}
QUnit.testStart(function(ctx) {
server = pretender.default();
server = createPretender.default;
createPretender.applyDefaultHandlers(server);
server.handlers = []
server.prepareBody = function(body) {
if (body && typeof body === "object") {
return JSON.stringify(body);
}
return body;
};
server.unhandledRequest = function(verb, path) {
const error =
"Unhandled request in test environment: " + path + " (" + verb + ")";
window.console.error(error);
throw error;
};
server.checkPassthrough = request =>
request.requestHeaders["Discourse-Script"];
if (ctx.module.startsWith(acceptanceModulePrefix)) {
var helper = {
parsePostData: pretender.parsePostData,
response: pretender.response,
success: pretender.success
parsePostData: createPretender.parsePostData,
response: createPretender.response,
success: createPretender.success
};
applyPretender(
@ -153,10 +171,6 @@ QUnit.testDone(function() {
$(".modal-backdrop").remove();
flushMap();
server.shutdown();
window.server = null;
// ensures any event not removed is not leaking between tests
// most likely in intialisers, other places (controller, component...)
// should be fixed in code