Browse Source

The get metadata method accepts a default value

pull/68/head
Nafies Luthfi 5 years ago
parent
commit
0ed3d10caa
  1. 4
      app/User.php
  2. 18
      tests/Unit/UserTest.php

4
app/User.php

@ -320,7 +320,7 @@ class User extends Authenticatable
return $this->hasMany(UserMetadata::class, 'user_id', 'id');
}
public function getMetadata($key = null)
public function getMetadata($key = null, $defaultValue = null)
{
$metadata = $this->metadata;
@ -340,5 +340,7 @@ class User extends Authenticatable
if ($meta) {
return $meta->value;
}
return $defaultValue;
}
}

18
tests/Unit/UserTest.php

@ -159,6 +159,24 @@ class UserTest extends TestCase
}
/** @test */
public function user_model_get_metadata_method_accepts_a_default_value()
{
$user = factory(User::class)->create();
$this->assertEquals('Default value', $user->getMetadata('some_missing_key', 'Default value'));
DB::table('user_metadata')->insert([
'id' => Uuid::uuid4()->toString(),
'user_id' => $user->id,
'key' => 'some_missing_key',
'value' => 'Some value',
]);
$user = $user->fresh();
$this->assertEquals('Some value', $user->getMetadata('some_missing_key', 'Default value'));
}
/** @test */
public function user_have_mother_link_method()
{
$mother = factory(User::class)->create();

Loading…
Cancel
Save