improved factories and tests

This commit is contained in:
denisdulici
2020-01-07 01:28:05 +03:00
parent 472a4e00df
commit 751344f11a
13 changed files with 152 additions and 81 deletions

View File

@ -24,3 +24,15 @@ $factory->define(Account::class, function (Faker $faker) use ($company) {
'enabled' => $faker->boolean ? 1 : 0,
];
});
$factory->state(Account::class, 'enabled', function (Faker $faker) {
return [
'enabled' => 1,
];
});
$factory->state(Account::class, 'disabled', function (Faker $faker) {
return [
'enabled' => 0,
];
});

View File

@ -1,4 +1,5 @@
<?php
use App\Models\Auth\User;
use App\Models\Common\Contact;
use Faker\Generator as Faker;
@ -7,22 +8,44 @@ $user = User::first();
$company = $user->companies()->first();
$factory->define(Contact::class, function (Faker $faker) use ($company) {
setting()->setExtraColumns([
'company_id' => $company->id
]);
setting()->setExtraColumns(['company_id' => $company->id]);
return [
'company_id' => $company->id,
'type' => $faker->boolean ? 'customer' : 'vendor',
'name' => $faker->text(15),
'email' => '',
'name' => $faker->name,
'email' => $faker->unique()->safeEmail,
'user_id' => null,
'tax_number' => null,
'phone' => null,
'address' => null,
'website' => null,
'tax_number' => $faker->randomNumber(9),
'phone' => $faker->phoneNumber,
'address' => $faker->address,
'website' => 'https://akaunting.com',
'currency_code' => setting('default.currency'),
'reference' => null,
'enabled' => $faker->boolean ? 1 : 0
'reference' => $faker->text(5),
'enabled' => $faker->boolean ? 1 : 0,
];
});
$factory->state(Contact::class, 'customer', function (Faker $faker) {
return [
'type' => 'customer',
];
});
$factory->state(Contact::class, 'vendor', function (Faker $faker) {
return [
'type' => 'vendor',
];
});
$factory->state(Contact::class, 'enabled', function (Faker $faker) {
return [
'enabled' => 1,
];
});
$factory->state(Contact::class, 'disabled', function (Faker $faker) {
return [
'enabled' => 0,
];
});

View File

@ -21,3 +21,15 @@ $factory->define(Item::class, function (Faker $faker) use ($company) {
'enabled' => $faker->boolean ? 1 : 0,
];
});
$factory->state(Item::class, 'enabled', function (Faker $faker) {
return [
'enabled' => 1,
];
});
$factory->state(Item::class, 'disabled', function (Faker $faker) {
return [
'enabled' => 0,
];
});

View File

@ -10,22 +10,29 @@ $company = $user->companies()->first();
$factory->define(Transaction::class, function (Faker $faker) use ($company) {
setting()->setExtraColumns(['company_id' => $company->id]);
$type = $faker->boolean ? 'income' : 'expense';
return [
'company_id' => $company->id,
'type' => 'income',
'type' => $type,
'account_id' => setting('default.account'),
'paid_at' => $faker->date(),
'paid_at' => $faker->dateTimeBetween(now()->startOfYear(), now()->endOfYear())->format('Y-m-d'),
'amount' => $faker->randomFloat(2, 2, 1000),
'currency_code' => setting('default.currency'),
'currency_rate' => '1',
'description' => $faker->text(5),
'category_id' => $company->categories()->type('income')->pluck('id')->first(),
'category_id' => $company->categories()->type($type)->pluck('id')->first(),
'reference' => $faker->text(5),
'payment_method' => setting('default.payment_method'),
];
});
$factory->state(Transaction::class, 'income', []);
$factory->state(Transaction::class, 'income', function (Faker $faker) use ($company) {
return [
'type' => 'income',
'category_id' => $company->categories()->type('income')->pluck('id')->first(),
];
});
$factory->state(Transaction::class, 'expense', function (Faker $faker) use ($company) {
return [

View File

@ -19,3 +19,15 @@ $factory->define(User::class, function (Faker $faker) {
'enabled' => $this->faker->boolean ? 1 : 0,
];
});
$factory->state(User::class, 'enabled', function (Faker $faker) {
return [
'enabled' => 1,
];
});
$factory->state(User::class, 'disabled', function (Faker $faker) {
return [
'enabled' => 0,
];
});