Files
zemailnator/tests/Unit/Models/ActivationKeyTest.php
idevakk 3706072ce5 fix: resolve PSR-4 autoloading and test failures
- Add proper Tests\ namespace to all test classes in tests/Feature and tests/Unit
  - Split RemainingModelsTest.php into separate files (PSR-4 compliance)
  - Create missing factories: MetaFactory, RemoteEmailFactory
  - Add HasFactory trait to RemoteEmail model
  - Add missing ReflectionClass imports to test files
  - Fix mass assignment issues in Meta and RemoteEmail models
  - Override database connection for RemoteEmail in testing environment
  - Fix DateTime comparison precision issues in tests
2025-11-13 09:49:21 -08:00

75 lines
2.1 KiB
PHP

<?php
namespace Tests\Unit\Models;
use App\Models\ActivationKey;
use App\Models\User;
use Tests\TestCase;
class ActivationKeyTest extends TestCase
{
protected function setUp(): void
{
parent::setUp();
$this->user = User::factory()->create();
}
/** @test */
public function it_can_create_an_activation_key_with_factory()
{
$activationKey = ActivationKey::factory()->create();
$this->assertInstanceOf(ActivationKey::class, $activationKey);
$this->assertIsString($activationKey->activation_key);
$this->assertIsInt($activationKey->price_id);
}
/** @test */
public function it_has_correct_fillable_attributes()
{
$activationKeyData = [
'user_id' => $this->user->id,
'activation_key' => 'ACTIVATION-KEY-123456',
'price_id' => 1,
'is_activated' => false,
];
$activationKey = ActivationKey::create($activationKeyData);
foreach ($activationKeyData as $key => $value) {
$this->assertEquals($value, $activationKey->$key);
}
}
/** @test */
public function it_belongs_to_a_user()
{
$activationKey = ActivationKey::factory()->create(['user_id' => $this->user->id]);
$this->assertInstanceOf(User::class, $activationKey->user);
$this->assertEquals($this->user->id, $activationKey->user->id);
}
/** @test */
public function it_generates_unique_keys()
{
$key1 = ActivationKey::factory()->create();
$key2 = ActivationKey::factory()->create();
$this->assertNotEquals($key1->activation_key, $key2->activation_key);
}
/** @test */
public function it_can_query_unactivated_activation_keys()
{
$unactivatedKey = ActivationKey::factory()->create(['is_activated' => false]);
$activatedKey = ActivationKey::factory()->create(['is_activated' => true]);
$unactivatedKeys = ActivationKey::where('is_activated', false)->get();
$activatedKeys = ActivationKey::where('is_activated', true)->get();
$this->assertCount(1, $unactivatedKeys);
$this->assertCount(1, $activatedKeys);
}
}