JSFiddle - React, Tailwind, and code Playground

JavaScript

MockUp.XMLHttpRequest = (function( undefined ) {
   var OriginalXMLHttpRequest = XMLHttpRequest;

   var aoMatchers = [];
   var bEnabled = false;
   var strDefaultResponseType = '';

   var createMockUp = function() {
      return function() {
         var oXhr = new OriginalXMLHttpRequest();

         var oPublic = this;
         var oPrivate = {};

         oPrivate.method = '';
         oPrivate.url = '';
         oPrivate.async = '';
         oPrivate.user = null;
         oPrivate.password = null;
         oPrivate.requestHeaders = {};
         oPrivate.data = null;
         oPrivate.responseHeaders = {};

         oPrivate.requestMatches = function( oMatcher ) {            
            // ... matchers to return false

            return true;
         };

         oPrivate.setMatchedResponse = function( oMatcher ) {
            var nContentLength = 0;
            var strHeader;

            if( oMatcher.response )
            {
               oPublic.reponse = oMatcher.response;
            }

            if( oMatcher.responseType )
            {
               oPublic.responseType = oMatcher.responseType;
            }
            else
            {
               oPublic.responseType = strDefaultResponseType;
            }

            if( oPublic.responseType === 'json' )
            {
               oPublic.responseText = JSON.stringify( oMatcher.response );
            }

            if( oMatcher.responseText )
            {
               oPublic.responseText = oMatcher.responseText;
               nContentLength = oPublic.responseText.length;
            }

            if( oMatcher.responseXML )
            {
               oPublic.responseXML = oMatcher.responseXML;
            }

            oPrivate.responseHeaders = oPrivate.createDefaultResponseHeaders( nContentLength );

            if( oMatcher.responseHeaders )
            {
               for( strHeader in oMatcher.responseHeaders )
               {
                 ...