Kaynağa Gözat

fix(card): normalize empty state and register list tests

onecold 4 ay önce
ebeveyn
işleme
c178133dba

+ 10 - 0
entry/src/main/ets/common/player/MusicCardSnapshot.ets

@@ -186,6 +186,16 @@ export function buildMusicCardBindingData(snapshot: MusicCardSnapshot): MusicCar
   data.filePath = source.filePath ?? ''
   data.updatedAtMs = source.updatedAtMs ?? 0
 
+  if (!data.hasSong) {
+    data.coverPath = ''
+    data.hasCoverImage = false
+    data.currentPositionMs = 0
+    data.durationMs = 0
+    data.currentTimeText = DEFAULT_TIME_TEXT
+    data.durationTimeText = DEFAULT_TIME_TEXT
+    data.filePath = ''
+  }
+
   let lyricLine1 = data.title
   let lyricLine2 = data.artist
   let hasLyric = false

+ 8 - 0
entry/src/ohosTest/ets/test/List.test.ets

@@ -14,13 +14,21 @@
  */
 
 import abilityTest from './Ability.test'
+import findPlaylistStoreTest from './FindPlaylistStore.test'
+import localMusicMenuScrollHelperTest from './LocalMusicMenuScrollHelper.test'
 import musicPlaybackControllerTest from './MusicPlaybackController.test'
 import playbackCoordinatorTest from './PlaybackCoordinator.test'
 import playbackStateBridgeTest from './PlaybackStateBridge.test'
+import remoteMusicViewModeHelperTest from './RemoteMusicViewModeHelper.test'
+import musicCardSnapshotTest from './MusicCardSnapshot.test'
 
 export default function testsuite() {
   abilityTest()
+  findPlaylistStoreTest()
+  localMusicMenuScrollHelperTest()
   musicPlaybackControllerTest()
   playbackCoordinatorTest()
   playbackStateBridgeTest()
+  remoteMusicViewModeHelperTest()
+  musicCardSnapshotTest()
 }

+ 22 - 0
entry/src/ohosTest/ets/test/MusicCardSnapshot.test.ets

@@ -93,6 +93,28 @@ export default function musicCardSnapshotTest() {
       expect(binding.artist).assertEqual('Song Artist')
     })
 
+    it('buildMusicCardBindingDataNormalizesEmptyStateWhenNoSong', 0, () => {
+      const snapshot = createEmptyMusicCardSnapshot()
+      snapshot.coverPath = '/cover.png'
+      snapshot.hasCoverImage = true
+      snapshot.currentPositionMs = 12345
+      snapshot.durationMs = 67890
+      snapshot.currentTimeText = '00:12'
+      snapshot.durationTimeText = '05:01'
+      snapshot.filePath = '/storage/track.mp3'
+
+      const binding = buildMusicCardBindingData(snapshot)
+
+      expect(binding.hasSong).assertEqual(false)
+      expect(binding.coverPath).assertEqual('')
+      expect(binding.hasCoverImage).assertEqual(false)
+      expect(binding.currentPositionMs).assertEqual(0)
+      expect(binding.durationMs).assertEqual(0)
+      expect(binding.currentTimeText).assertEqual('00:00')
+      expect(binding.durationTimeText).assertEqual('00:00')
+      expect(binding.filePath).assertEqual('')
+    })
+
     it('buildMusicCardBindingDataKeepsSourceLyricsWhenAvailable', 0, () => {
       const snapshot = createEmptyMusicCardSnapshot()
       snapshot.hasLyric = true