Update KMP string resource usage in TopicScreenTest, restore lifecycle-based undo clearing in bookmarks, and stabilize SyncWorkerTest to validate startup request configuration without depending on runtime Koin initialization.
Co-authored-by: Cursor <cursoragent@cursor.com>
Move test-only dependencies out of commonMain to stop androidx.test classes leaking into app runtime, which fixes missing ActivityInvoker in the test APK. Also update instrumented tests to use Compose resource APIs correctly, make navigation assertions resilient to emulator back-stack variance, and use version-catalog lifecycle testing deps where required.
Upgrade build toolchain (Gradle 8.13, AGP 8.13.0, Kotlin 2.1.20, KSP 2.1.20-1.0.32),
Compose Multiplatform 1.8.0, and all core/test/AndroidX libraries to their latest versions
compatible with Kotlin 2.1.20. Fix all resulting API breakages including Koin 4.1.0 startup,
material3-adaptive suspend navigation, JVM target consistency, and AGP managed device API changes.
Add isIncludeAndroidResources to CmpFeatureConventionPlugin so
Robolectric can discover the test manifest with ComponentActivity.
Add missing compose UI test dependencies to feature:foryou.
- Remove demo/prod flavor references from CI workflow (flavors were
removed during KMP migration)
- Replace tasks.create with tasks.register in convention plugins to fix
EagerGradleConfiguration lint error
- Remove HiltTestApplication references from screenshot and UI tests
(Hilt was replaced by Koin)
- Add Compose plugins to core:screenshot-testing for inline method
resolution
- Add androidx.navigation.testing dependency to feature:topic and
feature:interests for SavedStateHandle.toRoute
- Fix ViewModel tests in commonTest by setting up Dispatchers.Main
(bookmarks, settings)
- Uncomment TopicRoute in TopicViewModelTest SavedStateHandle setup
- Replace NavDestination.id with type-safe popUpTo<ForYouBaseRoute> in
NiaAppState (id property removed in KMP navigation)
- Rename badging golden file from prodRelease to release
- Update dependency guard baselines
- Update AGENTS.md with corrected task names
Gradle 9.0.0 has the new enforcement that Test task runs that
have sources but no tests run should fail. Without this change we get
Execution failed for task ':core:analytics:testDemoDebugUnitTest'.
> There are test sources present and no filters are applied, but the test task did not discover any tests to execute. This is likely due to a misconfiguration. Please check your test configuration. If this is not a misconfiguration, this error can be disabled by setting the 'failOnNoDiscoveredTests' property to false.
We get this because before this change AndroidCompose was always setting
isIncludeAndroidResources = true which generates a source to the test
task and in the case of :core:analytics it is the only source.
Instead of setting isIncludeAndroidResources in AndroidCompose move to
setting it in relevant build.gradle.kts files (most already had it)
* Add if state to prevent blank query.
* Create test emptySearchText_NotAddToRecentSearches
- For empty query not add in recent query list.
* Apply early return.
* assertEquals to assertNull.
Co-authored-by: Simon Marquis <contact@simon-marquis.fr>
* Import org.junit.Assert.assertNull
* Change org.junit.Assert.assertNull to kotlin.test.assertNull.
Change-Id: I60083b0b9a1dcaed84d957b49c91e5163d5659d6
* Add 'or' to prevent search when query is blank.
Change-Id: If498de05889d6d5946b1bbb1d1c10cb311bb9b52
* Create stateIsEmptyQuery_withThreeWhiteSpacesSearchQuery test.
Change-Id: I6d6e8f9fe988ca83fae484e4f2338ad6fe58b676
* Add UI logic to prevent blank text search in SearchScreen.
- Early return to do not call onSearchExplicitlyTriggered()
Change-Id: I28db284eac9059fb6f48dd718721a1fc5fdb8f7a
* Apply trim at query to remove whitespace.
Change-Id: Id349af4bb1af3d0f1c3973e6fb9e6f3e7b924d9b
* Create test stateIsEmptyQuery_withThreeWhiteSpacesAndOneLetterSearchQuery
Change-Id: Iee59f6085e4045b2e3c532f78804926290b6c6c5
* Update feature/search/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchViewModelTest.kt
Change name to emptySearchText_isNotAddedTorecentSearches()
Co-authored-by: Don Turner <dturner@users.noreply.github.com>
* Change name to searchTextWithThreeSpaces_isEmptyQuery()
Co-authored-by: Don Turner <dturner@users.noreply.github.com>
* Change name to searchTextWithThreeWhiteSpacesAndOneCharacter_isEmptyQuery()
Change-Id: I4c82b12e2c9bd4ff480e94061caf257a603e38da
* Revert "Change name to searchTextWithThreeWhiteSpacesAndOneCharacter_isEmptyQuery()"
This reverts commit e4c176598a.
* Change name to searchTextWithThreeSpacesAndOneLetter_isEmptyQuery
Co-authored-by: Don Turner <dturner@users.noreply.github.com>
* Add end curly bracket.
Change-Id: I7bd113e7b65d646f5321e34a7df2868f6e239cad
---------
Co-authored-by: Simon Marquis <contact@simon-marquis.fr>
Co-authored-by: Don Turner <dturner@users.noreply.github.com>