Browse Source

Remove database seeder need on testing suite

pull/1/head
Nafies Luthfi 8 years ago
parent
commit
d77d821b5d
  1. 14
      app/Entities/Users/User.php
  2. 7
      database/seeds/DatabaseSeeder.php
  3. 22
      database/seeds/UserRolesPermissionsTableSeeder.php
  4. 22
      database/seeds/UsersRoleTableSeeder.php
  5. 36
      database/seeds/UsersTableSeeder.php
  6. 3
      tests/Feature/Auth/MemberRegistrationTest.php
  7. 10
      tests/Feature/ManageUsersTest.php
  8. 2
      tests/Traits/DatabaseMigrateSeeds.php
  9. 2
      tests/Unit/Models/UserTest.php

14
app/Entities/Users/User.php

@ -41,10 +41,16 @@ class User extends Authenticatable
* @param string $role
* @return mixed
*/
public function assignRole($role)
public function assignRole($roleName)
{
$roleId = Role::whereName($role)->firstOrFail()->id;
return $this->roles()->attach($roleId);
$role = Role::firstOrNew(['name' => $roleName]);
if ($role->exists == false) {
$role->label = ucwords($roleName);
$role->save();
}
return $this->roles()->attach($role);
}
/**
@ -71,7 +77,7 @@ class User extends Authenticatable
return $this->roles->contains('name', $role);
}
return !!$role->intersect($this->roles)->count();
return ! ! $role->intersect($this->roles)->count();
}
public function hasRoles(array $roleNameArray)

7
database/seeds/DatabaseSeeder.php

@ -1,6 +1,5 @@
<?php
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
@ -12,10 +11,6 @@ class DatabaseSeeder extends Seeder
*/
public function run()
{
Model::unguard();
$this->call(UserRolesPermissionsTableSeeder::class);
$this->call(UsersTableSeeder::class);
$this->call(UsersRoleTableSeeder::class);
Model::reguard();
//
}
}

22
database/seeds/UserRolesPermissionsTableSeeder.php

@ -1,22 +0,0 @@
<?php
use Illuminate\Database\Seeder;
class UserRolesPermissionsTableSeeder extends Seeder
{
private $tableToSeed = 'roles_permissions';
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
DB::table($this->tableToSeed)->truncate();
DB::table($this->tableToSeed)->insert([
['type' => 0, 'name' => 'admin', 'label' => 'Admin'],
['type' => 0, 'name' => 'worker', 'label' => 'Worker'],
]);
}
}

22
database/seeds/UsersRoleTableSeeder.php

@ -1,22 +0,0 @@
<?php
use Illuminate\Database\Seeder;
class UsersRoleTableSeeder extends Seeder
{
private $tableToSeed = 'role_user';
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
DB::table($this->tableToSeed)->truncate();
DB::table($this->tableToSeed)->insert([
['user_id' => 1, 'role_id' => 1],
['user_id' => 2, 'role_id' => 2],
]);
}
}

36
database/seeds/UsersTableSeeder.php

@ -1,36 +0,0 @@
<?php
use Illuminate\Database\Seeder;
class UsersTableSeeder extends Seeder
{
private $tableToSeed = 'users';
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
DB::table($this->tableToSeed)->truncate();
DB::table($this->tableToSeed)->insert([
[
'name' => 'Administrator',
'email' => 'admin@app.dev',
'password' => bcrypt('admin'),
'remember_token' => str_random(10),
'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H:i:s'),
],
[
'name' => 'Customer',
'email' => 'member@app.dev',
'password' => bcrypt('member'),
'remember_token' => str_random(10),
'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H:i:s'),
]
]);
}
}

3
tests/Feature/Auth/MemberRegistrationTest.php

@ -2,6 +2,7 @@
namespace Tests\Feature\Auth;
use App\Entities\Users\User;
use Tests\TestCase;
class MemberRegistrationTest extends TestCase
@ -9,6 +10,8 @@ class MemberRegistrationTest extends TestCase
/** @test */
public function registration_validation()
{
factory(User::class)->create(['email' => 'member@app.dev']);
$this->visit(route('auth.register'));
$this->submitForm(trans('auth.register'), [

10
tests/Feature/ManageUsersTest.php

@ -7,6 +7,16 @@ use Tests\TestCase;
class ManageUsersTest extends TestCase
{
public function setUp()
{
parent::setUp();
\DB::table('roles_permissions')->insert([
['type' => 0, 'name' => 'admin', 'label' => 'Admin'],
['type' => 0, 'name' => 'worker', 'label' => 'Worker'],
]);
}
/** @test */
public function admin_can_insert_new_user()
{

2
tests/Traits/DatabaseMigrateSeeds.php

@ -14,7 +14,7 @@ trait DatabaseMigrateSeeds
public function runDatabaseMigrateSeeds()
{
$this->artisan('migrate');
$this->artisan('db:seed');
// $this->artisan('db:seed');
$this->app[Kernel::class]->setArtisan(null);
}

2
tests/Unit/Models/UserTest.php

@ -55,6 +55,6 @@ class UserTest extends TestCase
$user = factory(User::class)->create();
$user->assignRole('worker');
$this->assertCount(2, User::orderBy('name')->hasRoles(['worker'])->get());
$this->assertCount(1, User::orderBy('name')->hasRoles(['worker'])->get());
}
}
Loading…
Cancel
Save