Skip to content
This repository was archived by the owner on Aug 21, 2025. It is now read-only.

Commit b1c962b

Browse files
gaeljwjbwheatley
authored andcommitted
feat: 🚀 Ability to choose the host and port on which mock server runs via ScalaPactOptions
1 parent 54b250f commit b1c962b

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

‎scalapact-scalatest/src/main/scala/com/itv/scalapact/ScalaPactMock.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,13 @@ private[scalapact] object ScalaPactMock {
3333
val interactionManager: InteractionManager = new InteractionManager
3434

3535
val protocol = pactDescription.serverSslContextName.fold("http")(_ => "https")
36-
val host = "localhost"
36+
val host = pactDescription.options.host
37+
val serverPort = pactDescription.options.port
3738
val outputPath = pactDescription.options.outputPath
3839
val scalaPactSettings = ScalaPactSettings(
3940
protocol = Option(protocol),
4041
host = Option(host),
41-
port = Option(0), // `0` means "use any available port".
42+
port = Option(serverPort),
4243
localPactFilePath = None,
4344
strictMode = Option(strict),
4445
clientTimeout = None,

‎scalapact-scalatest/src/main/scala/com/itv/scalapact/model/ScalaPactOptions.scala

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,19 @@ package com.itv.scalapact.model
22

33
import scala.util.Properties
44

5-
final case class ScalaPactOptions(writePactFiles: Boolean, outputPath: String)
5+
final case class ScalaPactOptions(writePactFiles: Boolean, outputPath: String, host: String, port: Int)
66

77
object ScalaPactOptions {
8+
89
val DefaultOptions: ScalaPactOptions =
9-
ScalaPactOptions(writePactFiles = true, outputPath = Properties.envOrElse("pact.rootDir", "target/pacts"))
10+
ScalaPactOptions(
11+
writePactFiles = true,
12+
outputPath = Properties.envOrElse("pact.rootDir", "target/pacts"),
13+
host = "localhost",
14+
port = 0 // `0` means "use any available port".
15+
)
16+
17+
def apply(writePactFiles: Boolean, outputPath: String): ScalaPactOptions =
18+
ScalaPactOptions(writePactFiles, outputPath, DefaultOptions.host, DefaultOptions.port)
19+
1020
}

0 commit comments

Comments
 (0)