@@ -177,20 +177,27 @@ api_factory() {
177177test_factory () {
178178 for TEST_CASE in $@ ; do
179179 API_ERROR=0
180- echo " ${BOLD} Testing Case: \" $TEST_CASE \" $ {RESET}"
180+ echo " ${BOLD} Testing Case:$ {RESET} $TEST_CASE "
181181 echo_v " ${BOLD} Description: ${RESET} $( jq -r " .testCases.$TEST_CASE .description" $FILE ) "
182182 echo_v " ${BOLD} Action: ${RESET} $( jq -r " .testCases.$TEST_CASE .method //\" GET\" | ascii_upcase" $FILE ) $( jq -r " .testCases.$TEST_CASE .path" $FILE ) "
183183 call_api $TEST_CASE
184184 if [[ $API_ERROR == 1 ]]; then
185- return
185+ continue
186+ fi
187+ if [[ -z $( jq -r " .testCases.$TEST_CASE .expect? | select(. !=null)" $FILE ) ]]; then
188+ tput cuf 2
189+ echo " No test cases found"
190+ echo " "
191+ echo " "
192+ continue
186193 fi
187194 tput cuf 2
188- echo " ${BOLD}${ UNDERLINE} a. Checking condition for header${RESET} "
195+ echo " ${UNDERLINE} a. Checking condition for header${RESET} "
189196 test_runner $TEST_CASE " header" " $RESPONSE_HEADER "
190197 echo " "
191198 echo " "
192199 tput cuf 2
193- echo " ${BOLD}${ UNDERLINE} b. Checking condition for body${RESET} "
200+ echo " ${UNDERLINE} b. Checking condition for body${RESET} "
194201 test_runner $TEST_CASE " body" " $RESPONSE_BODY "
195202
196203 echo " "
@@ -206,13 +213,13 @@ test_runner() {
206213 fi
207214 tput cuf 4
208215 if [[ $test == " contains" ]]; then
209- echo " ${BOLD} Checking contains comparision${RESET} "
216+ echo " Checking contains comparision${RESET} "
210217 contains " $TEST_SCENARIO " " $3 "
211218 elif [[ $test == " eq" ]]; then
212- echo " ${BOLD} Checking equality comparision${RESET} "
219+ echo " Checking equality comparision${RESET} "
213220 check_eq " $TEST_SCENARIO " " $3 "
214221 else
215- echo " ${BOLD} Checking has key comparision${RESET} "
222+ echo " Checking has key comparision${RESET} "
216223 has_key " $TEST_SCENARIO " " $3 "
217224 fi
218225 done
@@ -222,13 +229,13 @@ contains() {
222229 tput cuf 6
223230 local check=$( jq --argjson a " $1 " --argjson b " $2 " -n ' $a | select(. != null) | $b | contains($a)' )
224231 if [[ $check == " true" ]]; then
225- echo " ${BOLD }${GREEN } Check Passed${RESET} "
232+ echo " ${GREEN }${BOLD } Check Passed${RESET} "
226233 else
227- echo " ${BOLD }${RED } Check Failed${RESET} "
234+ echo " ${RED }${BOLD } Check Failed${RESET} "
228235 echo " EXPECTED:"
229236 echo " ${RED} $1 ${RESET} "
230237 echo " GOT:"
231- echo " ${GREEN} $2 ${RESET} "
238+ echo " ${GREEN}${BOLD} $ 2${RESET} "
232239 fi
233240}
234241
@@ -252,27 +259,27 @@ has_key() {
252259 fi
253260 done
254261 if [[ $FOUND == 0 ]]; then
255- echo " ${BOLD }${RED } Check Failed${RESET} "
262+ echo " ${RED }${BOLD } Check Failed${RESET} "
256263 echo " CANNOT FIND KEY:"
257264 echo " ${RED} $path ${RESET} "
258265 return
259266 fi
260267 done
261- echo " ${BOLD }${GREEN } Check Passed${RESET} "
268+ echo " ${GREEN }${BOLD } Check Passed${RESET} "
262269}
263270
264271check_eq () {
265272 tput cuf 6
266273 local check=$( jq --argjson a " $1 " --argjson b " $2 " -n ' def post_recurse(f): def r: (f | select(. != null) | r), .; r; def post_recurse: post_recurse(.[]?); ($a | (post_recurse | arrays) |= sort) as $a | ($b | (post_recurse | arrays) |= sort) as $b | $a == $b' )
267274 if [[ $check == " true" ]]; then
268- echo " ${BOLD }${GREEN } Check Passed${RESET} "
275+ echo " ${GREEN }${BOLD } Check Passed${RESET} "
269276 else
270277 tput cuf 2
271- echo " ${BOLD }${RED } Check Failed${RESET} "
278+ echo " ${RED }${BOLD } Check Failed${RESET} "
272279 echo " EXPECTED:"
273280 echo " ${RED} $1 ${RESET} "
274281 echo " GOT:"
275- echo " ${GREEN} $2 ${RESET} "
282+ echo " ${GREEN}${BOLD} $ 2${RESET} "
276283 fi
277284}
278285
0 commit comments