d7fb7b7a7b
Build & Deploy / Build & Push Docker Image (push) Failing after 47s
Build & Deploy / Deploy to VPS (push) Has been skipped
Test / API Unit Tests (push) Failing after 5m4s
Test / Marketplace Unit Tests (push) Failing after 4m55s
Test / Admin Unit Tests (push) Successful in 9m37s
Test / Dashboard Unit Tests (push) Successful in 9m37s
Test / API Integration Tests (push) Successful in 9m54s
36 lines
1.8 KiB
TypeScript
36 lines
1.8 KiB
TypeScript
import { describe, expect, it } from 'vitest'
|
|
import { getFooterContent, localeOptions } from './MarketplaceShell'
|
|
|
|
describe('MarketplaceShell footer content registry', () => {
|
|
it('exposes exactly the supported marketplace locales in selector order', () => {
|
|
expect(localeOptions.map((option) => option.value)).toEqual(['en', 'ar', 'fr'])
|
|
expect(localeOptions.every((option) => option.label.length > 0 && option.flag.length > 0)).toBe(true)
|
|
})
|
|
|
|
it('returns English footer links with app privacy pointing at the English mobile policy', () => {
|
|
const content = getFooterContent('en')
|
|
|
|
expect(content.localeLabel).toBe('Global (English)')
|
|
expect(content.rightsLabel).toBe('All rights reserved.')
|
|
expect(content.primary).toContainEqual({ label: 'Privacy Policy', href: '/app-privacy-en' })
|
|
expect(content.secondary).toContainEqual({ label: 'Contact Sales', href: '/footer/contact-sales' })
|
|
})
|
|
|
|
it('returns French labels while preserving canonical footer slugs', () => {
|
|
const content = getFooterContent('fr')
|
|
|
|
expect(content.localeLabel).toBe('Europe (French)')
|
|
expect(content.primary).toContainEqual({ label: "Conditions d'utilisation", href: '/footer/terms-of-service' })
|
|
expect(content.secondary).toContainEqual({ label: 'Conditions générales', href: '/footer/general-conditions' })
|
|
})
|
|
|
|
it('returns Arabic labels and app privacy href without falling back to English copy', () => {
|
|
const content = getFooterContent('ar')
|
|
|
|
expect(content.localeLabel).toBe('North Africa (Arabic)')
|
|
expect(content.rightsLabel).toBe('جميع الحقوق محفوظة.')
|
|
expect(content.primary).toContainEqual({ label: 'سياسة الخصوصية', href: '/app-privacy-ar' })
|
|
expect(content.primary.map((item) => item.label)).not.toContain('Privacy Policy')
|
|
})
|
|
})
|