docs: 同步 AGENTS.md 文档,反映纯 Android 项目结构
- 更新所有层级 AGENTS.md 中的模块描述(:app / :core) - 移除 KMP/iOS 相关引用,统一为纯 Android + Jetpack Compose - 同步构建命令和测试路径 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
e1345cc071
commit
2028897ce3
20
AGENTS.md
20
AGENTS.md
@ -3,14 +3,14 @@
|
||||
# YaYa
|
||||
|
||||
## Purpose
|
||||
YaYa 是一款基于 Kotlin Multiplatform + Compose Multiplatform 构建的日历应用,同时支持 Android 和 iOS 平台。应用功能包括农历显示、节气标注、节假日信息、个人班次排期(WORK/OFF 循环)以及月/周/年三种视图切换。
|
||||
YaYa 是一款基于纯 Android + Jetpack Compose 构建的日历应用。应用功能包括农历显示、节气标注、节假日信息、个人班次排期(WORK/OFF 循环)以及月/周/年三种视图切换。
|
||||
|
||||
## Key Files
|
||||
|
||||
| File | Description |
|
||||
|------|-------------|
|
||||
| `build.gradle.kts` | 根项目 Gradle 构建设置 |
|
||||
| `settings.gradle.kts` | Gradle 项目包含模块声明 |
|
||||
| `settings.gradle.kts` | Gradle 项目包含模块声明(`:app`, `:core`) |
|
||||
| `gradle.properties` | Gradle 构建设置与缓存配置 |
|
||||
| `gradle/libs.versions.toml` | 版本目录(依赖版本统一管理) |
|
||||
| `CLAUDE.md` | 项目开发指南与架构文档 |
|
||||
@ -22,9 +22,8 @@ YaYa 是一款基于 Kotlin Multiplatform + Compose Multiplatform 构建的日
|
||||
|
||||
| Directory | Purpose |
|
||||
|-----------|---------|
|
||||
| `androidApp/` | Android 应用壳层模块(见 `androidApp/AGENTS.md`) |
|
||||
| `shared/` | KMP 共享模块:所有 UI、ViewModel 和业务逻辑(见 `shared/AGENTS.md`) |
|
||||
| `iosApp/` | iOS Xcode 项目(见 `iosApp/AGENTS.md`) |
|
||||
| `app/` | Android 应用壳层模块(见 `app/AGENTS.md`) |
|
||||
| `core/` | Android Library 核心模块:所有 Compose UI、ViewModel 和业务逻辑(见 `core/AGENTS.md`) |
|
||||
| `gradle/` | Gradle Wrapper 文件 |
|
||||
|
||||
## For AI Agents
|
||||
@ -35,19 +34,20 @@ YaYa 是一款基于 Kotlin Multiplatform + Compose Multiplatform 构建的日
|
||||
- 构建配置在根 `build.gradle.kts` 和各模块 `build.gradle.kts` 中
|
||||
|
||||
### Testing Requirements
|
||||
- 共享模块测试:`./gradlew :shared:allTests` 或 `:shared:testAndroidHostTest`
|
||||
- Android 构建:`./gradlew :androidApp:assembleDebug`
|
||||
- 核心模块测试:`./gradlew :core:test`
|
||||
- Android 构建:`./gradlew :app:assembleDebug`
|
||||
- 安装验证:`./gradlew :app:installDebug`
|
||||
|
||||
### Common Patterns
|
||||
- Kotlin 包名统一为 `plus.rua.project`
|
||||
- UI 组件在 `plus.rua.project.ui` 包下
|
||||
- 平台相关代码通过 `expect/actual` 机制隔离
|
||||
- `:app` 模块仅包含入口 Activity,所有 UI 和逻辑在 `:core` 模块
|
||||
|
||||
## Dependencies
|
||||
|
||||
### External
|
||||
- Kotlin 2.3.21, Compose Multiplatform 1.11.0, Material 3 1.10.0-alpha05
|
||||
- Kotlin 2.3.21, Jetpack Compose BOM, Material 3
|
||||
- `kotlinx-datetime` 0.8.0, `tyme4kt`(农历/节气), `sketch` 4.4.0(GIF)
|
||||
- AGP 9.2.1, compileSdk/targetSdk 37, minSdk 24
|
||||
|
||||
<!-- MANUAL: -->
|
||||
<!-- MANUAL: -->
|
||||
|
||||
@ -1,22 +1,24 @@
|
||||
<!-- Parent: ../AGENTS.md -->
|
||||
<!-- Generated: 2026-05-20 | Updated: 2026-05-20 -->
|
||||
|
||||
# androidApp
|
||||
# app
|
||||
|
||||
## Purpose
|
||||
Android 应用壳层模块,仅包含入口 `MainActivity` 和最小化的 Android 平台配置。所有 UI 和业务逻辑均来自 `:shared` 模块。
|
||||
Android 应用壳层模块,仅包含入口 `MainActivity`、`AboutActivity`、`LicensesActivity` 和最小化的 Android 平台配置。所有 UI 和业务逻辑均来自 `:core` 模块。
|
||||
|
||||
## Key Files
|
||||
|
||||
| File | Description |
|
||||
|------|-------------|
|
||||
| `build.gradle.kts` | Android 应用模块构建配置 |
|
||||
| `src/main/kotlin/plus/rua/project/MainActivity.kt` | Android 入口 Activity,设置 `App()` Composable |
|
||||
| `src/main/AndroidManifest.xml` | Android 清单,声明 MainActivity 和主题 |
|
||||
| `src/main/kotlin/plus/rua/project/MainActivity.kt` | Android 入口 Activity,设置 `CalendarMonthView()` Composable |
|
||||
| `src/main/kotlin/plus/rua/project/AboutActivity.kt` | 关于页面 Activity |
|
||||
| `src/main/kotlin/plus/rua/project/LicensesActivity.kt` | 许可证列表 Activity |
|
||||
| `src/main/AndroidManifest.xml` | Android 清单,声明 Activities 和主题 |
|
||||
| `src/main/res/values/themes.xml` | 应用主题配置(Material 3) |
|
||||
| `src/main/res/values-night/themes.xml` | 夜间模式主题 |
|
||||
| `src/main/res/values/strings.xml` | 应用名称字符串 |
|
||||
| `src/main/assets/app_icon.png` | 应用图标资源 |
|
||||
| `src/main/res/anim/` | Activity 转场动画(slide_in/slide_out) |
|
||||
| `src/main/assets/gifs/` | GIF 动画资源目录 |
|
||||
|
||||
## Subdirectories
|
||||
@ -24,31 +26,32 @@ Android 应用壳层模块,仅包含入口 `MainActivity` 和最小化的 Andr
|
||||
| Directory | Purpose |
|
||||
|-----------|---------|
|
||||
| `src/main/` | 主源码与资源(见 `src/main/AGENTS.md`) |
|
||||
| `src/debug/` | Debug 构建资源(如 debug 图标) |
|
||||
| `src/debug/` | Debug 构建资源 |
|
||||
| `src/release/` | Release 构建资源 |
|
||||
|
||||
## For AI Agents
|
||||
|
||||
### Working In This Directory
|
||||
- 不要在此模块添加业务逻辑;所有代码应放在 `:shared` 模块
|
||||
- 仅修改 Android 特有的配置:Manifest、主题、权限、应用图标
|
||||
- `MainActivity.kt` 应保持简洁,仅负责调用 `App()`
|
||||
- 不要在此模块添加业务逻辑;所有代码应放在 `:core` 模块
|
||||
- 仅修改 Android 特有的配置:Manifest、主题、权限、Activity 声明
|
||||
- `MainActivity.kt` 应保持简洁,仅负责调用 `CalendarMonthView()`
|
||||
|
||||
### Testing Requirements
|
||||
- 构建验证:`./gradlew :androidApp:assembleDebug`
|
||||
- 安装验证:`./gradlew :androidApp:installDebug`
|
||||
- 构建验证:`./gradlew :app:assembleDebug`
|
||||
- 安装验证:`./gradlew :app:installDebug`
|
||||
|
||||
### Common Patterns
|
||||
- 使用 `enableEdgeToEdge()` 实现全屏边缘到边缘显示
|
||||
- Activity 转场使用 `overridePendingTransition()` 配合 `res/anim/` 中的 XML 动画
|
||||
- 主题继承自 `Theme.AppCompat.DayNight.NoActionBar`
|
||||
|
||||
## Dependencies
|
||||
|
||||
### Internal
|
||||
- `:shared` 模块 — 提供所有 UI 和逻辑
|
||||
- `:core` 模块 — 提供所有 UI 和逻辑
|
||||
|
||||
### External
|
||||
- Android Gradle Plugin 9.2.1
|
||||
- Material 3, Compose runtime
|
||||
- Material 3, Compose runtime, Compose UI tooling
|
||||
|
||||
<!-- MANUAL: -->
|
||||
<!-- MANUAL: -->
|
||||
|
||||
@ -4,25 +4,29 @@
|
||||
# main
|
||||
|
||||
## Purpose
|
||||
Android 应用主 source set,包含入口 Activity、应用清单、主题资源和图标资源。
|
||||
Android 应用主 source set,包含入口 Activities、应用清单、主题资源、转场动画和图标资源。
|
||||
|
||||
## Key Files
|
||||
|
||||
| File | Description |
|
||||
|------|-------------|
|
||||
| `kotlin/plus/rua/project/MainActivity.kt` | Android 入口 Activity |
|
||||
| `kotlin/plus/rua/project/AboutActivity.kt` | 关于页面 Activity |
|
||||
| `kotlin/plus/rua/project/LicensesActivity.kt` | 许可证列表 Activity |
|
||||
| `AndroidManifest.xml` | Android 应用清单 |
|
||||
| `res/values/themes.xml` | Material 3 主题定义 |
|
||||
| `res/values-night/themes.xml` | 夜间模式主题 |
|
||||
| `res/values/strings.xml` | 应用名称等字符串 |
|
||||
| `assets/app_icon.png` | 应用图标 |
|
||||
| `res/anim/slide_in_right.xml` | Activity 进入动画(右滑入) |
|
||||
| `res/anim/slide_out_left.xml` | Activity 退出动画(左滑出) |
|
||||
| `assets/gifs/` | GIF 动画资源 |
|
||||
|
||||
## Subdirectories
|
||||
|
||||
| Directory | Purpose |
|
||||
|-----------|---------|
|
||||
| `kotlin/plus/rua/project/` | Kotlin 源码(见 `kotlin/plus/rua/project/AGENTS.md`) |
|
||||
| `res/` | Android 资源文件(图标、主题、字符串) |
|
||||
| `res/` | Android 资源文件(图标、主题、字符串、动画) |
|
||||
| `assets/` | 原始资产文件(GIF 等) |
|
||||
|
||||
## For AI Agents
|
||||
@ -31,10 +35,11 @@ Android 应用主 source set,包含入口 Activity、应用清单、主题资
|
||||
- 仅放置 Android 平台特有的配置和入口代码
|
||||
- 不要在此添加业务逻辑
|
||||
- 主题和颜色配置在 `res/values/` 中
|
||||
- 新增 Activity 需在 `AndroidManifest.xml` 中声明
|
||||
|
||||
## Dependencies
|
||||
|
||||
### Internal
|
||||
- `:shared` 模块 — `MainActivity` 调用 `App()` 入口
|
||||
- `:core` 模块 — Activities 调用 `:core` 中的 Composable
|
||||
|
||||
<!-- MANUAL: -->
|
||||
<!-- MANUAL: -->
|
||||
|
||||
@ -4,13 +4,15 @@
|
||||
# project
|
||||
|
||||
## Purpose
|
||||
Android 应用入口源码目录,仅包含 `MainActivity.kt`。
|
||||
Android 应用入口源码目录,包含 `MainActivity.kt`、`AboutActivity.kt` 和 `LicensesActivity.kt`。
|
||||
|
||||
## Key Files
|
||||
|
||||
| File | Description |
|
||||
|------|-------------|
|
||||
| `MainActivity.kt` | Android 入口 Activity,继承 `ComponentActivity`,调用 `setContent { App() }` |
|
||||
| `MainActivity.kt` | Android 入口 Activity,继承 `ComponentActivity`,调用 `setContent { CalendarMonthView() }` |
|
||||
| `AboutActivity.kt` | 关于页面 Activity,展示应用信息 |
|
||||
| `LicensesActivity.kt` | 许可证列表 Activity,展示开源依赖许可 |
|
||||
|
||||
## Subdirectories
|
||||
无
|
||||
@ -18,12 +20,12 @@ Android 应用入口源码目录,仅包含 `MainActivity.kt`。
|
||||
## For AI Agents
|
||||
|
||||
### Working In This Directory
|
||||
- `MainActivity.kt` 应保持极简,不要添加额外逻辑
|
||||
- 所有 UI 和业务逻辑在 `:shared` 模块中
|
||||
- Activities 应保持极简,不要添加额外业务逻辑
|
||||
- 所有 UI 和业务逻辑在 `:core` 模块中
|
||||
|
||||
## Dependencies
|
||||
|
||||
### Internal
|
||||
- `shared/src/commonMain/kotlin/plus/rua/project/App.kt` — `App()` Composable 入口
|
||||
- `:core` 模块 — `MainActivity` 调用 `CalendarMonthView()` Composable 入口
|
||||
|
||||
<!-- MANUAL: -->
|
||||
<!-- MANUAL: -->
|
||||
|
||||
@ -1,49 +1,48 @@
|
||||
<!-- Parent: ../AGENTS.md -->
|
||||
<!-- Generated: 2026-05-20 | Updated: 2026-05-20 -->
|
||||
|
||||
# shared
|
||||
# core
|
||||
|
||||
## Purpose
|
||||
Kotlin Multiplatform 共享模块,包含所有 Compose UI、ViewModel 和业务逻辑。通过 `expect/actual` 机制为 Android 和 iOS 提供平台特定实现。这是项目的核心模块。
|
||||
Android Library 核心模块,包含所有 Jetpack Compose UI、ViewModel 和业务逻辑。作为 `:app` 模块的依赖库提供,是项目的主体代码所在。
|
||||
|
||||
## Key Files
|
||||
|
||||
| File | Description |
|
||||
|------|-------------|
|
||||
| `build.gradle.kts` | 共享模块构建配置(KMP 插件设置、source sets、依赖) |
|
||||
| `build.gradle.kts` | 核心模块构建配置(Android Library 插件、Compose 编译器、依赖) |
|
||||
|
||||
## Subdirectories
|
||||
|
||||
| Directory | Purpose |
|
||||
|-----------|---------|
|
||||
| `src/androidMain/` | Android 平台特定实现(见 `src/androidMain/AGENTS.md`) |
|
||||
| `src/commonMain/` | 所有 Compose UI、ViewModel 和业务逻辑(见 `src/commonMain/AGENTS.md`) |
|
||||
| `src/commonTest/` | 共享测试套件(见 `src/commonTest/AGENTS.md`) |
|
||||
| `src/iosMain/` | iOS 平台特定实现(见 `src/iosMain/AGENTS.md`) |
|
||||
| `src/main/` | 所有 Compose UI、ViewModel 和业务逻辑(见 `src/main/AGENTS.md`) |
|
||||
| `src/test/` | 单元测试套件(见 `src/test/AGENTS.md`) |
|
||||
|
||||
## For AI Agents
|
||||
|
||||
### Working In This Directory
|
||||
- 所有功能代码应放在 `commonMain` 中以跨平台复用
|
||||
- 仅在 `androidMain` / `iosMain` 中放置平台特有实现
|
||||
- 修改 `commonMain` 后需运行 `:shared:allTests` 验证
|
||||
- 所有功能代码应放在 `src/main/` 中
|
||||
- 包名:`plus.rua.project`(逻辑层)、`plus.rua.project.ui`(UI 层)
|
||||
- 修改核心逻辑后需运行 `:core:test` 验证
|
||||
|
||||
### Testing Requirements
|
||||
- 全部测试:`./gradlew :shared:allTests`
|
||||
- Android 主机测试:`./gradlew :shared:testAndroidHostTest`
|
||||
- 单类测试:`./gradlew :shared:testAndroidHostTest --tests "ClassName"`
|
||||
- 全部测试:`./gradlew :core:test`
|
||||
- 单类测试:`./gradlew :core:test --tests "ClassName"`
|
||||
|
||||
### Common Patterns
|
||||
- `expect` 声明在 `commonMain`,`actual` 实现在平台 source set
|
||||
- Compose 资源放在 `commonMain/composeResources/` 下
|
||||
- 包名:`plus.rua.project`(逻辑层)、`plus.rua.project.ui`(UI 层)
|
||||
- 公共 `@Composable` 函数需要 KDoc(见 `COMMENTS.md`)
|
||||
- `Modifier` 参数始终放在签名最后
|
||||
- 回调参数使用 `on` 前缀(`onDateClick`、`onMonthChanged`)
|
||||
- UI 文本使用中文
|
||||
|
||||
## Dependencies
|
||||
|
||||
### External
|
||||
- Compose Multiplatform 1.11.0, Material 3 1.10.0-alpha05
|
||||
- `kotlinx-datetime` 0.8.0, `kotlinx-coroutines`
|
||||
- `tyme4kt`(农历/节气), `sketch` 4.4.0(GIF 显示)
|
||||
- `molecule`(测试用)
|
||||
- Jetpack Compose BOM, Material 3
|
||||
- `kotlinx-datetime`, `kotlinx-coroutines`
|
||||
- `tyme4kt`(农历/节气/节日)
|
||||
- `sketch`(GIF 显示)
|
||||
- `androidx-lifecycle-viewmodel-compose`
|
||||
|
||||
<!-- MANUAL: -->
|
||||
<!-- MANUAL: -->
|
||||
|
||||
@ -1,40 +1,37 @@
|
||||
<!-- Parent: ../../AGENTS.md -->
|
||||
<!-- Generated: 2026-05-20 | Updated: 2026-05-20 -->
|
||||
|
||||
# commonMain
|
||||
# main
|
||||
|
||||
## Purpose
|
||||
KMP 共享核心模块,包含所有 Compose UI、ViewModel 状态管理、业务逻辑和跨平台接口声明。这是 YaYa 应用的主体代码所在。
|
||||
核心库主 source set,包含所有 Compose UI、ViewModel 状态管理、业务逻辑和工具类。这是 YaYa 应用的主体代码所在。
|
||||
|
||||
## Key Files
|
||||
|
||||
| File | Description |
|
||||
|------|-------------|
|
||||
| `kotlin/plus/rua/project/App.kt` | 应用根 Composable,提供 Material 主题和导航入口 |
|
||||
| `kotlin/plus/rua/project/AppInfo.kt` | 应用元数据(名称、版本、作者等) |
|
||||
| `kotlin/plus/rua/project/CalendarViewModel.kt` | 日历状态管理(选中日期、展开/折叠、月/周/年视图) |
|
||||
| `kotlin/plus/rua/project/ComposeTrace.kt` | `expect` 声明的 Trace 标记 API |
|
||||
| `kotlin/plus/rua/project/Platform.kt` | `expect` 声明的平台接口 |
|
||||
| `kotlin/plus/rua/project/ComposeTrace.kt` | Trace 标记 API(Android 实现用 Systrace) |
|
||||
| `kotlin/plus/rua/project/Platform.kt` | 平台接口声明 |
|
||||
| `kotlin/plus/rua/project/ShiftPattern.kt` | 个人班次排期模型(WORK/OFF 循环) |
|
||||
|
||||
## Subdirectories
|
||||
|
||||
| Directory | Purpose |
|
||||
|-----------|---------|
|
||||
| `kotlin/plus/rua/project/` | 业务逻辑和根 Composable(见 `kotlin/plus/rua/project/AGENTS.md`) |
|
||||
| `kotlin/plus/rua/project/` | 业务逻辑和 ViewModel(见 `kotlin/plus/rua/project/AGENTS.md`) |
|
||||
| `kotlin/plus/rua/project/ui/` | UI 组件层(见 `kotlin/plus/rua/project/ui/AGENTS.md`) |
|
||||
| `composeResources/` | Compose 多平台资源(图片、文件)(见 `composeResources/AGENTS.md`) |
|
||||
| `assets/` | 原始资产文件(GIF 等) |
|
||||
|
||||
## For AI Agents
|
||||
|
||||
### Working In This Directory
|
||||
- 所有新功能代码优先放在 `commonMain` 以保持跨平台兼容
|
||||
- 仅在需要平台 API 时使用 `expect/actual` 模式
|
||||
- 所有新功能代码优先放在 `src/main/kotlin/` 中
|
||||
- `CalendarViewModel.kt` 是核心状态枢纽,修改需谨慎
|
||||
|
||||
### Testing Requirements
|
||||
- 修改后运行 `./gradlew :shared:allTests`
|
||||
- 状态逻辑测试在 `commonTest` 中
|
||||
- 修改后运行 `./gradlew :core:test`
|
||||
|
||||
### Common Patterns
|
||||
- `@Suppress("DEPRECATION")` 用于 `monthNumber` 访问时需加解释注释
|
||||
@ -46,7 +43,7 @@ KMP 共享核心模块,包含所有 Compose UI、ViewModel 状态管理、业
|
||||
## Dependencies
|
||||
|
||||
### External
|
||||
- Compose Multiplatform, Material 3
|
||||
- Jetpack Compose, Material 3
|
||||
- `kotlinx-datetime`, `kotlinx-coroutines`
|
||||
- `tyme4kt`(农历/节气/节日)
|
||||
- `sketch`(GIF 显示)
|
||||
|
||||
@ -4,17 +4,16 @@
|
||||
# project
|
||||
|
||||
## Purpose
|
||||
共享模块的业务逻辑层,包含根 Composable、ViewModel、平台接口和班次模型。
|
||||
核心库的业务逻辑层,包含根 Composable、ViewModel、平台接口和班次模型。
|
||||
|
||||
## Key Files
|
||||
|
||||
| File | Description |
|
||||
|------|-------------|
|
||||
| `App.kt` | 应用根 Composable,设置 Material 3 主题,管理月/年视图切换和关于页面导航 |
|
||||
| `AppInfo.kt` | 应用信息常量:名称、版本号、构建日期、作者、仓库地址、许可证 |
|
||||
| `CalendarViewModel.kt` | 日历核心状态管理:选中日期、折叠状态、月/周/年模式、ISO 周数计算 |
|
||||
| `ComposeTrace.kt` | `expect` 声明的 Trace 标记 API(Android 实现用 Systrace,iOS no-op) |
|
||||
| `Platform.kt` | `expect` 声明的平台接口 |
|
||||
| `ComposeTrace.kt` | Trace 标记 API(Android 实现用 Systrace) |
|
||||
| `Platform.kt` | 平台接口声明 |
|
||||
| `ShiftPattern.kt` | 个人班次排期模型:基于锚定日期和周期长度的 WORK/OFF 状态计算 |
|
||||
|
||||
## Subdirectories
|
||||
@ -28,7 +27,7 @@
|
||||
### Working In This Directory
|
||||
- `CalendarViewModel.kt` 是核心状态枢纽,包含 `selectedDate`、`isCollapsed`、`isYearView` 等 StateFlow
|
||||
- `ShiftPattern` 使用模运算:`(date - anchorDate) mod cycle.size`
|
||||
- 修改状态逻辑后务必运行 `commonTest` 中的测试
|
||||
- 修改状态逻辑后务必运行 `src/test/` 中的测试
|
||||
|
||||
### Testing Requirements
|
||||
- `ShiftPatternTest` — 班次计算验证
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
# ui
|
||||
|
||||
## Purpose
|
||||
日历应用的所有 UI 组件层,基于 Compose Multiplatform + Material 3 构建。包含月视图、周视图、年视图、底部卡片、日期单元格、顶部标题栏以及关于/许可证页面。
|
||||
日历应用的所有 UI 组件层,基于 Jetpack Compose + Material 3 构建。包含月视图、周视图、年视图、底部卡片、日期单元格、顶部标题栏以及关于/许可证页面。
|
||||
|
||||
## Key Files
|
||||
|
||||
@ -49,11 +49,11 @@
|
||||
## Dependencies
|
||||
|
||||
### Internal
|
||||
- `shared/src/commonMain/kotlin/plus/rua/project/CalendarViewModel.kt` — 状态源
|
||||
- `shared/src/commonMain/kotlin/plus/rua/project/ShiftPattern.kt` — 班次数据
|
||||
- `core/src/main/kotlin/plus/rua/project/CalendarViewModel.kt` — 状态源
|
||||
- `core/src/main/kotlin/plus/rua/project/ShiftPattern.kt` — 班次数据
|
||||
|
||||
### External
|
||||
- Compose Multiplatform, Material 3
|
||||
- Jetpack Compose, Material 3
|
||||
- `kotlinx-datetime`
|
||||
- `tyme4kt`(农历、节气、节日)
|
||||
- `sketch`(GIF)
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
<!-- Parent: ../../AGENTS.md -->
|
||||
<!-- Generated: 2026-05-20 | Updated: 2026-05-20 -->
|
||||
|
||||
# commonTest
|
||||
# test
|
||||
|
||||
## Purpose
|
||||
共享模块的单元测试 source set,包含 ViewModel、班次模型和日历工具函数的测试。
|
||||
核心模块的单元测试 source set,包含 ViewModel、班次模型和日历工具函数的测试。
|
||||
|
||||
## Key Files
|
||||
|
||||
@ -20,15 +20,14 @@
|
||||
## For AI Agents
|
||||
|
||||
### Working In This Directory
|
||||
- 测试使用 `kotlin.test` 和 molecule(Turbine)进行状态流断言
|
||||
- 新增测试后运行 `./gradlew :shared:allTests`
|
||||
- 测试使用 `kotlin.test` 和 `kotlinx-coroutines-test`
|
||||
- 新增测试后运行 `./gradlew :core:test`
|
||||
- 测试类名遵循 `*Test.kt` 约定
|
||||
|
||||
## Dependencies
|
||||
### Dependencies
|
||||
|
||||
### External
|
||||
- `kotlin-test`
|
||||
#### External
|
||||
- `kotlin-test-junit`
|
||||
- `kotlinx-coroutines-test`
|
||||
- `molecule`(Turbine 风格的状态流测试)
|
||||
|
||||
<!-- MANUAL: -->
|
||||
|
||||
@ -24,12 +24,11 @@
|
||||
|
||||
### Working In This Directory
|
||||
- 修改 `CalendarViewModel` 或 `ShiftPattern` 后应更新对应测试
|
||||
- 测试使用 molecule 进行状态流断言
|
||||
|
||||
## Dependencies
|
||||
|
||||
### Internal
|
||||
- `shared/src/commonMain/kotlin/plus/rua/project/ShiftPattern.kt`
|
||||
- `shared/src/commonMain/kotlin/plus/rua/project/CalendarViewModel.kt`
|
||||
- `core/src/main/kotlin/plus/rua/project/ShiftPattern.kt`
|
||||
- `core/src/main/kotlin/plus/rua/project/CalendarViewModel.kt`
|
||||
|
||||
<!-- MANUAL: -->
|
||||
|
||||
@ -25,6 +25,6 @@ UI 工具函数测试,覆盖日历工具类 `CalendarUtils` 的日期转换算
|
||||
## Dependencies
|
||||
|
||||
### Internal
|
||||
- `shared/src/commonMain/kotlin/plus/rua/project/ui/CalendarUtils.kt`
|
||||
- `core/src/main/kotlin/plus/rua/project/ui/CalendarUtils.kt`
|
||||
|
||||
<!-- MANUAL: -->
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user