Files
dc/sas/mocks/sasjs/services/public/getchangeinfo.js
T
hermes ee52bb8967
Build / Build-and-ng-test (pull_request) Successful in 5m28s
Lighthouse Checks / lighthouse (pull_request) Successful in 21m25s
Build / Build-and-test-development (pull_request) Failing after 33m34s
feat: functional JS mocks
2026-08-27 17:21:01 +01:00

69 lines
3.2 KiB
JavaScript

const nodePath = require('path')
let appLoc = nodePath.join(..._program.split('services')[0].split('/'))
const sasjsRoot = nodePath.resolve(weboutPath, '..', '..', '..')
const driveRoot = nodePath.resolve(sasjsRoot, 'drive')
const dcLibref = 'DC_JSLIB'
const dataDir = nodePath.resolve(driveRoot, 'files', appLoc, 'data', dcLibref)
eval(fs.readFileSync(nodePath.resolve(driveRoot, 'files', appLoc, 'services', 'dcMockUtils.js'), 'utf8'))
const loadTableData = makeTableLoader(dataDir)
// ─── Parse input: frontend sends SASControlTable with TABLE column ───────────
const _sctRow = fetchTable('SASControlTable')[0] || {}
const tableId = _sctRow.TABLE || _sctRow.table || ''
// ─── Load submit info from MPE_SUBMIT ────────────────────────────────────────
let jsparams = []
if (tableId) {
const submitData = loadTableData('MPE_SUBMIT')
if (submitData && submitData.rows) {
const row = submitData.rows.find(r => r.TABLE_ID === tableId)
if (row) {
const baseTable = row.BASE_LIB + '.' + row.BASE_DS
const submittedOn = new Date(row.SUBMITTED_ON_DTTM * 1000)
const pad = n => String(n).padStart(2, '0')
const submittedOnStr = submittedOn.getFullYear() + '-' + pad(submittedOn.getMonth()+1) + '-' + pad(submittedOn.getDate()) + ' ' +
pad(submittedOn.getHours()) + ':' + pad(submittedOn.getMinutes()) + ':' + pad(submittedOn.getSeconds())
jsparams = [{
TABLE_ID: row.TABLE_ID,
REVIEW_STATUS_ID: row.SUBMIT_STATUS_CD,
BASE_LIB: row.BASE_LIB,
BASE_DS: row.BASE_DS,
SUBMITTED_BY_NM: row.SUBMITTED_BY_NM,
SUBMITTED_ON: row.SUBMITTED_ON_DTTM,
SUBMITTED_REASON_TXT: row.SUBMITTED_REASON_TXT || '',
INPUT_OBS: row.INPUT_OBS,
INPUT_VARS: row.INPUT_VARS,
NUM_OF_APPROVALS_REQUIRED: row.NUM_OF_APPROVALS_REQUIRED,
NUM_OF_APPROVALS_REMAINING: row.NUM_OF_APPROVALS_REMAINING,
REVIEWED_BY_NM: row.REVIEWED_BY_NM || '',
REVIEWED_ON: row.REVIEWED_ON_DTTM,
TABLE_NM: baseTable,
BASE_TABLE: baseTable,
REVIEWED_ON_DTTM: row.REVIEWED_ON_DTTM
? new Date(row.REVIEWED_ON_DTTM * 1000).toISOString().replace('T',' ').replace(/\.\d+Z$/, '')
: '.',
SUBMITTED_ON_DTTM: submittedOnStr,
LIB_ENGINE: 'V9',
ALLOW_RESTORE: 'NO'
}]
}
}
}
_webout = JSON.stringify({
SYSDATE: '26SEP22', SYSTIME: '08:43', jsparams,
_DEBUG: '', _METAUSER: 'sasdemo@SAS', _METAPERSON: 'sasdemo',
_PROGRAM: _program, AUTOEXEC: '', MF_GETUSER: 'sasdemo',
SYSCC: '0', SYSENCODING: 'utf-8', SYSERRORTEXT: '',
SYSHOSTNAME: 'sasjs-server', SYSPROCESSID: '0',
SYSPROCESSMODE: 'Stored Program', SYSPROCESSNAME: '',
SYSJOBID: '0', SYSSCPL: 'LINUX', SYSSITE: '123',
SYSUSERID: 'sasdemo', SYSVLONG: '9.04.01M7P080520',
SYSWARNINGTEXT: '', END_DTTM: new Date().toISOString(), MEMSIZE: '0KB'
})