Skip to content

Commit 86c3eb7

Browse files
committed
StepReport.envSnapShotInPostmanEnvJSONFormat()
Signed-off-by: Gopal S Akshintala <[email protected]>
1 parent f0391cc commit 86c3eb7

File tree

3 files changed

+30
-8
lines changed

3 files changed

+30
-8
lines changed

src/main/kotlin/com/salesforce/revoman/ReVoman.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,11 @@ object ReVoman {
121121
logger.info { "***** Executing Step: $step *****" }
122122
val itemWithRegex = step.rawPMStep
123123
val preStepReport =
124-
StepReport(step, Right(TxnInfo(httpMsg = itemWithRegex.request.toHttpRequest())))
124+
StepReport(
125+
step,
126+
Right(TxnInfo(httpMsg = itemWithRegex.request.toHttpRequest())),
127+
moshiReVoman = moshiReVoman,
128+
)
125129
pm.info = Info(step.name)
126130
pm.currentStepReport = preStepReport
127131
pm.rundown =

src/main/kotlin/com/salesforce/revoman/output/report/StepReport.kt

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ package com.salesforce.revoman.output.report
99

1010
import arrow.core.Either.Left
1111
import arrow.core.Either.Right
12+
import com.salesforce.revoman.internal.postman.template.Environment.Companion.fromMap
1213
import com.salesforce.revoman.output.ExeType
1314
import com.salesforce.revoman.output.postman.PostmanEnvironment
1415
import com.salesforce.revoman.output.report.TxnInfo.Companion.uriPathContains
@@ -23,6 +24,7 @@ import io.vavr.control.Either.left
2324
import io.vavr.control.Either.right
2425
import org.http4k.core.Request
2526
import org.http4k.core.Response
27+
import org.http4k.format.ConfigurableMoshi
2628

2729
data class StepReport
2830
internal constructor(
@@ -31,20 +33,23 @@ internal constructor(
3133
@JvmField val preHookFailure: PreHookFailure? = null,
3234
@JvmField val responseInfo: Either<out ResponseFailure, TxnInfo<Response>>? = null,
3335
@JvmField val postHookFailure: PostHookFailure? = null,
34-
@JvmField val envSnapshot: PostmanEnvironment<Any?> = PostmanEnvironment()
36+
private val moshiReVoman: ConfigurableMoshi,
37+
@JvmField val envSnapshot: PostmanEnvironment<Any?> = PostmanEnvironment(),
3538
) {
3639
internal constructor(
3740
step: Step,
3841
requestInfo: arrow.core.Either<RequestFailure, TxnInfo<Request>>? = null,
3942
preHookFailure: PreHookFailure? = null,
4043
responseInfo: arrow.core.Either<ResponseFailure, TxnInfo<Response>>? = null,
41-
postHookFailure: PostHookFailure? = null
44+
postHookFailure: PostHookFailure? = null,
45+
moshiReVoman: ConfigurableMoshi,
4246
) : this(
4347
step,
4448
requestInfo?.toVavr(),
4549
preHookFailure,
4650
responseInfo?.toVavr(),
4751
postHookFailure,
52+
moshiReVoman,
4853
)
4954

5055
@JvmField
@@ -60,6 +65,11 @@ internal constructor(
6065
@JvmField
6166
val isHttpStatusSuccessful: Boolean = failure?.fold({ it !is PostHookFailure }, { true }) != true
6267

68+
@get:JvmName("envSnapShotInPostmanEnvJSONFormat")
69+
val envSnapShotInPostmanEnvJSONFormat: String by lazy {
70+
moshiReVoman.prettify(moshiReVoman.asFormatString(fromMap(envSnapshot, moshiReVoman)))
71+
}
72+
6373
companion object {
6474
private fun failure(
6575
requestInfo: Either<out ExeFailure, TxnInfo<Request>>? = null,
@@ -110,7 +120,7 @@ internal constructor(
110120
@JvmStatic
111121
fun Either<out RequestFailure, TxnInfo<Request>>?.containsHeader(
112122
key: String,
113-
value: String
123+
value: String,
114124
): Boolean = this?.fold({ false }, { it.containsHeader(key, value) }) ?: false
115125
}
116126

src/test/kotlin/com/salesforce/revoman/output/report/StepReportTest.kt

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import com.salesforce.revoman.internal.postman.template.Url
1515
import com.salesforce.revoman.output.report.failure.HookFailure.PostHookFailure
1616
import com.salesforce.revoman.output.report.failure.RequestFailure.HttpRequestFailure
1717
import io.kotest.matchers.shouldBe
18+
import io.mockk.mockk
1819
import org.http4k.core.Method.POST
1920
import org.http4k.core.Response
2021
import org.http4k.core.Status.Companion.BAD_REQUEST
@@ -29,7 +30,11 @@ class StepReportTest {
2930
Request(method = POST.toString(), url = Url("https://overfullstack.github.io/"))
3031
val requestInfo = TxnInfo(String::class.java, "fakeRequest", rawRequest.toHttpRequest())
3132
val stepReportSuccess =
32-
StepReport(Step("1.3.7", Item(request = rawRequest)), Right(requestInfo))
33+
StepReport(
34+
Step("1.3.7", Item(request = rawRequest)),
35+
Right(requestInfo),
36+
moshiReVoman = mockk(),
37+
)
3338
println(stepReportSuccess)
3439
stepReportSuccess.isHttpStatusSuccessful shouldBe true
3540
}
@@ -42,7 +47,8 @@ class StepReportTest {
4247
val stepReportHttpFailure =
4348
StepReport(
4449
Step("1.3.7", Item(request = rawRequest)),
45-
Left(HttpRequestFailure(RuntimeException("fakeRTE"), requestInfo))
50+
Left(HttpRequestFailure(RuntimeException("fakeRTE"), requestInfo)),
51+
moshiReVoman = mockk(),
4652
)
4753
println(stepReportHttpFailure)
4854
stepReportHttpFailure.isHttpStatusSuccessful shouldBe false
@@ -60,7 +66,8 @@ class StepReportTest {
6066
Step("", Item(request = rawRequest)),
6167
Right(requestInfo),
6268
null,
63-
Right(badResponseInfo)
69+
Right(badResponseInfo),
70+
moshiReVoman = mockk(),
6471
)
6572
println(stepReportBadRequest)
6673
stepReportBadRequest.isHttpStatusSuccessful shouldBe false
@@ -78,7 +85,8 @@ class StepReportTest {
7885
Right(requestInfo),
7986
null,
8087
Right(responseInfo),
81-
PostHookFailure(RuntimeException("fakeRTE"))
88+
PostHookFailure(RuntimeException("fakeRTE")),
89+
mockk(),
8290
)
8391
println(stepReportPostHookFailure)
8492
stepReportPostHookFailure.isHttpStatusSuccessful shouldBe true

0 commit comments

Comments
 (0)