diff --git a/frontend/src/__tests__/AboutPage.spec.ts b/frontend/src/__tests__/AboutPage.spec.ts
index ac4ebd8..8563c1f 100644
--- a/frontend/src/__tests__/AboutPage.spec.ts
+++ b/frontend/src/__tests__/AboutPage.spec.ts
@@ -1,10 +1,44 @@
import { describe, it, expect } from 'vitest'
import { mount } from '@vue/test-utils'
+import { createRouter, createMemoryHistory } from 'vue-router'
import AboutPage from '@/pages/AboutPage.vue'
+function createTestRouter() {
+ return createRouter({
+ history: createMemoryHistory(),
+ routes: [
+ { path: '/om-oss', name: 'about', component: AboutPage },
+ { path: '/', name: 'home', component: { template: '
Home
' } },
+ ],
+ })
+}
+
describe('AboutPage', () => {
- it('renders heading', () => {
- const wrapper = mount(AboutPage)
+ it('renders heading and lead', () => {
+ const router = createTestRouter()
+ const wrapper = mount(AboutPage, {
+ global: { plugins: [router] },
+ })
expect(wrapper.text()).toContain('Om Bilhej')
+ expect(wrapper.text()).toContain('Bilhej gör det enkelt')
+ })
+
+ it('renders how-it-works steps', () => {
+ const router = createTestRouter()
+ const wrapper = mount(AboutPage, {
+ global: { plugins: [router] },
+ })
+ expect(wrapper.text()).toContain('Skriv brevet här')
+ expect(wrapper.text()).toContain('Vi postar åt dig')
+ })
+
+ it('links to home page', () => {
+ const router = createTestRouter()
+ const wrapper = mount(AboutPage, {
+ global: { plugins: [router] },
+ })
+ const cta = wrapper.find('a.about__cta-btn')
+ expect(cta.exists()).toBe(true)
+ expect(cta.attributes('href')).toBe('/')
})
})
diff --git a/frontend/src/__tests__/AppFooter.spec.ts b/frontend/src/__tests__/AppFooter.spec.ts
index 42587d1..80f9b85 100644
--- a/frontend/src/__tests__/AppFooter.spec.ts
+++ b/frontend/src/__tests__/AppFooter.spec.ts
@@ -8,10 +8,14 @@ function createTestRouter() {
history: createMemoryHistory(),
routes: [
{
- path: '/om',
+ path: '/om-oss',
name: 'about',
component: { template: 'About
' },
},
+ {
+ path: '/om',
+ redirect: '/om-oss',
+ },
{
path: '/kontakt',
name: 'contact',
@@ -40,7 +44,7 @@ describe('AppFooter', () => {
const links = wrapper.findAll('a')
expect(links[0].text()).toBe('Om oss')
- expect(links[0].attributes('href')).toBe('/om')
+ expect(links[0].attributes('href')).toBe('/om-oss')
expect(links[1].text()).toBe('Kontakt')
expect(links[1].attributes('href')).toBe('/kontakt')
diff --git a/frontend/src/__tests__/ContactPage.spec.ts b/frontend/src/__tests__/ContactPage.spec.ts
index a317239..86f39f2 100644
--- a/frontend/src/__tests__/ContactPage.spec.ts
+++ b/frontend/src/__tests__/ContactPage.spec.ts
@@ -3,8 +3,23 @@ import { mount } from '@vue/test-utils'
import ContactPage from '@/pages/ContactPage.vue'
describe('ContactPage', () => {
- it('renders heading', () => {
+ it('renders heading and lead', () => {
const wrapper = mount(ContactPage)
expect(wrapper.text()).toContain('Kontakta oss')
+ expect(wrapper.text()).toContain('klagomål')
+ })
+
+ it('renders general support email', () => {
+ const wrapper = mount(ContactPage)
+ const link = wrapper.find('a[href="mailto:kontakt@bilhej.se"]')
+ expect(link.exists()).toBe(true)
+ expect(link.text()).toBe('kontakt@bilhej.se')
+ })
+
+ it('renders complaints email', () => {
+ const wrapper = mount(ContactPage)
+ const link = wrapper.find('a[href="mailto:jcamorling@gmail.com"]')
+ expect(link.exists()).toBe(true)
+ expect(wrapper.text()).toContain('jcamorling@gmail.com')
})
})
diff --git a/frontend/src/__tests__/OrdersPage.spec.ts b/frontend/src/__tests__/OrdersPage.spec.ts
index 1c87843..32e8f94 100644
--- a/frontend/src/__tests__/OrdersPage.spec.ts
+++ b/frontend/src/__tests__/OrdersPage.spec.ts
@@ -337,4 +337,42 @@ describe('OrdersPage', () => {
const badge = wrapper.find('.badge')
expect(badge.classes()).toContain('badge--primary')
})
+
+ it('shows expand toggle for long messages and reveals full text', async () => {
+ const longText =
+ 'Hej! Jag ville nämna en situation i trafiken där vi båda kanske blev lite frustrerade. Det är lätt att det blir så när man kör bil i rusningstid och tempot blir högt.'
+ const ordersWithLongMessage = [
+ {
+ id: 'c1eebc99-9c0b-4ef8-bb6d-6bb9bd380a11',
+ plate: 'ABC123',
+ letterText: longText,
+ status: 'processing',
+ trackingId: null,
+ createdAt: '2026-05-11T12:00:00Z',
+ },
+ ]
+ mockOrdersFetch(ordersWithLongMessage)
+ const { wrapper } = mountPage()
+ await new Promise((r) => setTimeout(r, 50))
+
+ const card = wrapper.find('.orders__card')
+ const preview = card.find('.orders__preview')
+ const toggle = card.find('.orders__preview-toggle')
+
+ expect(toggle.exists()).toBe(true)
+ expect(toggle.text()).toBe('Visa mer')
+ expect(preview.classes()).not.toContain('orders__preview--expanded')
+
+ await toggle.trigger('click')
+
+ expect(preview.classes()).toContain('orders__preview--expanded')
+ expect(toggle.text()).toBe('Visa mindre')
+ expect(card.text()).toContain(longText)
+ })
+
+ it('does not show expand toggle for short messages', async () => {
+ const { wrapper } = mountPage()
+ await new Promise((r) => setTimeout(r, 50))
+ expect(wrapper.find('.orders__preview-toggle').exists()).toBe(false)
+ })
})
diff --git a/frontend/src/components/AppFooter.vue b/frontend/src/components/AppFooter.vue
index 0d11d4c..b83473f 100644
--- a/frontend/src/components/AppFooter.vue
+++ b/frontend/src/components/AppFooter.vue
@@ -6,11 +6,10 @@ import { RouterLink } from 'vue-router'