upload-test-manual
Version:
CLI tool untuk mengolah file CSV dan upload ke ReportPortal
56 lines (49 loc) • 1.91 kB
JavaScript
require('dotenv').config();
const path = require('path');
module.exports = (csvFileName = '', customConfig = {}) => {
// Validasi environment variables
const requiredEnvVars = ['RP_ENDPOINT', 'RP_PROJECT', 'RP_TOKEN'];
const missingVars = requiredEnvVars.filter(varName => !process.env[varName]);
if (missingVars.length > 0) {
throw new Error(`Missing required environment variables: ${missingVars.join(', ')}`);
}
// Generate base name dari filename
const baseName = csvFileName
? path.basename(csvFileName, path.extname(csvFileName))
.replace(/[^a-zA-Z0-9]/g, ' ')
.trim()
.substring(0, 50)
: 'Unnamed';
// Deteksi test type dari nama file
const testType = csvFileName.includes('UI') ? 'UI Test' :
csvFileName.includes('API') ? 'API Test' : 'Test';
// Konfigurasi nama bulan dan tahun
const currentDate = new Date();
const monthNames = ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"];
const currentMonth = monthNames[currentDate.getMonth()];
const currentYear = currentDate.getFullYear();
// Konfigurasi default
const defaultConfig = {
endpoint: process.env.RP_ENDPOINT,
project: process.env.RP_PROJECT,
token: process.env.RP_TOKEN,
//launchName: `${testType} - Manual - ${currentMonth} ${currentYear}`,
launchName: `${testType} - Manual`,
launchTags: ['csv-import'],
mode: 'DEFAULT',
description: `Test results imported from CSV file: ${csvFileName}`,
timeout: 30000,
headers: {},
attributes: {
source: 'csv-importer',
environment: process.env.ENV || 'staging',
execution_type: 'manual'
},
testItemExtra: {},
fieldMappings: {},
...customConfig
};
return {
reportPortal: defaultConfig
};
};