fix(models): correct UserSetting import namespace and add test coverage

This commit is contained in:
2026-09-07 18:34:51 +02:00
parent 208efbb85d
commit 3502c3e85b
34 changed files with 2497 additions and 2 deletions
+69
View File
@@ -0,0 +1,69 @@
<?php
namespace Tests\Unit\Data;
use App\Features\Games\Data\RomFileData;
use App\Features\Games\Models\RomFile;
use PHPUnit\Framework\Attributes\Test;
use Tests\TestCase;
class RomFileDataTest extends TestCase
{
#[Test]
public function it_can_be_created_from_array(): void
{
$data = RomFileData::from([
'id' => 1,
'game_id' => 1,
'file_path' => 'roms/nes/game.nes',
'file_name' => 'game.nes',
'file_size' => 102400,
'file_hash' => 'abc123',
'region' => 'USA',
'language' => 'en',
]);
$this->assertEquals(1, $data->id);
$this->assertEquals(1, $data->gameId);
$this->assertEquals('roms/nes/game.nes', $data->filePath);
$this->assertEquals('game.nes', $data->fileName);
$this->assertEquals(102400, $data->fileSize);
$this->assertEquals('abc123', $data->fileHash);
$this->assertEquals('USA', $data->region);
$this->assertEquals('en', $data->language);
}
#[Test]
public function it_can_be_created_from_model(): void
{
$romFile = RomFile::factory()->create([
'region' => 'Europe',
'language' => 'de',
]);
$data = RomFileData::fromModel($romFile);
$this->assertEquals($romFile->id, $data->id);
$this->assertEquals($romFile->game_id, $data->gameId);
$this->assertEquals($romFile->file_path, $data->filePath);
$this->assertEquals($romFile->file_name, $data->fileName);
$this->assertEquals($romFile->file_size, $data->fileSize);
$this->assertEquals($romFile->file_hash, $data->fileHash);
$this->assertEquals('Europe', $data->region);
$this->assertEquals('de', $data->language);
}
#[Test]
public function it_handles_null_optional_fields(): void
{
$romFile = RomFile::factory()->create([
'region' => null,
'language' => null,
]);
$data = RomFileData::fromModel($romFile);
$this->assertNull($data->region);
$this->assertNull($data->language);
}
}
+63
View File
@@ -0,0 +1,63 @@
<?php
namespace Tests\Unit\Data;
use App\Features\Settings\Data\SaveFileData;
use App\Features\Settings\Models\SaveFile;
use PHPUnit\Framework\Attributes\Test;
use Tests\TestCase;
class SaveFileDataTest extends TestCase
{
#[Test]
public function it_can_be_created_from_array(): void
{
$data = SaveFileData::from([
'id' => 1,
'user_id' => 1,
'game_id' => 1,
'file_path' => 'saves/test.srm',
'file_name' => 'test.srm',
'file_size' => 1024,
'last_synced_at' => null,
]);
$this->assertEquals(1, $data->id);
$this->assertEquals(1, $data->userId);
$this->assertEquals(1, $data->gameId);
$this->assertEquals('saves/test.srm', $data->filePath);
$this->assertEquals('test.srm', $data->fileName);
$this->assertEquals(1024, $data->fileSize);
$this->assertNull($data->lastSyncedAt);
}
#[Test]
public function it_can_be_created_from_model(): void
{
$saveFile = SaveFile::factory()->create([
'last_synced_at' => '2024-01-15 10:30:00',
]);
$data = SaveFileData::fromModel($saveFile);
$this->assertEquals($saveFile->id, $data->id);
$this->assertEquals($saveFile->user_id, $data->userId);
$this->assertEquals($saveFile->game_id, $data->gameId);
$this->assertEquals($saveFile->file_path, $data->filePath);
$this->assertEquals($saveFile->file_name, $data->fileName);
$this->assertEquals($saveFile->file_size, $data->fileSize);
$this->assertNotNull($data->lastSyncedAt);
}
#[Test]
public function it_handles_null_last_synced_at(): void
{
$saveFile = SaveFile::factory()->create([
'last_synced_at' => null,
]);
$data = SaveFileData::fromModel($saveFile);
$this->assertNull($data->lastSyncedAt);
}
}
+43
View File
@@ -0,0 +1,43 @@
<?php
namespace Tests\Unit\Data;
use App\Features\Scraper\Data\ScraperResultData;
use PHPUnit\Framework\Attributes\Test;
use Tests\TestCase;
class ScraperResultDataTest extends TestCase
{
#[Test]
public function it_can_be_created_from_array(): void
{
$data = ScraperResultData::from([
'id' => 123,
'title' => 'Super Mario Bros',
'cover_url' => 'https://example.com/cover.jpg',
'year' => '1985',
'source' => 'igdb',
]);
$this->assertEquals(123, $data->id);
$this->assertEquals('Super Mario Bros', $data->title);
$this->assertEquals('https://example.com/cover.jpg', $data->coverUrl);
$this->assertEquals('1985', $data->year);
$this->assertEquals('igdb', $data->source);
}
#[Test]
public function it_handles_null_optional_fields(): void
{
$data = ScraperResultData::from([
'id' => 1,
'title' => 'Test Game',
'cover_url' => null,
'year' => null,
'source' => 'thegamesdb',
]);
$this->assertNull($data->coverUrl);
$this->assertNull($data->year);
}
}
+42
View File
@@ -0,0 +1,42 @@
<?php
namespace Tests\Unit\Data;
use App\Features\WebDav\Data\WebDavAccountData;
use PHPUnit\Framework\Attributes\Test;
use Tests\TestCase;
class WebDavAccountDataTest extends TestCase
{
#[Test]
public function it_can_be_created_from_array(): void
{
$data = WebDavAccountData::from([
'id' => 1,
'user_id' => 1,
'username' => 'testuser',
'display_name' => 'Test User',
'enabled' => true,
]);
$this->assertEquals(1, $data->id);
$this->assertEquals(1, $data->userId);
$this->assertEquals('testuser', $data->username);
$this->assertEquals('Test User', $data->displayName);
$this->assertTrue($data->enabled);
}
#[Test]
public function it_handles_disabled_account(): void
{
$data = WebDavAccountData::from([
'id' => 2,
'user_id' => 1,
'username' => 'disableduser',
'display_name' => 'Disabled User',
'enabled' => false,
]);
$this->assertFalse($data->enabled);
}
}