@@ -31,13 +31,15 @@ class CliTest {
3131 val sharedBuildFile = File (projectDir, " shared/build.gradle.kts" )
3232 val desktopBuildFile = File (projectDir, " desktopApp/build.gradle.kts" )
3333 val rootBuildFile = File (projectDir, " build.gradle.kts" )
34+ val readmeFile = File (projectDir, " README.md" )
3435 val settingsFile = File (projectDir, " settings.gradle.kts" )
3536 val appFile = File (projectDir, " shared/src/commonMain/kotlin/com/composables/demo/App.kt" )
3637 val desktopMainFile = File (projectDir, " desktopApp/src/jvmMain/kotlin/com/composables/demo/main.kt" )
3738
3839 assertThat(projectDir.isDirectory, " Generated project directory should exist" ).isTrue()
3940 assertThat(sharedBuildFile.exists(), " Generated shared module build file should exist" ).isTrue()
4041 assertThat(desktopBuildFile.exists(), " Generated desktop module build file should exist" ).isTrue()
42+ assertThat(readmeFile.exists(), " Generated README should exist" ).isTrue()
4143 assertThat(settingsFile.exists(), " Generated settings file should exist" ).isTrue()
4244 assertThat(appFile.exists(), " App source should be moved to the requested package" ).isTrue()
4345 assertThat(desktopMainFile.exists(), " Desktop launcher source should exist" ).isTrue()
@@ -50,6 +52,7 @@ class CliTest {
5052 val sharedBuildContent = sharedBuildFile.readText()
5153 val desktopBuildContent = desktopBuildFile.readText()
5254 val rootBuildContent = rootBuildFile.readText()
55+ val readmeContent = readmeFile.readText()
5356 val settingsContent = settingsFile.readText()
5457 val appContent = appFile.readText()
5558
@@ -72,6 +75,11 @@ class CliTest {
7275 assertThat(settingsContent).contains(""" rootProject.name = "newApp"""" )
7376 assertThat(settingsContent).contains(""" include(":shared")""" )
7477 assertThat(settingsContent).contains(""" include(":desktopApp")""" )
78+ assertThat(readmeContent).contains(" # newApp" )
79+ assertThat(readmeContent).contains(" `./gradlew :desktopApp:hotRunJvm --auto`" )
80+ assertThat(readmeContent).doesNotContain(" :androidApp:installDebug" )
81+ assertThat(readmeContent).doesNotContain(" iosApp/iosApp.xcodeproj" )
82+ assertThat(readmeContent).doesNotContain(" :webApp:wasmJsBrowserDevelopmentRun" )
7583
7684 assertThat(appContent).contains(" package com.composables.demo" )
7785 assertThat(appContent).contains(" import androidx.compose.ui.tooling.preview.Preview" )
@@ -111,16 +119,19 @@ class CliTest {
111119 val projectDir = File (targetDir, " newApp" )
112120 val sharedBuildFile = File (projectDir, " sharedUi/build.gradle.kts" )
113121 val androidAppBuildFile = File (projectDir, " androidApp/build.gradle.kts" )
122+ val readmeFile = File (projectDir, " README.md" )
114123 val settingsFile = File (projectDir, " settings.gradle.kts" )
115124 val mainActivityFile = File (projectDir, " androidApp/src/main/kotlin/com/composables/demo/MainActivity.kt" )
116125
117126 assertThat(sharedBuildFile).exists()
118127 assertThat(androidAppBuildFile).exists()
128+ assertThat(readmeFile).exists()
119129 assertThat(mainActivityFile).exists()
120130 assertThat(File (projectDir, " sharedUi/src/androidMain" ).exists()).isFalse()
121131
122132 val sharedBuildContent = sharedBuildFile.readText()
123133 val androidAppBuildContent = androidAppBuildFile.readText()
134+ val readmeContent = readmeFile.readText()
124135 val settingsContent = settingsFile.readText()
125136
126137 assertThat(sharedBuildContent).contains(" alias(libs.plugins.android.kotlin.multiplatform.library)" )
@@ -138,6 +149,15 @@ class CliTest {
138149 assertThat(settingsContent).contains(""" include(":androidApp")""" )
139150 assertThat(settingsContent).contains(""" include(":desktopApp")""" )
140151 assertThat(settingsContent).contains(""" include(":webApp")""" )
152+
153+ assertThat(readmeContent).contains(" # newApp" )
154+ assertThat(readmeContent).contains(" `./gradlew :desktopApp:hotRunJvm --auto`" )
155+ assertThat(readmeContent).contains(" `./gradlew :androidApp:installDebug`" )
156+ assertThat(readmeContent).contains(" `iosApp/iosApp.xcodeproj`" )
157+ assertThat(readmeContent).contains(" `./gradlew :webApp:wasmJsBrowserDevelopmentRun`" )
158+ assertThat(readmeContent.indexOf(" - Android:" ) > readmeContent.indexOf(" - JVM:" )).isTrue()
159+ assertThat(readmeContent.indexOf(" - iOS:" ) > readmeContent.indexOf(" - Android install from terminal:" )).isTrue()
160+ assertThat(readmeContent.indexOf(" - Wasm:" ) > readmeContent.indexOf(" - iOS:" )).isTrue()
141161 }
142162 }
143163
@@ -173,6 +193,7 @@ class CliTest {
173193 val rootBuildContent = File (projectDir, " build.gradle.kts" ).readText()
174194 val sharedBuildContent = File (projectDir, " shared/build.gradle.kts" ).readText()
175195 val webAppBuildContent = File (projectDir, " webApp/build.gradle.kts" ).readText()
196+ val readmeContent = File (projectDir, " README.md" ).readText()
176197
177198 assertThat(rootBuildContent).contains(" wasmJsBrowserDistribution" )
178199 assertThat(rootBuildContent).contains(" wasm-preloads" )
@@ -184,6 +205,9 @@ class CliTest {
184205 assertThat(sharedBuildContent).doesNotContain(" js {" )
185206 assertThat(webAppBuildContent).contains(" implementation(libs.compose.ui)" )
186207 assertThat(webAppBuildContent).contains(" wasmJs {" )
208+ assertThat(readmeContent).contains(" # newApp" )
209+ assertThat(readmeContent).contains(" `./gradlew :webApp:wasmJsBrowserDevelopmentRun`" )
210+ assertThat(readmeContent).doesNotContain(" :desktopApp:hotRunJvm --auto" )
187211 }
188212 }
189213
@@ -206,7 +230,7 @@ class CliTest {
206230 assertThat(content.countOccurrences(" alias(libs.plugins.jetbrains.kotlin.multiplatform) apply false" )).isEqualTo(1 )
207231 assertThat(content.countOccurrences(" alias(libs.plugins.jetbrains.compose) apply false" )).isEqualTo(1 )
208232 assertThat(content.countOccurrences(" alias(libs.plugins.jetbrains.compose.compiler) apply false" )).isEqualTo(1 )
209- assertThat(content.countOccurrences (" alias(libs.plugins.jetbrains.compose.hotreload) apply false " )).isEqualTo( 1 )
233+ assertThat(content).doesNotContain (" alias(libs.plugins.jetbrains.compose.hotreload)" )
210234 assertThat(content.countOccurrences(" alias(libs.plugins.android.application) apply false" )).isEqualTo(1 )
211235 assertThat(content.countOccurrences(" alias(libs.plugins.android.kotlin.multiplatform.library) apply false" )).isEqualTo(1 )
212236 }
@@ -240,7 +264,7 @@ class CliTest {
240264 assertThat(content.countOccurrences(""" android-application = { id = "com.android.application", version.ref = "agp" }""" )).isEqualTo(1 )
241265 assertThat(content.countOccurrences(""" android-kotlin-multiplatform-library = { id = "com.android.kotlin.multiplatform.library", version.ref = "agp" }""" )).isEqualTo(1 )
242266 assertThat(content).contains(""" compose = "1.11.1"""" )
243- assertThat(content).contains( """ composeHotReload = "1.1.0" "" " )
267+ assertThat(content).doesNotContain( " composeHotReload" )
244268 assertThat(content).contains(""" composablesUi = "0.1.0"""" )
245269 }
246270 }
0 commit comments