Skip to content

Commit 3e281f6

Browse files
Fixes ITV#212: ensure pact path is consistent between root project and sub-projects
1 parent 69bd4c3 commit 3e281f6

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

scalapact-scalatest/src/main/scala/com/itv/scalapact/ScalaPactContractWriter.scala

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@ package com.itv.scalapact
22

33
import java.io.{File, PrintWriter}
44
import java.nio.charset.StandardCharsets
5-
65
import com.itv.scalapact.model.ScalaPactMatchingRule._
76
import com.itv.scalapact.model.{ScalaPactDescriptionFinal, ScalaPactInteractionFinal, ScalaPactMatchingRule}
87
import com.itv.scalapact.shared._
98
import com.itv.scalapact.shared.json.IPactWriter
109

10+
import java.nio.file.Paths
11+
1112
private[scalapact] object ScalaPactContractWriter {
1213
def writePactContracts(outputPath: String)(implicit pactWriter: IPactWriter): ScalaPactDescriptionFinal => Unit =
1314
pactDescription => {
@@ -29,18 +30,21 @@ private[scalapact] object ScalaPactContractWriter {
2930
.map("%02x".format(_))
3031
.mkString
3132

32-
val relativePath = outputPath + "/" + simplifyName(pactDescription.consumer) + "_" + simplifyName(
33-
pactDescription.provider
34-
) + "_" + sha1 + "_tmp.json"
35-
val file = new File(relativePath)
33+
val path = Paths.get(
34+
// #212: ensure a consistent path is used between projects and sub-projects
35+
dirFile.getAbsolutePath,
36+
simplifyName(pactDescription.consumer) + "_" +
37+
simplifyName(pactDescription.provider) + "_" + sha1 + "_tmp.json"
38+
)
39+
val file = new File(path.toUri)
3640

3741
if (file.exists()) {
3842
file.delete()
3943
}
4044

4145
file.createNewFile()
4246

43-
new PrintWriter(relativePath) {
47+
new PrintWriter(file) {
4448
write(producePactJson(pactDescription))
4549
close()
4650
}

0 commit comments

Comments
 (0)