<?php

use App\Models\Post;

test('post getTitle returns title in specified locale', function () {
    $post = Post::factory()->create([
        'title' => ['ar' => 'عنوان عربي', 'en' => 'English Title'],
    ]);

    expect($post->getTitle('ar'))->toBe('عنوان عربي')
        ->and($post->getTitle('en'))->toBe('English Title');
});

test('post getTitle falls back to Arabic when locale missing', function () {
    $post = Post::factory()->create([
        'title' => ['ar' => 'عنوان عربي'],
    ]);

    expect($post->getTitle('en'))->toBe('عنوان عربي');
});

test('post getTitle uses current locale by default', function () {
    $post = Post::factory()->create([
        'title' => ['ar' => 'عنوان عربي', 'en' => 'English Title'],
    ]);

    app()->setLocale('en');
    expect($post->getTitle())->toBe('English Title');

    app()->setLocale('ar');
    expect($post->getTitle())->toBe('عنوان عربي');
});

test('post getBody returns body in specified locale', function () {
    $post = Post::factory()->create([
        'body' => ['ar' => 'محتوى عربي', 'en' => 'English Content'],
    ]);

    expect($post->getBody('ar'))->toBe('محتوى عربي')
        ->and($post->getBody('en'))->toBe('English Content');
});

test('post getBody falls back to Arabic when locale missing', function () {
    $post = Post::factory()->create([
        'body' => ['ar' => 'محتوى عربي'],
    ]);

    expect($post->getBody('en'))->toBe('محتوى عربي');
});
