Files
dc/sas/sasjs/services/admin/refreshcatalog.test.1.sas
T
dc d0bc5ae297
Lighthouse Checks / lighthouse (pull_request) Failing after 2m53s
Build / Build-and-ng-test (pull_request) Successful in 4m44s
Build / Build-and-test-development (pull_request) Failing after 5m42s
refactor: rename dc_execute to mpe_execute
The wrapper is DC specific and sits alongside mpe_assert_abort, so the mpe_
prefix marks which layer it belongs to.  File, macro name, %mend and all seven
callers updated; no dc_execute reference remains in the tree.
2026-10-27 11:18:26 +00:00

76 lines
1.7 KiB
SAS

/**
@file
@brief testing admin refreshcatalog service - admin gate + libref validation (security)
@details The service requires membership of the DC administrators
group and a well-formed libref (or none). An invalid libref aborts
the service, which shows up as a canceled child job (an aborted
service registers no webout). The test suite runs as a member of
the admin group, so the gate passes here.
<h4> SAS Macros </h4>
@li mpe_assert_abort.sas
@li mp_assert.sas
@li mpe_execute.sas
**/
%let _program=&appLoc/services/admin/refreshcatalog;
/**
* Test 1 - an invalid libref must abort the service
*/
data work.params1;
length name $32 value $1000;
name='libref';value='A.%sysevalf(3+4)B';output;
run;
%mpe_execute(&_program,
viyacontext=&defaultcontext,
inputparams=work.params1,
outref=web1,
outstatus=work.ab1,
failfast=0,
viyaresult=WEBOUT_TXT
)
%mpe_assert_abort(
desc=Macro content in libref aborts the service,
outref=web1,
msg=Invalid libref
)
/**
* Test 2 - a valid libref still refreshes the catalog (admin user)
*/
data work.params2;
length name $32 value $1000;
name='libref';value='DCTEST';output;
run;
%mpe_execute(&_program,
viyacontext=&defaultcontext,
inputparams=work.params2,
outlib=web2
)
%let msgcheck=0;
data _null_;
set web2.sasparams;
putlog (_all_)(=);
if index(msg,'Catalog Refresh Complete') then call symputx('msgcheck',1);
run;
%mp_assert(
iftrue=(&msgcheck=1),
desc=Valid libref refresh completes for admin user,
outds=work.test_results
)
/**
* dump results to the log for offline inspection
*/
data _null_;
set work.test_results;
putlog 'TEST_RESULT_LINE: ' test_result ' - ' test_description;
run;