Skip to content

Commit

Permalink
fix: adding (and fixing) tests for ms_* macro suite
Browse files Browse the repository at this point in the history
  • Loading branch information
munja committed Apr 21, 2022
1 parent 6b25749 commit 63bf00e
Show file tree
Hide file tree
Showing 7 changed files with 117 additions and 23 deletions.
10 changes: 2 additions & 8 deletions sasjs/sasjsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@
},
{
"name": "server",
"serverUrl": "https://sas.analytium.co.uk:5000",
"serverUrl": "https://sas.analytium.co.uk:5006",
"serverType": "SASJS",
"httpsAgentOptions": {
"allowInsecureRequests": false
Expand All @@ -74,13 +74,7 @@
"macroFolders": [
"server",
"tests/serveronly"
],
"programFolders": [],
"binaryFolders": [],
"deployConfig": {
"deployServicePack": true,
"deployScripts": []
}
]
},
{
"name": "docsonly",
Expand Down
7 changes: 6 additions & 1 deletion server/ms_createuser.sas
Original file line number Diff line number Diff line change
Expand Up @@ -20,19 +20,24 @@
@param [in] isadmin= (false) Set to true to give the user admin rights
@param [in] displayName= (0) Set a friendly name (spaces & special characters
are ok). If not provided, username will be used instead.
@param [in] mdebug= (0) Set to 1 to enable DEBUG messages
@param [out] outds= (work.ms_createuser) This output dataset will contain the
values from the JSON response (such as the id of the new user)
|ID:best.|DISPLAYNAME:$8.|USERNAME:$8.|ISACTIVE:best.|ISADMIN:best.|
|---|---|---|---|---|
|`6 `|`New User `|`newuser `|`1 `|`0 `|
@param [in] mdebug= (0) Set to 1 to enable DEBUG messages
<h4> SAS Macros </h4>
@li mf_getuniquefileref.sas
@li mf_getuniquelibref.sas
@li mp_abort.sas
<h4> Related Files </h4>
@li ms_createuser.test.sas
@li ms_getusers.sas
**/

%macro ms_createuser(username,password
Expand Down
10 changes: 8 additions & 2 deletions server/ms_getusers.sas
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
/**
@file
@brief Fetches the list of users from SASjs Server
@details Fetches the list of users from SASjs Server.
@details Fetches the list of users from SASjs Server and writes them to an
output dataset.
Example:
%ms_getusers(outds=userlist)
@param [in] mdebug= (0) Set to 1 to enable DEBUG messages
@param [out] outds= (work.ms_getusers) This output dataset will contain the
list of user accounts. Format:
|DISPLAYNAME:$18.|USERNAME:$10.|ID:best.|
Expand All @@ -17,13 +19,17 @@
|`Ivor Townsend `|`ivor `|`4`|
|`New User `|`newuser `|`5`|
@param [in] mdebug= (0) Set to 1 to enable DEBUG messages
<h4> SAS Macros </h4>
@li mf_getuniquefileref.sas
@li mf_getuniquelibref.sas
@li mp_abort.sas
<h4> Related Files </h4>
@li ms_createuser.sas
@li ms_getusers.test.sas
**/

%macro ms_getusers(
Expand Down
50 changes: 50 additions & 0 deletions tests/serveronly/ms_createuser.test.sas
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
/**
@file
@brief Testing ms_createuser.sas macro
<h4> SAS Macros </h4>
@li mf_getuniquename.sas
@li mp_assert.sas
@li mp_assertscope.sas
@li ms_createuser.sas
@li ms_getusers.sas
**/

%let user=%substr(%mf_getuniquename(),1,8);

%mp_assertscope(SNAPSHOT)
%ms_createuser(&user,passwrd,outds=test1,mdebug=&sasjs_mdebug)
%mp_assertscope(COMPARE
,ignorelist=MCLIB0_JADP1LEN MCLIB0_JADPNUM MCLIB0_JADVLEN
)

%let id=0;
data _null_;
set work.test1;
call symputx('id',id);
run;
%mp_assert(
iftrue=(&id>0),
desc=Checking that user was created with an ID,
outds=work.test_results
)

/* double check by querying the list of users */
%ms_getusers(outds=work.test2)
%let checkid=0;
data _null_;
set work.test2;
where username="&user";
call symputx('checkid',id);
run;
%mp_assert(
iftrue=(&checkid=&id),
desc=Checking that fetched user exists and has the same ID,
outds=work.test_results
)





23 changes: 23 additions & 0 deletions tests/serveronly/ms_getusers.test.sas
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
/**
@file
@brief Testing ms_getusers.sas macro
<h4> SAS Macros </h4>
@li ms_getusers.sas
@li mp_assertdsobs.sas
@li mp_assertscope.sas
**/


%mp_assertscope(SNAPSHOT)
%ms_getusers(outds=work.test1,mdebug=&sasjs_mdebug)
%mp_assertscope(COMPARE
,ignorelist=MCLIB0_JADP1LEN MCLIB0_JADPNUM MCLIB0_JADVLEN
)

%mp_assertdsobs(work.test1,test=ATLEAST 1)




33 changes: 23 additions & 10 deletions tests/serveronly/ms_runstp.test.sas
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,31 @@
@brief Testing ms_runstp.sas macro
<h4> SAS Macros </h4>
@li ms_runstp.sas
@li mf_getuniquename.sas
@li mp_assert.sas
@li mp_assertscope.sas
@li ms_createfile.sas
@li ms_runstp.sas
**/

/* first, create an STP to run */
filename stpcode temp;
data _null_;
file stpcode;
put '%put hello world;';
run;

options mprint;
%let fname=%mf_getuniquename();

%ms_createfile(/sasjs/tests/&fname..sas
,inref=stpcode
,mdebug=1
)

%mp_assertscope(SNAPSHOT)
%ms_runstp(/Public/app/frs/allan/services/common/appinit
%ms_runstp(/sasjs/tests/&fname
,debug=131
,outref=weboot
)
Expand All @@ -24,20 +41,16 @@ data _null_;
putlog _infile_;
run;

data work.httpheaders;
set webeen.httpheaders;
call symputx('test1',content_type);
run;

%let test1=0;
data work.log;
set webeen.log;
put (_all_)(=);
if _n_>10 then stop;
if _n_>10 then call symputx('test1',1);
run;

%mp_assert(
iftrue=("&test1"="application/json"),
desc=Checking line was created,
iftrue=("&test1"="1"),
desc=Checking log was returned,
outds=work.test_results
)

Expand Down
7 changes: 5 additions & 2 deletions tests/testinit.sas
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,19 @@
/* set defaults */
%mp_init()

%global _debug;
%global _debug sasjs_mdebug;

%let sasjs_mdebug=0;

%macro loglevel();
%if "&_debug"="2477" or "&_debug"="fields,log,trace" %then %do;
%put debug mode activated;
options mprint mprintnest;
%let sasjs_mdebug=1;
%end;
%mend loglevel;

%loglevel()

%put Initialised &_program;
%put _all_;
%put _all_;

0 comments on commit 63bf00e

Please sign in to comment.