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('get('/about') ->assertOk() ->assertSee('bg-[#2D3624]', false); }); // AC4: Page Title test('about page displays title in English', function () { $this->withSession(['locale' => 'en']) ->get('/about') ->assertOk() ->assertSee('About Us'); }); 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 test('about page displays identity statement in English', function () { $this->withSession(['locale' => 'en']) ->get('/about') ->assertOk() ->assertSee('A legal institution woven from the fabric of society, using research as a tool of power to serve justice.'); }); test('about page displays identity statement in Arabic', function () { $this->withSession(['locale' => 'ar']) ->get('/about') ->assertOk() ->assertSee('مؤسسة قانونية منسوجة من نسيج المجتمع، تستخدم البحث كأداة قوة لخدمة العدالة.'); }); // 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('About Us') ->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 test('about page has vision section with white background', function () { $this->get('/about') ->assertOk() ->assertSee('bg-white py-8', false); }); // 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 test('about page displays vision statement in English', function () { $this->withSession(['locale' => 'en']) ->get('/about') ->assertOk() ->assertSee('Libra is woven from the fabric of society'); }); test('about page displays vision statement in Arabic', function () { $this->withSession(['locale' => 'ar']) ->get('/about') ->assertOk() ->assertSee('ليبرا منسوجة من نسيج المجتمع'); }); // AC4: Mission Section Container test('about page has mission section with cream background', function () { $this->get('/about') ->assertOk() ->assertSee('bg-background py-8', false); }); // AC5: Mission Section Header test('about page displays mission title in English', function () { $this->withSession(['locale' => 'en']) ->get('/about') ->assertOk() ->assertSee('Our Mission'); }); test('about page displays mission title in Arabic', function () { $this->withSession(['locale' => 'ar']) ->get('/about') ->assertOk() ->assertSee('مهمتنا'); }); // 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 test('about page displays society mission card in English', function () { $this->withSession(['locale' => 'en']) ->get('/about') ->assertOk() ->assertSee('For Society') ->assertSee('Libra Scholarship for Law and Palestinian Arts'); }); test('about page displays society mission card in Arabic', function () { $this->withSession(['locale' => 'ar']) ->get('/about') ->assertOk() ->assertSee('للمجتمع') ->assertSee('منحة ليبرا للقانون والفنون الفلسطينية'); }); // 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 test('about page mission cards have correct styling', function () { $this->get('/about') ->assertOk() ->assertSee('bg-white rounded-lg shadow-sm p-6', false); }); // AC8: Responsive Grid test('about page mission cards use responsive grid', function () { $this->get('/about') ->assertOk() ->assertSee('grid-cols-1 md:grid-cols-2 lg:grid-cols-3', false); }); // AC7: Icons present (Flux renders icons as inline SVGs) test('about page mission cards have icons', function () { $this->get('/about') ->assertOk() ->assertSee('get('/about') ->assertOk() ->assertSee('bg-white py-8 sm:py-12 lg:py-[60px]', false); }); // 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 test('about page value cards have correct styling', function () { $this->get('/about') ->assertOk() ->assertSee('bg-background rounded-xl p-6 text-center hover:shadow-md transition-shadow', false); }); // AC6: Responsive Grid test('about page value cards use responsive grid', function () { $this->get('/about') ->assertOk() ->assertSee('grid-cols-2 md:grid-cols-3 lg:grid-cols-6', false); }); // Story 16.4: Goals Section Tests // AC1: Goals Section Container test('about page has goals section with cream background', function () { $this->get('/about') ->assertOk() ->assertSee('bg-background py-8 sm:py-12 lg:py-[60px]', false); }); // 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 test('about page goals section has white card container', function () { $this->get('/about') ->assertOk() ->assertSee('bg-white rounded-lg shadow-sm p-6 sm:p-8 max-w-5xl mx-auto', false); }); // AC5: Numbered Circle Style test('about page goals have numbered circles with gold background', function () { $this->get('/about') ->assertOk() ->assertSee('w-8 h-8 bg-accent text-white rounded-full', false); }); // AC6: Responsive Grid Layout test('about page goals use responsive grid layout', function () { $this->get('/about') ->assertOk() ->assertSee('grid-cols-1 md:grid-cols-2 gap-x-12 gap-y-6', false); }); // 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 test('about page has services section with white background', function () { $this->get('/about') ->assertOk() ->assertSee('bg-white py-8 sm:py-12 lg:py-[60px]', false); }); // 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 test('about page displays services intro in English', function () { $this->withSession(['locale' => 'en']) ->get('/about') ->assertOk() ->assertSee('Libra provides comprehensive legal services as a for-profit law firm, combining traditional legal practice with research-driven insight.'); }); test('about page displays services intro in Arabic', function () { $this->withSession(['locale' => 'ar']) ->get('/about') ->assertOk() ->assertSee('تقدم ليبرا خدمات قانونية شاملة كمكتب محاماة ربحي، يجمع بين الممارسة القانونية التقليدية والرؤية المبنية على البحث.'); }); // 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('الخدمات القانونية للأعمال'); }); test('about page displays business service items in English', function () { $this->withSession(['locale' => 'en']) ->get('/about') ->assertOk() ->assertSee('Contract drafting') ->assertSee('review') ->assertSee('Governance') ->assertSee('compliance') ->assertSee('Arbitration') ->assertSee('Alternative dispute resolution'); }); test('about page displays business service items in Arabic', function () { $this->withSession(['locale' => 'ar']) ->get('/about') ->assertOk() ->assertSee('صياغة ومراجعة العقود') ->assertSee('الحوكمة والامتثال') ->assertSee('التحكيم') ->assertSee('الحل البديل للنزاعات'); }); // AC5: Service Card Styling test('about page service cards have correct styling', function () { $this->get('/about') ->assertOk() ->assertSee('bg-background rounded-xl p-8 text-center shadow-sm', false); }); // AC6: Responsive Grid test('about page service cards use responsive grid', function () { $this->get('/about') ->assertOk() ->assertSee('grid-cols-1 md:grid-cols-2 lg:grid-cols-4', false); }); // 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 test('about page has scholarship section with dark forest green background', function () { $this->get('/about') ->assertOk() ->assertSee('bg-[#2D3624] py-8 sm:py-12 lg:py-[60px]', false); }); // AC2: Scholarship Section Header test('about page displays scholarship title in English', function () { $this->withSession(['locale' => 'en']) ->get('/about') ->assertOk() ->assertSee('Our Aspiration: Libra Scholarship'); }); test('about page displays scholarship title in Arabic', function () { $this->withSession(['locale' => 'ar']) ->get('/about') ->assertOk() ->assertSee('طموحنا: منحة ليبرا'); }); // AC3: Scholarship Description test('about page displays scholarship description paragraph 1 in English', function () { $this->withSession(['locale' => 'en']) ->get('/about') ->assertOk() ->assertSee('Art is the ambassador of Historical Palestine and the Palestinian people.'); }); test('about page displays scholarship description paragraph 1 in Arabic', function () { $this->withSession(['locale' => 'ar']) ->get('/about') ->assertOk() ->assertSee('الفن هو سفير فلسطين التاريخية والشعب الفلسطيني.'); }); test('about page displays scholarship description paragraph 2 in English', function () { $this->withSession(['locale' => 'en']) ->get('/about') ->assertOk() ->assertSee('We aim to open ongoing discussions about the Palestinian situation and reality'); }); test('about page displays scholarship description paragraph 2 in Arabic', function () { $this->withSession(['locale' => 'ar']) ->get('/about') ->assertOk() ->assertSee('نهدف إلى فتح نقاشات مستمرة حول الوضع والواقع الفلسطيني'); }); // AC4: Key Aspirations List test('about page displays aspiration 1 in English', function () { $this->withSession(['locale' => 'en']) ->get('/about') ->assertOk() ->assertSee('Empowering students to present Palestinian messages globally'); }); test('about page displays aspiration 1 in Arabic', function () { $this->withSession(['locale' => 'ar']) ->get('/about') ->assertOk() ->assertSee('تمكين الطلاب من تقديم الرسائل الفلسطينية عالمياً'); }); test('about page displays aspiration 2 in English', function () { $this->withSession(['locale' => 'en']) ->get('/about') ->assertOk() ->assertSee('Opening ongoing discussions about Palestinian reality'); }); test('about page displays aspiration 2 in Arabic', function () { $this->withSession(['locale' => 'ar']) ->get('/about') ->assertOk() ->assertSee('فتح نقاشات مستمرة حول الواقع الفلسطيني'); }); test('about page displays aspiration 3 in English', function () { $this->withSession(['locale' => 'en']) ->get('/about') ->assertOk() ->assertSee('Protecting intellectual property rights'); }); test('about page displays aspiration 3 in Arabic', function () { $this->withSession(['locale' => 'ar']) ->get('/about') ->assertOk() ->assertSee('حماية حقوق الملكية الفكرية'); }); test('about page displays aspiration 4 in English', function () { $this->withSession(['locale' => 'en']) ->get('/about') ->assertOk() ->assertSee('Enabling participation in local and international exhibitions'); }); test('about page displays aspiration 4 in Arabic', function () { $this->withSession(['locale' => 'ar']) ->get('/about') ->assertOk() ->assertSee('تمكين المشاركة في المعارض المحلية والدولية'); }); // AC5: Aspiration Item Styling (icons in scholarship section) test('about page scholarship aspirations have icons', function () { $this->get('/about') ->assertOk() ->assertSee('w-6 h-6 text-accent flex-shrink-0', false); }); // AC6: Visual Accent (decorative border) test('about page scholarship section has decorative accent', function () { $this->get('/about') ->assertOk() ->assertSee('border-accent/20', false); }); // AC7: Responsive Layout test('about page scholarship aspirations use responsive grid', function () { $this->get('/about') ->assertOk() ->assertSee('grid-cols-1 sm:grid-cols-2 lg:grid-cols-4', false); }); // AC8: All 4 aspirations are present test('about page displays all 4 scholarship aspirations', function () { $this->withSession(['locale' => 'en'])->get('/about')->assertOk(); expect(count(__('about.scholarship_aspirations')))->toBe(4); });