Skip to content

feat(mobile): e2e#195

Merged
roitium merged 3 commits into
devfrom
feat/e2e
Feb 2, 2026
Merged

feat(mobile): e2e#195
roitium merged 3 commits into
devfrom
feat/e2e

Conversation

@roitium
Copy link
Copy Markdown
Collaborator

@roitium roitium commented Feb 2, 2026

Summary by CodeRabbit

  • Chores
    • 添加了端到端测试自动化流程和测试标识符,改进内部测试基础设施

备注: 本次更新主要涉及测试基础设施的增强,不包含面向用户的新功能或行为变更。

✏️ Tip: You can customize this high-level summary in your review settings.

@roitium roitium added the enhancement New feature or request label Feb 2, 2026
@vercel
Copy link
Copy Markdown

vercel Bot commented Feb 2, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
bbplayer-docs Ready Ready Preview, Comment Feb 2, 2026 1:06am

@safedep
Copy link
Copy Markdown

safedep Bot commented Feb 2, 2026

SafeDep Report Summary

Green Malicious Packages Badge Green Vulnerable Packages Badge Green Risky License Badge

No dependency changes detected. Nothing to scan.

This report is generated by SafeDep Github App

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Feb 2, 2026

Caution

Review failed

The pull request is closed.

Walkthrough

为移动应用引入Maestro E2E自动化测试框架,在多个UI组件中添加testID属性以支持自动化测试,并实现七个完整的测试流程用于自动化关键用户交互场景(搜索、播放、播放列表、评论、同步)。

Changes

队列 / 文件 摘要
Maestro E2E测试流程配置
apps/mobile/.maestro/comments_flow.yaml, apps/mobile/.maestro/playback_flow.yaml, apps/mobile/.maestro/playlist_flow.yaml, apps/mobile/.maestro/search_flow.yaml, apps/mobile/.maestro/sync_flow.yaml, apps/mobile/.maestro/common/open_player.yaml, apps/mobile/.maestro/common/setup.yaml
新增七个Maestro YAML工作流配置文件,定义应用初始化、搜索、播放、播放列表管理、同步和评论等E2E测试场景的自动化步骤。
播放器组件测试ID
apps/mobile/src/features/player/components/PlayerControls.tsx, apps/mobile/src/features/player/components/PlayerLyrics.tsx, apps/mobile/src/features/player/components/PlayerTrackInfo.tsx, apps/mobile/src/components/NowPlayingBar.tsx
为播放器相关组件的UI元素添加testID属性(播放/暂停、上一曲、下一曲、随机播放、重复模式、歌词、封面等)。
播放列表与库组件测试ID
apps/mobile/src/features/playlist/local/components/LocalPlaylistHeader.tsx, apps/mobile/src/features/playlist/local/components/LocalPlaylistItem.tsx, apps/mobile/src/features/playlist/remote/components/PlaylistHeader.tsx, apps/mobile/src/features/playlist/remote/components/PlaylistItem.tsx, apps/mobile/src/features/library/favorite/FavoriteFolderListItem.tsx, apps/mobile/src/features/library/local/LocalPlaylistItem.tsx
为播放列表和库相关UI元素添加testID属性(播放全部、同步、复制、下载、项目等)。
搜索与导航组件测试ID
apps/mobile/src/app/(tabs)/index.tsx, apps/mobile/src/features/home/SearchSuggestions.tsx, apps/mobile/src/app/(tabs)/_layout.tsx
为搜索栏、搜索建议项和标签栏添加testID属性以支持测试自动化。
登录与模态框组件测试ID
apps/mobile/src/components/modals/login/CookieLoginModal.tsx, apps/mobile/src/components/modals/app/WelcomeModal.tsx, apps/mobile/src/components/modals/playlist/CreatePlaylistModal.tsx
为Cookie登录、欢迎模态框和创建播放列表模态框的输入字段、按钮等元素添加testID属性。
设置页面与注释组件测试ID
apps/mobile/src/app/(tabs)/settings/index.tsx, apps/mobile/src/app/(tabs)/settings/general.tsx, apps/mobile/src/features/comments/components/CommentItem.tsx
为设置页面导航项、Cookie登录按钮和评论图片元素添加testID属性。
文档更新
apps/mobile/CHANGELOG.md
更新CHANGELOG.md,记录新增的testID属性以支持Maestro E2E测试。

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

  • BBPlayer#175sync_flow.yaml直接实现了针对该PR中播放列表同步功能的自动化测试,testID也包含了同步相关的UI元素。
  • BBPlayer#70 — 都修改了src/features/player/components/PlayerLyrics.tsx文件,本PR添加testID而该PR进行了组件重构。
  • BBPlayer#69 — 都修改了多个相同的UI组件文件(CookieLoginModal、PlayerLyrics、PlayerTrackInfo等),改动在代码级别有重叠。

Poem

🐰 Maestro的魔法烟雾升起,
自动化测试流程在指尖起舞,
搜索、播放、同步,每一步都标记清楚,
testID如灯塔闪烁,引导测试向前冲,
兔子欢呼:E2E流程已启动!✨

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/e2e

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@roitium roitium merged commit 76fea6b into dev Feb 2, 2026
2 of 5 checks passed
@roitium roitium deleted the feat/e2e branch February 2, 2026 01:06
roitium added a commit that referenced this pull request Feb 8, 2026
* fix(mobile): fix version code getter logic

* Merge pull request #193 from bbplayer-app/feat/nitro-fetch

* fix(orpheus, mobile): disable usesCleartextTraffic, only allow hdslb.com use http

* fix(mobile): disable r8

* fix(mobile): update proguard rules and enable R8

