describe('server command', function() {
  it('should launch the application server');
  it('should lint the app files');
});

@@ -1,124 +1,1227 @@
-describe('server command', function() %7B%0A  it('should launch the application server');%0A  it('should lint the app files');
+import path from 'path';%0Aimport %7B execSync as run, spawn %7D from 'child_process';%0Aimport tmp from 'tmp';%0A%0Alet bin = path.join(__dirname, '..', '..', '..', '..', 'bin');%0Alet denaliPath = path.join(bin, 'denali');%0A%0Adescribe('server command', function() %7B%0A%0A  before(function() %7B%0A    this.timeout(0);%0A    this.tmpdir = tmp.dirSync(%7B unsafeCleanup: true %7D).name;%0A    run(%60$%7B denaliPath %7D new foobar%60, %7B cwd: this.tmpdir %7D);%0A  %7D);%0A%0A  it('should launch the application server', function() %7B%0A    this.timeout(0);%0A    return new Promise((resolve, reject) =%3E %7B%0A      let server = spawn(denaliPath, %5B 'server' %5D, %7B%0A        cwd: path.join(this.tmpdir, 'foobar')%0A      %7D);%0A      let buffer = '';%0A      server.on('error', reject);%0A      server.on('close', reject);%0A      server.stdout.on('data', (output) =%3E %7B%0A        buffer += output;%0A      %7D);%0A      server.stderr.on('data', reject);%0A      let timeout;%0A      let interval = setInterval(() =%3E %7B%0A        if (buffer.indexOf('foobar@0.0.1 server up') %3E -1) %7B%0A          clearInterval(interval);%0A          clearTimeout(timeout);%0A          resolve();%0A        %7D%0A      %7D, 100);%0A      timeout = setTimeout(() =%3E %7B%0A        clearInterval(interval);%0A        reject();%0A      %7D, 10000);%0A    %7D);%0A  %7D);%0A
 %0A%7D);

add basic smoke test for server command