- settings.value.relativeDates)
+
+ function toggleRelativeDates() {
+ settings.value.relativeDates = !settings.value.relativeDates
+ }
+
+ return {
+ relativeDates: computed(() => settings.value.relativeDates),
+ toggleRelativeDates,
+ }
}
/**
diff --git a/app/pages/package/[[org]]/[name].vue b/app/pages/package/[[org]]/[name].vue
index 45bac39344..6da15502f1 100644
--- a/app/pages/package/[[org]]/[name].vue
+++ b/app/pages/package/[[org]]/[name].vue
@@ -1050,7 +1050,7 @@ onKeyStroke(
{{ $t('package.stats.published') }}
-
+
diff --git a/test/nuxt/components/DateTime.spec.ts b/test/nuxt/components/DateTime.spec.ts
index 1ae7c16443..5b5b887c15 100644
--- a/test/nuxt/components/DateTime.spec.ts
+++ b/test/nuxt/components/DateTime.spec.ts
@@ -5,7 +5,9 @@ import DateTime from '~/components/DateTime.vue'
// Mock the useRelativeDates composable
const mockRelativeDates = shallowRef(false)
vi.mock('~/composables/useSettings', () => ({
- useRelativeDates: () => mockRelativeDates,
+ useRelativeDates: () => ({
+ relativeDates: mockRelativeDates,
+ }),
useSettings: () => ({
settings: ref({ relativeDates: mockRelativeDates.value }),
}),
diff --git a/test/nuxt/components/DateTimeButton.spec.ts b/test/nuxt/components/DateTimeButton.spec.ts
new file mode 100644
index 0000000000..379bab7ed6
--- /dev/null
+++ b/test/nuxt/components/DateTimeButton.spec.ts
@@ -0,0 +1,36 @@
+import { mountSuspended } from '@nuxt/test-utils/runtime'
+import { describe, it, expect, vi, beforeEach } from 'vitest'
+import DateTimeButton from '~/components/DateTimeButton.vue'
+
+// Mock the useRelativeDates composable
+const mockRelativeDates = shallowRef(false)
+vi.mock('~/composables/useSettings', () => ({
+ useRelativeDates: () => ({
+ relativeDates: mockRelativeDates,
+ }),
+ useSettings: () => ({
+ settings: ref({ relativeDates: mockRelativeDates.value }),
+ }),
+ useAccentColor: () => ({}),
+}))
+
+describe('DateTimeButton', () => {
+ const testDate = '2024-01-15T12:00:00.000Z'
+
+ beforeEach(() => {
+ mockRelativeDates.value = false
+ })
+
+ it('clicking button to toggle the relative dates settings', async () => {
+ const component = await mountSuspended(DateTimeButton, {
+ props: { datetime: testDate },
+ })
+ const button = component.find('button')
+
+ await button.trigger('click')
+ expect(button.attributes('aria-pressed')).toBe('true')
+
+ await button.trigger('click')
+ expect(button.attributes('aria-pressed')).toBe('false')
+ })
+})