UNPKG

respond-framework

Version:
115 lines (113 loc) 2.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var fs = require("fs"); var path = require("path"); var _child_process = require("child_process"); var _findTests = require("./helpers/findTests.js"); var _writeTestFile = require("./helpers/writeTestFile.js"); var _openFile = require("./helpers/openFile.js"); var _fetch = require("../../../../helpers/fetch.js"); var _default = exports.default = { call(req, context) { this.body = req.body; this.req = req; this.context = context; const { method, args } = req.body; return this[method](...(0, _fetch.argsOut)(args)); }, findTests(params) { try { const tests = (0, _findTests.default)(params); return { tests }; } catch (e) { console.error(e); return { error: 'invalid-test-file', params: { reason: e.message } }; } }, writeTestFile({ name, branch = '', settings, events }) { const filename = (0, _writeTestFile.default)(name, branch, settings, events); (0, _openFile.default)(filename); return { filename, success: true }; }, deleteTestFile(filename) { fs.rmSync(path.resolve(filename)); return { filename, success: true }; }, openFile(filename) { (0, _openFile.default)(filename); return { success: true }; }, runTestInTerminal(filename) { const dir = path.resolve(); const command = `osascript -e 'tell app "Terminal" to do script "cd ${dir} && npm test ${filename}"'`; const isMac = process.platform === 'darwin'; if (!isMac) { const error = `Currently test Terminals can only be run on Mac. If you would like this feature on your OS, please provide a PR with the equivalent of this Mac command: ${command}`; console.error(error); return { success: false, error }; } (0, _child_process.execSync)(command); return { success: true }; }, // Wallaby Extension getWallabyChromeExtensionCode() { const filename = path.resolve('respond/wallaby/extension.js'); const extension = fs.readFileSync(filename, 'utf-8'); return { extension }; }, openEventsFile({ namespace }) { (0, _openFile.default)('events/' + namespace + '.js'); return { success: true }; }, runTest({ filename, index, delay }) { const projectDir = path.resolve(); const completeFilename = projectDir + '/' + filename; const test = (0, _findTests.findTest)(completeFilename); this.context.io.sockets.emit('wallaby', { test, index, delay }); } };