Skip to content

Instantly share code, notes, and snippets.

@EdyVision
Last active July 8, 2019 00:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save EdyVision/e31159941f03e93c55cd3dfd7f1d1a34 to your computer and use it in GitHub Desktop.
Save EdyVision/e31159941f03e93c55cd3dfd7f1d1a34 to your computer and use it in GitHub Desktop.
Serverless Test Bootstrapping File
/* eslint-disable no-undef */
const { spawn } = require('child_process');
const slsOfflineTestConfig = require('./support/slsOfflineTestConfig');
let slsOfflineProcess;
before(function(done) {
// increase mocha timeout for this hook to allow sls offline to start
this.timeout(30000);
console.log('[Tests Bootstrap] Start');
startSlsOffline(function(err) {
if (err) {
return done(err);
}
console.log('[Tests Bootstrap] Done');
done();
});
});
after(function() {
console.log('[Tests Teardown] Start');
stopSlsOffline();
console.log('[Tests Teardown] Done');
});
// Helper functions
function startSlsOffline(done) {
slsOfflineProcess = spawn('sls', [
'offline',
'start',
'--noAuth',
'--port',
slsOfflineTestConfig.getSlsOfflinePort()
]);
console.log(
`Serverless: Offline started with PID : ${slsOfflineProcess.pid}`
);
slsOfflineProcess.stdout.on('data', data => {
if (data.includes('Offline listening on')) {
console.log(data.toString().trim());
done();
}
});
slsOfflineProcess.stderr.on('data', errData => {
console.log(`Error starting Serverless Offline:\n${errData}`);
done(errData);
});
}
function stopSlsOffline() {
slsOfflineProcess.kill();
console.log('Serverless Offline stopped');
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment