Files
libra/tests/Feature/Public/AboutPageTest.php
T

595 lines
19 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
// AC1: Route & Navigation
test('about page is accessible at /about', function () {
$this->get('/about')
->assertOk();
});
test('about page route is named about', function () {
expect(route('about'))->toEndWith('/about');
});
// AC2: Page Structure
test('about page uses public layout', function () {
$this->get('/about')
->assertOk()
->assertSee('data-test="main-navigation"', false)
->assertSee('<footer', false);
});
// AC3: Hero Section Container
// AC4: Page Title
test('about page displays title in English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee(__('site.nav_about', [], 'en'));
});
test('about page displays title in Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/about')
->assertOk()
->assertSee('من نحن');
});
// AC5: Tagline Display
test('about page displays tagline in English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee('Committed to Justice – Grounded in Dignity – Driven to Advocate');
});
test('about page displays tagline in Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/about')
->assertOk()
->assertSee('ملتزمون بالعدالة – متجذرون بالكرامة – مدفوعون للدفاع');
});
// AC6: Identity Statement
// AC8: RTL Support - Verified via locale setting (RTL is handled by layout)
test('about page sets correct language direction for Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/about')
->assertOk()
->assertSee('dir="rtl"', false);
});
test('about page sets correct language direction for English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee('dir="ltr"', false);
});
// Navigation Link Tests
test('navigation contains about us link in English', function () {
$this->withSession(['locale' => 'en'])
->get('/')
->assertOk()
->assertSee(__('site.nav_about', [], 'en'))
->assertSee('href="'.route('about').'"', false);
});
test('navigation contains about us link in Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/')
->assertOk()
->assertSee('من نحن')
->assertSee('href="'.route('about').'"', false);
});
test('about link in navigation has data-test attribute', function () {
$this->get('/')
->assertOk()
->assertSee('data-test="nav-about"', false);
});
test('mobile navigation contains about us link', function () {
$this->get('/')
->assertOk()
->assertSee('data-test="mobile-nav-about"', false);
});
// Story 16.2: Vision & Mission Section Tests
// AC1: Vision Section Container
// AC2: Vision Section Header
test('about page displays vision title in English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee('Our Vision');
});
test('about page displays vision title in Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/about')
->assertOk()
->assertSee('رؤيتنا');
});
// AC3: Vision Statement
// AC4: Mission Section Container
// AC5: Mission Section Header
test('about page displays mission title in English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee('Our Mission');
});
// AC6: Mission Cards - Institution
test('about page displays institution mission card in English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee('For Our Institution')
->assertSee('Libra works at the heart of society');
});
test('about page displays institution mission card in Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/about')
->assertOk()
->assertSee('لمؤسستنا')
->assertSee('تعمل ليبرا في قلب المجتمع');
});
// AC6: Mission Cards - Society
// AC6: Mission Cards - Diaspora
test('about page displays diaspora mission card in English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee('For Palestinians in the Diaspora')
->assertSee('platform for listening to Palestinians in the diaspora');
});
test('about page displays diaspora mission card in Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/about')
->assertOk()
->assertSee('للفلسطينيين في الشتات')
->assertSee('منصة للاستماع إلى الفلسطينيين في الشتات');
});
// AC7: Mission Card Styling
// AC8: Responsive Grid
// AC7: Icons present (Flux renders icons as inline SVGs)
test('about page mission cards have icons', function () {
$this->get('/about')
->assertOk()
->assertSee('<svg', false); // Flux icons render as inline SVGs
});
// Story 16.3: Values Section Tests
// AC1: Values Section Container
// AC2: Values Section Header
test('about page displays values title in English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee('Our Values');
});
test('about page displays values title in Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/about')
->assertOk()
->assertSee('قيمنا');
});
// AC3: Values Introduction
test('about page displays values intro in English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee('These values start in the field and return to the people.');
});
test('about page displays values intro in Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/about')
->assertOk()
->assertSee('هذه القيم تبدأ من الميدان وتعود إلى الناس.');
});
// AC4: Six Value Cards - English
test('about page displays integrity value in English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee('Integrity');
});
test('about page displays justice value in English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee('Justice');
});
test('about page displays knowledge value in English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee('Knowledge');
});
test('about page displays women empowerment value in English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee("Women's Empowerment");
});
test('about page displays professionalism value in English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee('Professionalism');
});
test('about page displays social innovation value in English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee('Social Innovation');
});
// AC4: Six Value Cards - Arabic
test('about page displays integrity value in Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/about')
->assertOk()
->assertSee('النزاهة');
});
test('about page displays justice value in Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/about')
->assertOk()
->assertSee('العدالة');
});
test('about page displays knowledge value in Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/about')
->assertOk()
->assertSee('المعرفة');
});
test('about page displays women empowerment value in Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/about')
->assertOk()
->assertSee('تمكين المرأة');
});
test('about page displays professionalism value in Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/about')
->assertOk()
->assertSee('الاحترافية');
});
test('about page displays social innovation value in Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/about')
->assertOk()
->assertSee('الابتكار الاجتماعي');
});
// AC5: Value Card Styling
// AC6: Responsive Grid
// Story 16.4: Goals Section Tests
// AC1: Goals Section Container
// AC2: Goals Section Header
test('about page displays goals title in English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee('Our Goals');
});
test('about page displays goals title in Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/about')
->assertOk()
->assertSee('أهدافنا');
});
// AC3: Seven Goals Display - English
test('about page displays goal 1 in English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee('Supporting Palestinian legal professionals and developing their professional and research capabilities.');
});
test('about page displays goal 2 in English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee('Documenting and analyzing community cases to produce legal knowledge grounded in reality.');
});
test('about page displays goal 3 in English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee('Preparing and writing research papers that address contemporary legal issues in depth and systematically.');
});
test('about page displays goal 4 in English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee('Launching legal awareness programs that raise community awareness of rights and obligations.');
});
test('about page displays goal 5 in English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee('Strengthening the connection between society and its legal history through knowledge-based and cultural initiatives.');
});
test('about page displays goal 6 in English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee('Developing innovative legal solutions based on field research that reflects the Palestinian social context.');
});
test('about page displays goal 7 in English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee('Promoting justice and empowering women through specialized and accessible legal services.');
});
// AC3: Seven Goals Display - Arabic
test('about page displays goal 1 in Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/about')
->assertOk()
->assertSee('دعم المهنيين القانونيين الفلسطينيين وتطوير قدراتهم المهنية والبحثية.');
});
test('about page displays goal 2 in Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/about')
->assertOk()
->assertSee('توثيق وتحليل القضايا المجتمعية لإنتاج معرفة قانونية متجذرة في الواقع.');
});
test('about page displays goal 3 in Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/about')
->assertOk()
->assertSee('إعداد وكتابة أوراق بحثية تعالج القضايا القانونية المعاصرة بعمق ومنهجية.');
});
test('about page displays goal 4 in Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/about')
->assertOk()
->assertSee('إطلاق برامج توعية قانونية ترفع وعي المجتمع بحقوقه وواجباته.');
});
test('about page displays goal 5 in Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/about')
->assertOk()
->assertSee('تعزيز الصلة بين المجتمع وتاريخه القانوني من خلال المبادرات المعرفية والثقافية.');
});
test('about page displays goal 6 in Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/about')
->assertOk()
->assertSee('تطوير حلول قانونية مبتكرة قائمة على البحث الميداني الذي يعكس السياق الاجتماعي الفلسطيني.');
});
test('about page displays goal 7 in Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/about')
->assertOk()
->assertSee('تعزيز العدالة وتمكين المرأة من خلال خدمات قانونية متخصصة وميسّرة.');
});
// AC4: Goals Card Container Styling
// AC5: Numbered Circle Style
// AC6: Responsive Grid Layout
// AC7: All 7 goal numbers are displayed
test('about page displays all 7 goal numbers', function () {
$response = $this->withSession(['locale' => 'en'])->get('/about');
$response->assertOk();
// Verify there are 7 goals by checking the translation array count
expect(count(__('about.goals')))->toBe(7);
});
// Story 16.5: Legal Services Section Tests
// AC1: Services Section Container
// AC2: Services Section Header
test('about page displays services title in English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee('Our Legal Services');
});
test('about page displays services title in Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/about')
->assertOk()
->assertSee('خدماتنا القانونية');
});
// AC3: Services Introduction
// AC4: Four Service Categories - Card 1: Legal Consultations & Representation
test('about page displays consultation service card title in English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee('Legal Consultations')
->assertSee('Representation');
});
test('about page displays consultation service card title in Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/about')
->assertOk()
->assertSee('الاستشارات والتمثيل القانوني');
});
test('about page displays consultation service items in English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee('Legal advice')
->assertSee('Court representation')
->assertSee('Litigation management')
->assertSee('Pleadings')
->assertSee('appeals');
});
test('about page displays consultation service items in Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/about')
->assertOk()
->assertSee('الاستشارات القانونية')
->assertSee('التمثيل أمام المحاكم')
->assertSee('إدارة التقاضي')
->assertSee('المذكرات والاستئناف');
});
// AC4: Four Service Categories - Card 2: Women's & Family Law
test('about page displays family service card title in English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee('Women')
->assertSee('Family Law');
});
test('about page displays family service card title in Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/about')
->assertOk()
->assertSee('قانون المرأة والأسرة');
});
test('about page displays family service items in English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee('Divorce proceedings')
->assertSee('Alimony cases')
->assertSee('Child custody')
->assertSee('Protection from violence');
});
test('about page displays family service items in Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/about')
->assertOk()
->assertSee('إجراءات الطلاق')
->assertSee('قضايا النفقة')
->assertSee('حضانة الأطفال')
->assertSee('الحماية من العنف');
});
// AC4: Four Service Categories - Card 3: Civil & Commercial
test('about page displays civil service card title in English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee('Civil')
->assertSee('Commercial Disputes');
});
test('about page displays civil service card title in Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/about')
->assertOk()
->assertSee('النزاعات المدنية والتجارية');
});
test('about page displays civil service items in English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee('Partnership cases')
->assertSee('Financial claims')
->assertSee('Civil disputes')
->assertSee('Commercial litigation');
});
test('about page displays civil service items in Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/about')
->assertOk()
->assertSee('قضايا الشراكة')
->assertSee('المطالبات المالية')
->assertSee('النزاعات المدنية')
->assertSee('التقاضي التجاري');
});
// AC4: Four Service Categories - Card 4: Business Services
test('about page displays business service card title in English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee('Business Legal Services');
});
test('about page displays business service card title in Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/about')
->assertOk()
->assertSee('الخدمات القانونية للأعمال');
});
// AC5: Service Card Styling
// AC6: Responsive Grid
// AC7: CTA Button
test('about page services section has CTA button in English', function () {
$this->withSession(['locale' => 'en'])
->get('/about')
->assertOk()
->assertSee('Book a Consultation');
});
test('about page services section has CTA button in Arabic', function () {
$this->withSession(['locale' => 'ar'])
->get('/about')
->assertOk()
->assertSee('احجز استشارة');
});
test('about page services CTA links to booking page', function () {
$this->get('/about')
->assertOk()
->assertSee('href="'.route('booking').'"', false);
});
// Story 16.6: Scholarship Aspiration Section Tests
// AC1: Scholarship Section Container
// AC2: Scholarship Section Header
// AC3: Scholarship Description
// AC4: Key Aspirations List
// AC5: Aspiration Item Styling (icons in scholarship section)
// AC6: Visual Accent (decorative border)
// AC7: Responsive Layout
// AC8: All 4 aspirations are present