create(); $this->assertInstanceOf(Meta::class, $meta); $this->assertIsString($meta->key); $this->assertIsString($meta->value); } /** @test */ public function it_has_correct_fillable_attributes() { $metaData = [ 'key' => 'total_emails_created', 'value' => '1500', ]; $meta = Meta::create($metaData); foreach ($metaData as $key => $value) { $this->assertEquals($value, $meta->$key); } } /** @test */ public function it_stores_key_value_pairs_correctly() { $meta = Meta::factory()->create([ 'key' => 'app_version', 'value' => '1.2.3', ]); $this->assertEquals('app_version', $meta->key); $this->assertEquals('1.2.3', $meta->value); } /** @test */ public function it_can_retrieve_value_by_key() { Meta::factory()->create(['key' => 'site_name', 'value' => 'ZEmailnator']); Meta::factory()->create(['key' => 'max_emails', 'value' => '100']); $siteName = Meta::where('key', 'site_name')->first(); $maxEmails = Meta::where('key', 'max_emails')->first(); $this->assertEquals('ZEmailnator', $siteName->value); $this->assertEquals('100', $maxEmails->value); } }