CI: run instrumented tests on emulator; HomeScreen tests; accurate API.md - #2
Merged
Merged
Conversation
- build.yml: new `instrumented` job runs connectedDebugAndroidTest on an API 34 x86_64 emulator (reactivecircus/android-emulator-runner, KVM enabled) and uploads the report. First time these tests run anywhere. - HomeScreenTest: blueprint toggle, search by formula, empty search state, locked cards expose "Locked" and ignore taps (covers the manual checks left over from the v2.4 device smoke test). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The old API.md described APIs that never existed (a Progress entity, allTopics/userProgress/currentQuiz flows, clearError(), custom exception types). Rewritten from the current sources: content model, QuizScoring rules and constants, ProgressRepository (recordQuizResult returns XP), Room schema/DAOs/DATABASE_NAME, Hilt module, ViewModel state and behavior, Routes, screen and component signatures, theming rules. Notes which components are legacy/unused. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
First emulator run: the new HomeScreen/QuizScreen/ResultScreen tests passed; 10 failures were all in inherited tests. - ComponentsTest was placeholders (component calls commented out, tests asserting empty roots or local literals). Replaced with real tests: TopicCard locked/unlocked, XpBar level text, AnswerFeedback, multiple choice submit gating, numeric comma input, StatusChip, QuestNotFound. - AppDatabaseIntegrationTest failed to instantiate: a `= runBlocking` test ended in kotlin.test.assertNotNull (returns a value), making the test method non-void. All runBlocking tests now declare `: Unit`. - QuizResultDao multipleInserts asserted insertion order, but results are ORDER BY timestamp DESC and same-millisecond inserts tie; compare sorted. - Docs/workflow comment: CI now runs instrumented tests, not just compiles. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Follow-ups from the v2.4 review:
instrumentedjob runsconnectedDebugAndroidTeston an API 34 emulator. Until now these tests had only ever been compiled.HomeScreenTestcovers the device checks left over from the v2.4 smoke test: the Blueprint toggle, search (including by formula, plus the empty state), and locked cards announcing "Locked" and ignoring taps.API.mdrewritten from the actual code. The old version described classes and methods that don't exist.Type of change
Checklist
./gradlew assembleDebugbuilds without errors (alsoassembleDebugAndroidTest)./gradlew detektpasses with no new violations*Content.ktformat (n/a: no new topics)@Previewcomposables left in production files🤖 Generated with Claude Code