@@ -44,138 +44,145 @@ class ApiPropagationTest : FunSpec({
4444}) {
4545 companion object {
4646
47- private fun TestScope.project () = gradleKtsProjectTest(testCase.name.testName.replaceNonAlphaNumeric()) {
47+ private fun TestScope.project () =
48+ gradleKtsProjectTest(
49+ projectName = " multi-module project" ,
50+ testProjectPath = testCase.descriptor.slashSeparatedPath(),
51+ ) {
4852
49- settingsGradleKts + = """
50- include(
51- ":project-kotlin-lib1",
52- ":project-kotlin-lib2",
53- ":project-kotlin-app",
54-
55- ":project-aggregate",
56- )
57- """ .trimIndent()
58-
59- buildGradleKts = """
60- plugins {
61- kotlin("jvm") version embeddedKotlinVersion apply false
62- }
63- """ .trimIndent()
53+ settingsGradleKts + = """
54+ include(
55+ ":project-kotlin-lib1",
56+ ":project-kotlin-lib2",
57+ ":project-kotlin-app",
58+
59+ ":project-aggregate",
60+ )
61+ """ .trimIndent()
6462
65- dir(" project-kotlin-lib1" ) {
6663 buildGradleKts = """
67- plugins {
68- kotlin("jvm")
69- id("dev.adamko.dev-publish") version "+"
70- `maven-publish`
71- }
72-
73- group = "project.kotlin.lib1"
74- version = "1.2.3"
75-
76- publishing {
77- publications {
78- create<MavenPublication>("mavenJava") {
79- from(components["java"])
80- }
64+ plugins {
65+ kotlin("jvm") version embeddedKotlinVersion apply false
8166 }
82- }
8367 """ .trimIndent()
8468
85- createKotlinFile(
86- " src/main/kotlin/KotlinLib1Class.kt" , """
87- class KotlinLib1Class {
88- fun name() = "project.kotlin.lib1"
69+ dir(" project-kotlin-lib1" ) {
70+ buildGradleKts = """
71+ plugins {
72+ kotlin("jvm")
73+ id("dev.adamko.dev-publish") version "+"
74+ `maven-publish`
75+ }
76+
77+ group = "project.kotlin.lib1"
78+ version = "1.2.3"
79+
80+ publishing {
81+ publications {
82+ create<MavenPublication>("mavenJava") {
83+ from(components["java"])
84+ }
85+ }
8986 }
9087 """ .trimIndent()
91- )
92- }
9388
94- dir(" project-kotlin-lib2" ) {
95- buildGradleKts = """
96- plugins {
97- kotlin("jvm")
98- id("dev.adamko.dev-publish") version "+"
99- `maven-publish`
100- }
101-
102- dependencies {
103- devPublicationApi(project(":project-kotlin-lib1"))
104- }
105-
106- group = "project.kotlin.lib2"
107- version = "9.0.1"
108-
109- publishing {
110- publications {
111- create<MavenPublication>("mavenJava") {
112- from(components["java"])
89+ createKotlinFile(
90+ " src/main/kotlin/KotlinLib1Class.kt" ,
91+ """
92+ class KotlinLib1Class {
93+ fun name() = "project.kotlin.lib1"
11394 }
114- }
115- }
116- """ .trimIndent()
95+ """ .trimIndent()
96+ )
97+ }
11798
118- createKotlinFile(
119- " src/main/kotlin/KotlinLib2Class.kt" , """
120- class KotlinLib2Class {
121- fun name() = "project.kotlin.lib2"
99+ dir(" project-kotlin-lib2" ) {
100+ buildGradleKts = """
101+ plugins {
102+ kotlin("jvm")
103+ id("dev.adamko.dev-publish") version "+"
104+ `maven-publish`
105+ }
106+
107+ dependencies {
108+ devPublicationApi(project(":project-kotlin-lib1"))
109+ }
110+
111+ group = "project.kotlin.lib2"
112+ version = "9.0.1"
113+
114+ publishing {
115+ publications {
116+ create<MavenPublication>("mavenJava") {
117+ from(components["java"])
118+ }
119+ }
122120 }
123121 """ .trimIndent()
124- )
125- }
126122
127- dir(" project-kotlin-app" ) {
128- buildGradleKts = """
129- plugins {
130- kotlin("jvm")
131- id("dev.adamko.dev-publish") version "+"
132- `maven-publish`
133- }
134-
135- group = "project.kotlin.app"
136- version = "9.9.9"
137-
138- dependencies {
139- implementation(project(":project-kotlin-lib1"))
140- implementation(project(":project-kotlin-lib2"))
141-
142- // don't need lib1 dependency, it's exposed as api() by lib2
143- //devPublication(project(":project-kotlin-lib1"))
144- devPublicationApi(project(":project-kotlin-lib2"))
145- }
146-
147- publishing {
148- publications {
149- create<MavenPublication>("mavenJava") {
150- from(components["java"])
123+ createKotlinFile(
124+ " src/main/kotlin/KotlinLib2Class.kt" ,
125+ """
126+ class KotlinLib2Class {
127+ fun name() = "project.kotlin.lib2"
151128 }
152- }
153- }
154- """ .trimIndent()
129+ """ .trimIndent()
130+ )
131+ }
155132
156- createKotlinFile(
157- " src/main/kotlin/KotlinNoDevPublishClass.kt" , """
158- class KotlinApp {
159- fun app() = "x"
133+ dir(" project-kotlin-app" ) {
134+ buildGradleKts = """
135+ plugins {
136+ kotlin("jvm")
137+ id("dev.adamko.dev-publish") version "+"
138+ `maven-publish`
139+ }
140+
141+ group = "project.kotlin.app"
142+ version = "9.9.9"
143+
144+ dependencies {
145+ implementation(project(":project-kotlin-lib1"))
146+ implementation(project(":project-kotlin-lib2"))
147+
148+ // don't need lib1 dependency, it's exposed as api() by lib2
149+ //devPublication(project(":project-kotlin-lib1"))
150+ devPublicationApi(project(":project-kotlin-lib2"))
151+ }
152+
153+ publishing {
154+ publications {
155+ create<MavenPublication>("mavenJava") {
156+ from(components["java"])
157+ }
158+ }
160159 }
161160 """ .trimIndent()
162- )
163- }
164161
165- dir(" project-aggregate" ) {
166- buildGradleKts = """
167- plugins {
168- id("dev.adamko.dev-publish") version "+"
169- }
170-
171- group = "project.kotlin.aggregate"
172-
173- dependencies {
174- devPublication(project(":project-kotlin-app"))
175- }
176- """ .trimIndent()
162+ createKotlinFile(
163+ " src/main/kotlin/KotlinNoDevPublishClass.kt" ,
164+ """
165+ class KotlinApp {
166+ fun app() = "x"
167+ }
168+ """ .trimIndent()
169+ )
170+ }
171+
172+ dir(" project-aggregate" ) {
173+ buildGradleKts = """
174+ plugins {
175+ id("dev.adamko.dev-publish") version "+"
176+ }
177+
178+ group = "project.kotlin.aggregate"
179+
180+ dependencies {
181+ devPublication(project(":project-kotlin-app"))
182+ }
183+ """ .trimIndent()
184+ }
177185 }
178- }
179186
180187 @Language(" TEXT" )
181188 private val ExpectedDevRepoTree = """
0 commit comments