* chore(mobile): disable r8

* fix(mobile): r8 made @nandrorjo/galeria raise error

* feat: sync external playlist (#194)

* feat(mobile): e2e (#195)

* feat(mobile): 1 (#196)

* fix(mobile): add more current state check

I don't know why, but I hope it will work.

* feat(mobile): some improvements (#198)

* feat(orpheus): enhance backend retention capabilities

* fix(mobile): player page setpage

* fix(orpheus): allow androidx.media3.player wrapping in REPEAT_MODE_ONE (#199)

* fix(orpheus): allow androidx.media3.player wrapping in REPEAT_MODE_ONE

* chore(mobile): update changelog

---------

Co-authored-by: roitium <65794453+roitium@users.noreply.github.com>

* feat(mobile): improve playlist UI (#200)

* feat(mobile): 1

* feat(mobile): 1

* feat(mobile): 1

* feat(mobile): 1

* feat(mobile): 1

* feat(mobile): 1

* feat(mobile): verbatim lyrics (#201)

* feat(mobile, splash): improve verbatim lyrics

* perf(mobile): improve verbatim lyrics perf

* fix(mobile): player slider cannot slide

* fix(mobile): react compiler in PlayerLyrics

* chore(mobile): remove reanimated logger config

* chore(mobile): edit changelog

* fix(mobile): desktop lyrics not work

* feat(mobile): add firebase analytics integration (#203)

* fix(mobile): improve UI on small screen devices

* perf(mobile): some perf improvements

* feat(mobile): firebase

* feat(mobile): add firebase analytics track

* chore(mobile): update privacy

* chore(mobile): use firebase analytics new api

* chore(root): move some libraries

* fix(mobile): type

* chore(root, mobile): update package.json

* chore(docs): update docs

* chore(docs): update docs

* chore(docs): update docs

* chore(root): wiki

* chore(root): wiki

* chore(orpheus): wiki

* feat(mobile): danmaku (#205)

* feat(mobile): implement bilibili danmaku api

* fix(mobile): use `useWindowDimensions` instead of `Dimensions.get`

* feat(mobile): implement

* fix(mobile): 1

* chore(mobile): bump version

* chore(mobile): update changelog

* ci(mobile): wrong secret key

* fix(root): ci not work

* chore(root): just make sure

* chore(root): remove unnecessary easignore

* chore(root): remove unnecessary easignore

* chore(root): update update json

---------

Co-authored-by: Deyu Wang <kvtoDev@outlook.com>
roitium added a commit that referenced this pull request Feb 9, 2026
* fix(mobile): fix version code getter logic

* Merge pull request #193 from bbplayer-app/feat/nitro-fetch

* fix(orpheus, mobile): disable usesCleartextTraffic, only allow hdslb.com use http

* fix(mobile): disable r8

* fix(mobile): update proguard rules and enable R8

* chore(mobile): disable r8

* fix(mobile): r8 made @nandrorjo/galeria raise error

* feat: sync external playlist (#194)

* feat(mobile): e2e (#195)

* feat(mobile): 1 (#196)

* fix(mobile): add more current state check

I don't know why, but I hope it will work.

* feat(mobile): some improvements (#198)

* feat(orpheus): enhance backend retention capabilities

* fix(mobile): player page setpage

* fix(orpheus): allow androidx.media3.player wrapping in REPEAT_MODE_ONE (#199)

* fix(orpheus): allow androidx.media3.player wrapping in REPEAT_MODE_ONE

* chore(mobile): update changelog

---------

Co-authored-by: roitium <65794453+roitium@users.noreply.github.com>

* feat(mobile): improve playlist UI (#200)

* feat(mobile): 1

* feat(mobile): 1

* feat(mobile): 1

* feat(mobile): 1

* feat(mobile): 1

* feat(mobile): 1

* feat(mobile): verbatim lyrics (#201)

* feat(mobile, splash): improve verbatim lyrics

* perf(mobile): improve verbatim lyrics perf

* fix(mobile): player slider cannot slide

* fix(mobile): react compiler in PlayerLyrics

* chore(mobile): remove reanimated logger config

* chore(mobile): edit changelog

* fix(mobile): desktop lyrics not work

* feat(mobile): add firebase analytics integration (#203)

* fix(mobile): improve UI on small screen devices

* perf(mobile): some perf improvements

* feat(mobile): firebase

* feat(mobile): add firebase analytics track

* chore(mobile): update privacy

* chore(mobile): use firebase analytics new api

* chore(root): move some libraries

* fix(mobile): type

* chore(root, mobile): update package.json

* chore(docs): update docs

* chore(docs): update docs

* chore(docs): update docs

* chore(root): wiki

* chore(root): wiki

* chore(orpheus): wiki

* feat(mobile): danmaku (#205)

* feat(mobile): implement bilibili danmaku api

* fix(mobile): use `useWindowDimensions` instead of `Dimensions.get`

* feat(mobile): implement

* fix(mobile): 1

* chore(mobile): bump version

* chore(mobile): update changelog

* ci(mobile): wrong secret key

* fix(root): ci not work

* chore(root): just make sure

* chore(root): remove unnecessary easignore

* chore(root): remove unnecessary easignore

* chore(root): update update json

* fix(mobile): auto compile protobuf when prepare

* chore(root): update app screenshots

* fix(mobile): player controls button not work (#208)

* fix(mobile): remove player page animation (#212)

* fix(mobile): remove player page animation

* chore(mobile): bump version

* fix(mobile): cover

* chore(mobile): Bump version to 2.3.1 and update release URL

Updated version and URL for the release notes.

---------

Co-authored-by: Deyu Wang <kvtoDev@outlook.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant