Skip to content

Commit

Permalink
feat: 🚀 Ability to choose the host and port on which mock server runs…
Browse files Browse the repository at this point in the history
… via ScalaPactOptions
  • Loading branch information
gaeljw committed Nov 1, 2021
1 parent 54b250f commit 5b3dc07
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,13 @@ private[scalapact] object ScalaPactMock {
val interactionManager: InteractionManager = new InteractionManager

val protocol = pactDescription.serverSslContextName.fold("http")(_ => "https")
val host = "localhost"
val host = pactDescription.options.host
val serverPort = pactDescription.options.port
val outputPath = pactDescription.options.outputPath
val scalaPactSettings = ScalaPactSettings(
protocol = Option(protocol),
host = Option(host),
port = Option(0), // `0` means "use any available port".
port = Option(serverPort),
localPactFilePath = None,
strictMode = Option(strict),
clientTimeout = None,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,19 @@ package com.itv.scalapact.model

import scala.util.Properties

final case class ScalaPactOptions(writePactFiles: Boolean, outputPath: String)
final case class ScalaPactOptions(writePactFiles: Boolean, outputPath: String, host: String, port: Int)

object ScalaPactOptions {

val DefaultOptions: ScalaPactOptions =
ScalaPactOptions(writePactFiles = true, outputPath = Properties.envOrElse("pact.rootDir", "target/pacts"))
ScalaPactOptions(
writePactFiles = true,
outputPath = Properties.envOrElse("pact.rootDir", "target/pacts"),
host = "localhost",
port = 0 // `0` means "use any available port".
)

def apply(writePactFiles: Boolean, outputPath: String): ScalaPactOptions =
ScalaPactOptions(writePactFiles, outputPath, DefaultOptions.host, DefaultOptions.port)

}

0 comments on commit 5b3dc07

Please sign in to comment.