test_config

This commit is contained in:
KNaveenraj-ladybird
2023-10-25 16:41:51 +05:30
parent 7408c05646
commit 5cbec3fd86
4 changed files with 108 additions and 30 deletions

View File

@@ -7,6 +7,7 @@ use Illuminate\Console\Command;
use Illuminate\Support\Facades\Artisan; use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Database\Seeders\v_2_0_0\DatabaseSeeder;
class SetupTestEnv extends Command class SetupTestEnv extends Command
{ {
@@ -15,7 +16,7 @@ class SetupTestEnv extends Command
* *
* @var string * @var string
*/ */
protected $signature = 'testing-setup {--username=} {--password=}'; protected $signature = 'testing-setup {--username=} {--password=} {--database=}';
/** /**
* The console command description. * The console command description.
@@ -43,10 +44,11 @@ class SetupTestEnv extends Command
{ {
$dbUsername = $this->option('username') ? $this->option('username') : env('DB_USERNAME'); $dbUsername = $this->option('username') ? $this->option('username') : env('DB_USERNAME');
$dbPassword = $this->option('password') ? $this->option('password') : (env('DB_PASSWORD')); $dbPassword = $this->option('password') ? $this->option('password') : (env('DB_PASSWORD'));
$dbName = $this->option('database') ? $this->option('database') : 'testing_db';
$this->setupConfig($dbUsername, $dbPassword); $this->setupConfig($dbUsername, $dbPassword);
echo "\nCreating database...\n"; echo "\nCreating database...\n";
$dbName = 'testing_db';
createDB($dbName); createDB($dbName);
echo "\nDatabase Created Successfully!\n"; echo "\nDatabase Created Successfully!\n";
@@ -144,7 +146,7 @@ class SetupTestEnv extends Command
{ {
try { try {
echo "\nSeeding...\n"; echo "\nSeeding...\n";
Artisan::call('db:seed', ['--force' => true]); Artisan::call('db:seed', ['--class' => DatabaseSeeder::class, '--force' => true]);
echo Artisan::output(); echo Artisan::output();
echo "\nSeeded Successfully!\n"; echo "\nSeeded Successfully!\n";
} catch (\Exception $e) { } catch (\Exception $e) {
@@ -159,7 +161,13 @@ class SetupTestEnv extends Command
*/ */
private function updateAppUrl() private function updateAppUrl()
{ {
return System::first()->update(['url' => 'http://localhost:8000']); $system = System::latest()->first();
if ($system) {
$system->update(['url' => 'http://localhost:8000']);
} else {
echo "\nData doesn't exists";
}
} }
/** /**

View File

@@ -63,6 +63,26 @@ return [
]) : [], ]) : [],
], ],
'testing' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => false,
'engine' => env('DB_ENGINE', null),
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
'pgsql' => [ 'pgsql' => [
'driver' => 'pgsql', 'driver' => 'pgsql',
'url' => env('DATABASE_URL'), 'url' => env('DATABASE_URL'),

View File

@@ -8,30 +8,30 @@
convertWarningsToExceptions="true" convertWarningsToExceptions="true"
processIsolation="false" processIsolation="false"
stopOnFailure="false"> stopOnFailure="false">
<testsuites>
<testsuites> <testsuite name="all">
<testsuite name="all"> <directory>./tests/</directory>
<directory>./tests/</directory> </testsuite>
</testsuite> <testsuite name="unit">
<testsuite name="unit"> <directory>./tests/Unit</directory>
<directory>./tests/unit</directory> </testsuite>
</testsuite> </testsuites>
</testsuites> <filter>
<filter> <whitelist addUncoveredFilesFromWhitelist="true">
<whitelist addUncoveredFilesFromWhitelist="true"> <directory suffix=".php">app/</directory>
<directory suffix=".php">app/</directory> </whitelist>
</whitelist> </filter>
</filter> <php>
<php> <env name="APP_ENV" value="testing"/>
<env name="APP_ENV" value="testing"/> <env name="DB_CONNECTION" value="testing"/>
<env name="DB_CONNECTION" value="testing"/> <env name="DB_DATABASE" value="testing_db"/>
<env name="DB_DATABASE" value="testing_db"/> <env name="CACHE_DRIVER" value="array"/>
<env name="CACHE_DRIVER" value="array"/> <env name="SESSION_DRIVER" value="array"/>
<env name="SESSION_DRIVER" value="array"/> <env name="QUEUE_CONNECTION" value="sync"/>
<env name="QUEUE_CONNECTION" value="sync"/> <env name="MAIL_MAILER" value="mail"/>
<env name="MAIL_MAILER" value="mail"/> <env name="APP_URL" value="http://localhost:8000"/>
<env name="APP_URL" value="http://localhost:8000"/> <env name="DB_DATABASE" value="testing_db"/>
<env name="DB_DATABASE" value="testing_db"/> <env name="DB_INSTALL" value="1"/>
<env name="DB_INSTALL" value="1"/> </php>
</php>
</phpunit> </phpunit>

View File

@@ -0,0 +1,50 @@
<?php
namespace Tests\Unit;
use App\User;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;
use Tests\TestCase;
use Faker\Factory as FakerFactory;
class ExampleTest extends TestCase
{
/**
* A basic unit test example.
*
* @return void
*/
public function test_example()
{
$this->assertTrue(true);
}
public function test_store_user()
{
$faker = FakerFactory::create();
//Create User -> Agent
$str = Str::random(10);
$password = Hash::make($str);
$email = $faker->unique()->email();
$user = new User([
'first_name' => $faker->firstName(),
'last_name' => $faker->lastName(),
'email' => $email,
'user_name' => $faker->unique()->userName(),
'password' => $password,
'active' => 1,
'role' => 'user',
]);
$user->save();
// Check if data is inserted
$this->assertDatabaseHas('users', ['email' => $email]);
// Authenticate as the created user
$this->actingAs($user);
$this->assertAuthenticated();
}
}