Skip to content
No description or website provided.
JavaScript Shell
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Sencha Test Suite Growl Notifier

This script will notify SpecRunner.html to re-run the test suite if it detects any source code changes.


  • Node v0.2.4
  • Socket.IO
  • Growl
  • growlnotifier
  • afplay (for playing sounds)


Install growl and growlnotify - growlnotify is in the 'Extras' folder of the Growl dmg.

Run the following commands. Please note this installs node into $HOME/local - if you already have node installed please see for manual installation

git clone
cd GrowlNotify

Edit the 'srcDir' variable at the top of autotest.js

Paste the following code before the </head> tag in ScriptRunner.html

<!-- Growl notifier. Served from a CDN to minimise hassle -->
<script src=""></script>         
<script type="text/javascript">
    if( {
        var socket = new io.Socket('localhost', {port: 3001});
        var socketReconnect;

        socket.on('connect', function(){ 
            console.log('Socket.IO Connected OK');
            if(socketReconnect) {
                window.location.reload(); // Re-run the tests if we have to re-connect
            } else {
                socket.send("RUNNING"); // Sending the 'Running Tests' command                        
        }) ;
        socket.on('message', function(msg){
            var shouldReload = msg.match(/updated/i);
            if(shouldReload) { // There's been a change in the source
        socket.on('disconnect', function() { 
            console.log('Socket.IO Disconnected')
            // Try to reconnect every 5 seconds to the backend
            socketReconnect = setInterval(function() {
                console.log('Attempting Socket.IO reconnect');
            }, 5000)

        SenchaReporter.prototype._renderResults = SenchaReporter.prototype.renderResults;
        SenchaReporter.prototype.renderResults = function(runner) {
            var fails = jasmine.getEnv().currentRunner().results().failedCount;
            if(socket) socket.send("ERRORS: " + fails)
    } else {
        console.log("The Socket.IO script was not loaded")
<!-- End of Growl notifier -->

How to use

Something went wrong with that request. Please try again.