@@ -0,0 +1,50 @@
|
||||
/// <reference types="cypress" />
|
||||
|
||||
const { execSync, spawn } = require('child_process');
|
||||
const path = require('path');
|
||||
|
||||
/**
|
||||
* @type {Cypress.PluginConfig}
|
||||
*/
|
||||
module.exports = (on, config) => {
|
||||
const rootDir = path.resolve(__dirname, '..', '..', '..');
|
||||
|
||||
on('task', {
|
||||
// Kill eaglecast, reset the DB, and start the server in the background.
|
||||
resetServer({ blank = false } = {}) {
|
||||
try {
|
||||
execSync('pkill -9 eaglecast', { stdio: 'ignore' });
|
||||
} catch (e) {
|
||||
// Do nothing.
|
||||
}
|
||||
|
||||
// Run install.
|
||||
const env = blank
|
||||
? { ...process.env }
|
||||
: { ...process.env, EAGLECAST_ADMIN_USER: 'admin', EAGLECAST_ADMIN_PASSWORD: 'eaglecast' };
|
||||
|
||||
execSync('./eaglecast --install --yes', { cwd: rootDir, env, stdio: 'ignore' });
|
||||
|
||||
// Replace the first SMTP block with local MailHog.
|
||||
const smtpSQL = "UPDATE settings SET value = (SELECT jsonb_agg(smtp || jsonb_build_object('host','localhost','port',1025,'tls_type','none')) FROM jsonb_array_elements(value) AS smtp) WHERE key = 'smtp';";
|
||||
try {
|
||||
execSync('docker exec -i eaglecast_db psql -U eaglecast -d eaglecast', {
|
||||
input: smtpSQL,
|
||||
stdio: ['pipe', 'ignore', 'ignore'],
|
||||
});
|
||||
} catch (e) {
|
||||
// Do nothing.
|
||||
}
|
||||
|
||||
// Start the server.
|
||||
const child = spawn('./eaglecast', [], {
|
||||
cwd: rootDir,
|
||||
detached: true,
|
||||
stdio: 'ignore',
|
||||
});
|
||||
child.unref();
|
||||
|
||||
return null;
|
||||
},
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user