JSFiddle - React, Tailwind, and code Playground

HTML

<script src="http://code.jquery.com/qunit/qunit-1.11.0.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/qunit/qunit-1.11.0.css">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.4/underscore-min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.0.0/backbone-min.js"></script>
<div id="qunit"></div>

JavaScript

/* Backbone code
*******************/
var events = _.clone(Backbone.Events);
var Company = Backbone.Model.extend({});

var Companies = Backbone.Collection.extend({

    initialize: function() {
        var self = this;

        events.on("userSet:company", function(company) {
            self.selectedCompany = company;
            
            // Simulate an AJAX request
            setTimeout(function() {
                events.trigger("fetched:departments", [1, 2, 3]);
            }, 500);
        });
    },
    
    selectedCompany: ''
});
    

   setTimeout(function(){
/* Tests
*******************/
QUnit.config.autostart = false;
QUnit.config.testTimeOut = 1000;

asyncTest('Some test that needs companies.', function() {
    function getCompanies() {
        var companies = new Companies();
        ok(1);
        start();
    }
    setTimeout(getCompanies, 500);
});

asyncTest('Some other async test that triggers a listener in companies.', function() {   
    var companies = new Companies();
    
    events.trigger("userSet:company", { name: "Acme", id: 1 });
    
    stop();
    events.on('fetched:departments', function(response) {
        console.log(response);
        deepEqual(response, [1, 2, 3]);
        start();
    });
});

}, 4000);