Create CI testing

This commit is contained in:
Deon George
2021-06-15 22:19:14 +10:00
parent 4011b2a82d
commit 292040cef7
14 changed files with 356 additions and 44 deletions

View File

@@ -0,0 +1,52 @@
<?php
namespace Database\Factories;
use App\Models\Domain;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;
class DomainFactory extends Factory
{
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = Domain::class;
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'name' => $this->faker->name(),
'dnsdomain' => $this->faker->unique()->safeEmail(),
'notes' => $this->faker->text(),
'homepage' => $this->faker->text(),
'active' => FALSE,
'public' => FALSE,
];
}
public function active()
{
return $this->state(function (array $attributes) {
return [
'active' => TRUE,
];
});
}
public function public()
{
return $this->state(function (array $attributes) {
return [
'public' => TRUE,
];
});
}
}

View File

@@ -1,24 +1,42 @@
<?php
use Faker\Generator as Faker;
namespace Database\Factories;
/*
|--------------------------------------------------------------------------
| Model Factories
|--------------------------------------------------------------------------
|
| This directory should contain each of the model factory definitions for
| your application. Factories provide a convenient way to generate new
| model instances for testing / seeding your application's database.
|
*/
use App\Models\User;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;
$factory->define(App\User::class, function (Faker $faker) {
return [
'name' => $faker->name,
'email' => $faker->unique()->safeEmail,
'email_verified_at' => now(),
'password' => '$2y$10$TKh8H1.PfQx37YgCzwiKb.KjNyWgaHb9cbcoQgdIVFlYg7B77UdFm', // secret
'remember_token' => str_random(10),
];
});
class UserFactory extends Factory
{
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = User::class;
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'name' => $this->faker->name(),
'email' => $this->faker->unique()->safeEmail(),
'email_verified_at' => now(),
'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
'remember_token' => Str::random(10),
];
}
public function admin()
{
return $this->state(function (array $attributes) {
return [
'admin' => true,
];
});
}
}

View File

@@ -0,0 +1,42 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddAdminToUsers extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->boolean('admin')->nullable();
});
Schema::create('domain_user', function (Blueprint $table) {
$table->integer('domain_id');
$table->foreign('domain_id')->references('id')->on('domains');
$table->integer('user_id');
$table->foreign('user_id')->references('id')->on('users');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('users', function (Blueprint $table) {
$table->dropColumn('admin');
});
Schema::dropIfExists('domain_user');
}
}