diff --git a/app/components/Package/Versions.vue b/app/components/Package/Versions.vue index 7e70f7d2ea..ceb19705a6 100644 --- a/app/components/Package/Versions.vue +++ b/app/components/Package/Versions.vue @@ -571,14 +571,14 @@ function majorGroupContainsCurrent(group: (typeof otherMajorGroups.value)[0]): b
-
+
@@ -668,17 +673,17 @@ function majorGroupContainsCurrent(group: (typeof otherMajorGroups.value)[0]): b
+
{{ tag }} @@ -778,17 +785,17 @@ function majorGroupContainsCurrent(group: (typeof otherMajorGroups.value)[0]): b
+
-
+
{{ tag }} @@ -833,14 +844,14 @@ function majorGroupContainsCurrent(group: (typeof otherMajorGroups.value)[0]): b
{{ tag }} @@ -924,8 +937,8 @@ function majorGroupContainsCurrent(group: (typeof otherMajorGroups.value)[0]): b
@@ -933,10 +946,10 @@ function majorGroupContainsCurrent(group: (typeof otherMajorGroups.value)[0]): b v-if="group.versions[0]?.version" :to="versionRoute(group.versions[0]?.version)" block - class="text-xs ms-6" + class="text-xs ms-6 after:absolute after:inset-0 after:content-['']" :class=" group.versions[0]?.deprecated - ? 'text-red-800 hover:text-red-700 dark:text-red-400 dark:hover:text-red-300' + ? 'text-red-800 group-hover/version-row:text-red-700 dark:text-red-400 dark:group-hover/version-row:text-red-300' : undefined " :title=" @@ -955,7 +968,7 @@ function majorGroupContainsCurrent(group: (typeof otherMajorGroups.value)[0]): b
-
+
-
+
{{ tag }} @@ -991,19 +1009,17 @@ function majorGroupContainsCurrent(group: (typeof otherMajorGroups.value)[0]): b
+
-
+
{{ tag }} diff --git a/test/nuxt/components/PackageVersions.spec.ts b/test/nuxt/components/PackageVersions.spec.ts index 79a6fa24f9..f9f0274d01 100644 --- a/test/nuxt/components/PackageVersions.spec.ts +++ b/test/nuxt/components/PackageVersions.spec.ts @@ -100,6 +100,51 @@ describe('PackageVersions', () => { expect(versionLinks.length).toBeGreaterThan(0) expect(versionLinks[0]?.text()).toBe('1.0.0') }) + + it('highlights the current version row when selectedVersion prop matches', async () => { + const component = await mountSuspended(PackageVersions, { + props: { + packageName: 'test-package', + versions: { + '2.0.0': createVersion('2.0.0'), + '1.0.0': createVersion('1.0.0'), + }, + distTags: { latest: '2.0.0', stable: '1.0.0' }, + time: { + '2.0.0': '2024-01-15T12:00:00.000Z', + '1.0.0': '2024-01-01T12:00:00.000Z', + }, + selectedVersion: '1.0.0', + }, + }) + + // Find the version row divs that are direct children of the tag row containers + const versionRows = component.findAll('[class*="group/version-row"]') + const highlightedRows = versionRows.filter(row => row.classes().includes('bg-bg-subtle')) + expect(highlightedRows.length).toBe(1) + expect(highlightedRows[0]!.text()).toContain('1.0.0') + }) + + it('uses accent color for latest tag', async () => { + const component = await mountSuspended(PackageVersions, { + props: { + packageName: 'test-package', + versions: { + '2.0.0': createVersion('2.0.0'), + '1.0.0': createVersion('1.0.0'), + }, + distTags: { latest: '2.0.0', stable: '1.0.0' }, + time: { + '2.0.0': '2024-01-15T12:00:00.000Z', + '1.0.0': '2024-01-01T12:00:00.000Z', + }, + selectedVersion: '1.0.0', + }, + }) + + const latestTag = component.findAll('span').find(span => span.text() === 'latest') + expect(latestTag?.classes()).toContain('text-accent') + }) }) describe('dist-tag display', () => {