diff --git a/src/testFixtures/kotlin/org/domaindrivenarchitecture/provs/test/TestSetup.kt b/src/testFixtures/kotlin/org/domaindrivenarchitecture/provs/test/TestSetup.kt index 4ce00b1..046cfd9 100644 --- a/src/testFixtures/kotlin/org/domaindrivenarchitecture/provs/test/TestSetup.kt +++ b/src/testFixtures/kotlin/org/domaindrivenarchitecture/provs/test/TestSetup.kt @@ -12,14 +12,21 @@ val testDockerWithSudo = ("true" != System.getProperty("testdockerwithoutsudo")? const val defaultTestContainerName = "provs_test" +private lateinit var prov: Prov + fun defaultTestContainer(startMode: ContainerStartMode = ContainerStartMode.USE_RUNNING_ELSE_CREATE): Prov { + if (!::prov.isInitialized) { prov = initDefaultTestContainer(startMode) } + return prov +} + +private fun initDefaultTestContainer(startMode: ContainerStartMode): Prov { val image = UbuntuPlusUser() - val prov = testLocal() - if (!prov.dockerImageExists(image.imageName(), testDockerWithSudo)) { - prov.dockerProvideImage(image, sudo = testDockerWithSudo) + val localProv = testLocal() + if (!localProv.dockerImageExists(image.imageName(), testDockerWithSudo)) { + localProv.dockerProvideImage(image, sudo = testDockerWithSudo) } - return Prov.newInstance( + val containerProv = Prov.newInstance( ContainerUbuntuHostProcessor( defaultTestContainerName, startMode = startMode, @@ -28,6 +35,13 @@ fun defaultTestContainer(startMode: ContainerStartMode = ContainerStartMode.USE_ ), progressType = ProgressType.NONE ) + + containerProv.sh(""" + sudo apt-get update + sudo apt-get upgrade -qqq + """.trimIndent()) + + return containerProv } fun testLocal(): Prov {