Skip to content

Commit 64aef86

Browse files
authored
Merge pull request #1917 from lwronski/config-tests
Change default home directory for tests integration and docs-test modules to avoid overriding global user config
2 parents 0592af4 + 7c58945 commit 64aef86

File tree

4 files changed

+38
-31
lines changed

4 files changed

+38
-31
lines changed

build.sc

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,14 @@ object `docs-tests` extends SbtModule with ScalaCliScalafixModule with HasTests
112112
Deps.osLib,
113113
Deps.pprint
114114
)
115-
115+
def tmpDirBase = T.persistent {
116+
PathRef(T.dest / "working-dir")
117+
}
116118
def extraEnv = T {
117-
Seq("SCLICHECK_SCALA_CLI" -> cli.standaloneLauncher().path.toString)
119+
Seq(
120+
"SCLICHECK_SCALA_CLI" -> cli.standaloneLauncher().path.toString,
121+
"SCALA_CLI_CONFIG" -> (tmpDirBase().path / "config" / "config.json").toString
122+
)
118123
}
119124
def forkEnv = super.forkEnv() ++ extraEnv()
120125

@@ -869,7 +874,8 @@ trait CliIntegration extends SbtModule with ScalaCliPublishModule with HasTests
869874
)
870875
def forkEnv = super.forkEnv() ++ Seq(
871876
"SCALA_CLI_TMP" -> tmpDirBase().path.toString,
872-
"SCALA_CLI_PRINT_STACK_TRACES" -> "1"
877+
"SCALA_CLI_PRINT_STACK_TRACES" -> "1",
878+
"SCALA_CLI_CONFIG" -> (tmpDirBase().path / "config" / "config.json").toString
873879
)
874880
private def updateRef(name: String, ref: PathRef): PathRef = {
875881
val rawPath = ref.path.toString.replace(

modules/integration/src/test/scala/scala/cli/integration/ConfigTests.scala

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,67 +9,68 @@ class ConfigTests extends ScalaCliSuite {
99
override def group: ScalaCliSuite.TestGroup = ScalaCliSuite.TestGroup.First
1010

1111
test("simple") {
12-
val homeDir = os.rel / "home"
13-
val homeEnv = Map("SCALA_CLI_HOME" -> homeDir.toString())
14-
val name = "Alex"
12+
val configFile = os.rel / "config" / "config.json"
13+
val configEnv = Map("SCALA_CLI_CONFIG" -> configFile.toString())
14+
val name = "Alex"
1515
TestInputs.empty.fromRoot { root =>
1616
val before =
17-
os.proc(TestUtil.cli, "config", "publish.user.name").call(cwd = root, env = homeEnv)
17+
os.proc(TestUtil.cli, "config", "publish.user.name").call(cwd = root, env = configEnv)
1818
expect(before.out.trim().isEmpty)
1919

20-
os.proc(TestUtil.cli, "config", "publish.user.name", name).call(cwd = root, env = homeEnv)
21-
val res = os.proc(TestUtil.cli, "config", "publish.user.name").call(cwd = root, env = homeEnv)
20+
os.proc(TestUtil.cli, "config", "publish.user.name", name).call(cwd = root, env = configEnv)
21+
val res =
22+
os.proc(TestUtil.cli, "config", "publish.user.name").call(cwd = root, env = configEnv)
2223
expect(res.out.trim() == name)
2324

2425
os.proc(TestUtil.cli, "config", "publish.user.name", "--unset").call(
2526
cwd = root,
26-
env = homeEnv
27+
env = configEnv
2728
)
2829
val after =
29-
os.proc(TestUtil.cli, "config", "publish.user.name").call(cwd = root, env = homeEnv)
30+
os.proc(TestUtil.cli, "config", "publish.user.name").call(cwd = root, env = configEnv)
3031
expect(after.out.trim().isEmpty)
3132
}
3233
}
3334

3435
test("password") {
35-
val homeDir = os.rel / "home"
36-
val homeEnv = Map("SCALA_CLI_HOME" -> homeDir.toString)
37-
val password = "1234"
38-
val key = "httpProxy.password"
36+
val configFile = os.rel / "config" / "config.json"
37+
val configEnv = Map("SCALA_CLI_CONFIG" -> configFile.toString)
38+
val password = "1234"
39+
val key = "httpProxy.password"
3940
TestInputs.empty.fromRoot { root =>
4041

4142
def emptyCheck(): Unit = {
4243
val value = os.proc(TestUtil.cli, "config", key)
43-
.call(cwd = root, env = homeEnv)
44+
.call(cwd = root, env = configEnv)
4445
expect(value.out.trim().isEmpty)
4546
}
4647

4748
def unset(): Unit =
4849
os.proc(TestUtil.cli, "config", key, "--unset")
49-
.call(cwd = root, env = homeEnv)
50+
.call(cwd = root, env = configEnv)
5051

5152
def read(): String = {
5253
val res = os.proc(TestUtil.cli, "config", key)
53-
.call(cwd = root, env = homeEnv)
54+
.call(cwd = root, env = configEnv)
5455
res.out.trim()
5556
}
5657
def readDecoded(env: Map[String, String] = Map.empty): String = {
5758
val res = os.proc(TestUtil.cli, "--power", "config", key, "--password")
58-
.call(cwd = root, env = homeEnv ++ env)
59+
.call(cwd = root, env = configEnv ++ env)
5960
res.out.trim()
6061
}
6162

6263
emptyCheck()
6364

6465
os.proc(TestUtil.cli, "config", key, s"value:$password")
65-
.call(cwd = root, env = homeEnv)
66+
.call(cwd = root, env = configEnv)
6667
expect(read() == s"value:$password")
6768
expect(readDecoded() == password)
6869
unset()
6970
emptyCheck()
7071

7172
os.proc(TestUtil.cli, "config", key, "env:MY_PASSWORD")
72-
.call(cwd = root, env = homeEnv)
73+
.call(cwd = root, env = configEnv)
7374
expect(read() == "env:MY_PASSWORD")
7475
expect(readDecoded(env = Map("MY_PASSWORD" -> password)) == password)
7576
unset()
@@ -83,7 +84,7 @@ class ConfigTests extends ScalaCliSuite {
8384
"env:MY_PASSWORD",
8485
"--password-value"
8586
)
86-
.call(cwd = root, env = Map("MY_PASSWORD" -> password) ++ homeEnv)
87+
.call(cwd = root, env = Map("MY_PASSWORD" -> password) ++ configEnv)
8788
expect(read() == s"value:$password")
8889
expect(readDecoded() == password)
8990
unset()

modules/integration/src/test/scala/scala/cli/integration/PublishSetupTests.scala

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ class PublishSetupTests extends ScalaCliSuite {
1818
private def devMail = "[email protected]"
1919
private def devUrl = "https://alex.me"
2020

21-
private def configSetup(homeDir: os.Path, root: os.Path): Unit = {
22-
val envs = Map("SCALA_CLI_HOME" -> homeDir.toString)
21+
private def configSetup(configFile: os.Path, root: os.Path): Unit = {
22+
val envs = Map("SCALA_CLI_CONFIG" -> configFile.toString)
2323
os.proc(TestUtil.cli, "--power", "config", "publish.user.name", devName)
2424
.call(cwd = root, stdout = os.Inherit, env = envs)
2525
os.proc(TestUtil.cli, "--power", "config", "publish.user.email", devMail)
@@ -46,8 +46,8 @@ class PublishSetupTests extends ScalaCliSuite {
4646
"""object Foo
4747
|""".stripMargin
4848
)
49-
private val homeDir = os.rel / "home"
50-
private val envs = Map("SCALA_CLI_HOME" -> homeDir.toString)
49+
private val configFile = os.rel / "config" / "config.json"
50+
private val envs = Map("SCALA_CLI_CONFIG" -> configFile.toString)
5151

5252
private def gitInit(dir: os.Path): Git = {
5353
val git = Git.init().setDirectory(dir.toIO).call()
@@ -99,7 +99,7 @@ class PublishSetupTests extends ScalaCliSuite {
9999
)
100100
val expectedGhSecrets = Set.empty[String]
101101
testInputs.fromRoot { root =>
102-
configSetup(root / homeDir, root)
102+
configSetup(root / configFile, root)
103103
gitInit(root / projDir)
104104
val res = os.proc(TestUtil.cli, "--power", "publish", "setup", projDir).call(
105105
cwd = root,
@@ -136,7 +136,7 @@ class PublishSetupTests extends ScalaCliSuite {
136136
val expectedGhSecrets =
137137
Set("PUBLISH_USER", "PUBLISH_PASSWORD", "PUBLISH_SECRET_KEY", "PUBLISH_SECRET_KEY_PASSWORD")
138138
testInputs.fromRoot { root =>
139-
configSetup(root / homeDir, root)
139+
configSetup(root / configFile, root)
140140
gitInit(root / projDir)
141141
val res =
142142
os.proc(TestUtil.cli, "--power", "publish", "setup", "--ci", "--dummy", projDir).call(
@@ -169,7 +169,7 @@ class PublishSetupTests extends ScalaCliSuite {
169169
)
170170
val expectedGhSecrets = Set.empty[String]
171171
testInputs.fromRoot { root =>
172-
configSetup(root / homeDir, root)
172+
configSetup(root / configFile, root)
173173
gitInit(root / projDir)
174174
val res = os.proc(
175175
TestUtil.cli,
@@ -211,7 +211,7 @@ class PublishSetupTests extends ScalaCliSuite {
211211
)
212212
val expectedGhSecrets = Set("PUBLISH_USER", "PUBLISH_PASSWORD")
213213
testInputs.fromRoot { root =>
214-
configSetup(root / homeDir, root)
214+
configSetup(root / configFile, root)
215215
gitInit(root / projDir)
216216
val res = os.proc(
217217
TestUtil.cli,

modules/integration/src/test/scala/scala/cli/integration/SipScalaTests.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ class SipScalaTests extends ScalaCliSuite {
138138

139139
test("power config turn on power features") {
140140
TestInputs.empty.fromRoot { root =>
141-
val homeEnv = Map("SCALA_CLI_HOME" -> root.toString())
141+
val homeEnv = Map("SCALA_CLI_CONFIG" -> (root / "config" / "config.json").toString())
142142
// disable power features
143143
os.proc(TestUtil.cli, "config", "power", "false").call(cwd = root, env = homeEnv).out.trim()
144144
val output = os.proc(TestUtil.cli, "package").call(

0 commit comments

Comments
 (0)