1package mill.integration
2
3import mill.testkit.UtestIntegrationTestSuite
4
5import utest._
6
7object YamlConfigTasksTests extends UtestIntegrationTestSuite {
8 val tests: Tests = Tests {
9 test - integrationTest { tester =>
10 val res = tester.eval(("-k", "__.compile"))
11
12 assert(!res.isSuccess)
13
14 assert(res.err.contains("[error] build.mill.yaml:2:16"))
15 assert(res.err.contains("scalaVersionn: []"))
16 assert(res.err.contains(" ^"))
17 assert(res.err.contains(
18 "key \"scalaVersionn\" does not override any task, did you mean \"scalaVersion\"?"
19 ))
20 assert(res.err.replace('\\', '/').contains("[error] test/package.mill.yaml:2:25"))
21 assert(res.err.contains("scalaVersionWrongInner: []"))
22 assert(res.err.contains(" ^"))
23 assert(res.err.contains("key \"scalaVersionWrongInner\" does not override any task"))
24
25 tester.modifyFile(
26 tester.workspacePath / "build.mill.yaml",
27 _.replace("scalaVersionn", "scalaVersion")
28 )
29 tester.modifyFile(
30 tester.workspacePath / "test/package.mill.yaml",
31 _.replace("scalaVersionWrongInner", "scalaVersion")
32 )
33
34 val res2 = tester.eval(("-k", "__.compile"))
35
36 assert(res2.err.contains("[error] build.mill.yaml:2:15"))
37 assert(res2.err.contains("scalaVersion: []"))
38 assert(res2.err.contains(" ^"))
39 assert(
40 res2.err.contains("Failed de-serializing config override: expected string got sequence")
41 )
42 assert(res2.err.replace('\\', '/').contains("[error] test/package.mill.yaml:2:15"))
43
44 tester.modifyFile(
45 tester.workspacePath / "build.mill.yaml",
46 _.replace("scalaVersion", "#scalaVersion")
47 )
48 tester.modifyFile(
49 tester.workspacePath / "test/package.mill.yaml",
50 _.replace("scalaVersion", "#scalaVersion")
51 )
52
53 val res3 = tester.eval(("-k", "__.compile"))
54
55 assert(res3.err.contains("scalaVersion configuration missing in build.mill.yaml"))
56 assert(res3.err.contains("test.scalaVersion configuration missing in test/package.mill.yaml"))
57 }
58 }
59}
60