From 4e95cc8cf4a9d3c7097d7dfe76fe3f3b520b2ec5 Mon Sep 17 00:00:00 2001 From: Ivan Fernandez Calvo Date: Thu, 4 Jul 2019 10:30:12 +0200 Subject: [PATCH] fix: throw an error when GitHub API call fails --- src/test/groovy/GithubApiCallStepTests.groovy | 27 ++++++++++++++----- vars/githubApiCall.groovy | 2 +- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/test/groovy/GithubApiCallStepTests.groovy b/src/test/groovy/GithubApiCallStepTests.groovy index 27d8d98fe..8a37d4d79 100644 --- a/src/test/groovy/GithubApiCallStepTests.groovy +++ b/src/test/groovy/GithubApiCallStepTests.groovy @@ -122,15 +122,23 @@ class GithubApiCallStepTests extends BasePipelineTest { void testRequestError() throws Exception { helper.registerAllowedMethod("httpRequest", [Map.class], { return """{ + "Code": "404", "message": "Not Found", "documentation_url": "https://developer.github.com/v3" }""" }) def script = loadScript("vars/githubApiCall.groovy") - def ret = script.call(token: "dummy", url: "http://error") + try { + script.call(token: "dummy", url: "http://error") + } catch(e) { + println e.toString() + } printCallStack() - assertTrue(ret instanceof Map) - assertJobStatusSuccess() + assertTrue(helper.callStack.findAll { call -> + call.methodName == "error" + }.any { call -> + callArgsToString(call).contains('makeGithubApiCall: The REST API call http://error return the message : Not Found') + }) } @Test @@ -139,10 +147,17 @@ class GithubApiCallStepTests extends BasePipelineTest { throw new Exception('Failure') }) def script = loadScript("vars/githubApiCall.groovy") - def ret = script.call(token: "dummy", url: "http://error") + try{ + script.call(token: "dummy", url: "http://error") + } catch(e) { + println e.toString() + } printCallStack() - assertTrue(ret.message == "java.lang.Exception: Failure") - assertJobStatusSuccess() + assertTrue(helper.callStack.findAll { call -> + call.methodName == "error" + }.any { call -> + callArgsToString(call).contains('makeGithubApiCall: The REST API call http://error return the message : java.lang.Exception: Failure') + }) } @Test diff --git a/vars/githubApiCall.groovy b/vars/githubApiCall.groovy index d80fe73fd..0cc73ad6f 100644 --- a/vars/githubApiCall.groovy +++ b/vars/githubApiCall.groovy @@ -53,7 +53,7 @@ def call(Map params = [:]){ if(ret instanceof List && ret.size() == 0){ log(level: 'WARN', text: "makeGithubApiCall: The REST API call ${url} return 0 elements") } else if(ret instanceof Map && ret.containsKey('message')){ - log(level: 'WARN', text: "makeGithubApiCall: The REST API call ${url} return the message : ${ret.message}") + error("makeGithubApiCall: The REST API call ${url} return the message : ${ret.message}") } return ret }