JSFiddle - React, Tailwind, and code Playground

by Fagner Brack

HTML

<script src="https://code.jquery.com/qunit/qunit-2.6.1.js"></script>
<link rel="stylesheet" href="https://code.jquery.com/qunit/qunit-2.6.1.css">
<div id="qunit"></div>
<div id="qunit-fixture"></div>

JavaScript

// Some fake proxyquire implementation, ignore this
const proxyquire = (fn, stubbedDependencies) => {
	window.require = (moduleName) => {
  	return stubbedDependencies[moduleName];
  };
  return fn;
};

window.require = (moduleName) => {
	return {
    './prefill-fields.js': (formFields, providerFields) => {
	    const getValue = require('./getValue');
      return Object.keys(formFields).reduce((accumulator, fieldName) => {
        accumulator[fieldName] = getValue(fieldName, providerFields);
        return accumulator;
      }, {});
    }
  }[moduleName];
};

QUnit.test('prefillFields(...) calls getValue(...)', (assert) => {
  assert.expect(2);
  const prefillFields = require('./prefill-fields.js');
  const prefillFieldsMocked = proxyquire(prefillFields, {
    './getValue': (formFieldLookupName, providerFieldd) => {
      assert.strictEqual(formFieldLookupName, 'fullName');
      assert.deepEqual(providerFieldd, { fullName: 'John' });
    }
  });
  prefillFieldsMocked({ fullName: 'Mike' }, { fullName: 'John' });
});