UNPKG

@reportfy/tester

Version:

Lib para teste de integração usando serviço do reportfy

68 lines (54 loc) 2.9 kB
const { listTestCase } = require('../helpers/equalTest') const { getInterface } = require('../helpers/network') const { getParamsServer, execTestAndMethod, mountedSenderReport } = require('./mountedRequest') const { getConfigByKey, reportRequestSender } = require('../integration/request') const { mountedErrorPassed, logError, logInitProgram, logReportTesteCase } = require('../helpers/logs') const { replacementBody, replacementPath, replaceHeaders, replacementQuery, replacementQueryToPath, replaceAuthenticate } = require('../helpers/parseBody') /** * @function * @param element * @param result * @returns {*} */ const replacement = (element, result) => { element.body = JSON.parse(element.body) element.header = replaceAuthenticate(element, result.ConfigIntegrations || []) element.body = replacementBody(element, result.ConfigIntegrations || [], element.rules.keys || []) element.query = replacementQuery(element, result.ConfigIntegrations || [], element.rules.keys || []) element.rules.equal = replacementBody({ ...element, body: element.rules.equal || { } }, result.ConfigIntegrations || [], element.rules.keys || []) element.header = { ...replaceHeaders(element, result.ConfigIntegrations, element.rules.keys || []), ...element.header } element.path = replacementPath(element, result.ConfigIntegrations, element.rules.keys || []) element.path = replacementQueryToPath(element.query, element.path) return element } /** * @function * @param key * @param server * @returns {Promise<void>} */ exports.initTest = async ({ key, server, typeServer, accessKey, secretKey }) => { try { const network = getInterface() const result = await getConfigByKey({ key, accessKey, secretKey }) const instance = await getParamsServer(server, typeServer) logInitProgram(network) for (let i = 0; i < result.ConfigIntegrations.length; i++) { let element = replacement(result.ConfigIntegrations[i], result) result.ConfigIntegrations[i].body = result.ConfigIntegrations[i].body const { bodyResponse, passed } = await execTestAndMethod(element, instance) result.ConfigIntegrations[i].bodyResponse = bodyResponse result.ConfigIntegrations[i].report = passed mountedErrorPassed(element, passed) } const { approved, reproved } = listTestCase(result.ConfigIntegrations) const passed = (approved.length > 0 && reproved.length === 0) const reportRequest = mountedSenderReport(result, network, 'local', passed) logReportTesteCase(approved.length, reproved.length, result.ConfigIntegrations.length) await reportRequestSender(reportRequest, { key, accessKey, secretKey }) process.exit(reproved.length > 0 ? 1 : 0) } catch (err){ logError(err.message) process.exit(1) } }