added random to tests

This commit is contained in:
denisdulici 2020-01-07 09:29:45 +03:00
parent 44fd928fa1
commit 40a5327f07
6 changed files with 26 additions and 22 deletions

View File

@ -2,7 +2,6 @@
use App\Models\Auth\User; use App\Models\Auth\User;
use App\Models\Banking\Account; use App\Models\Banking\Account;
use App\Models\Setting\Currency;
use Faker\Generator as Faker; use Faker\Generator as Faker;
$user = User::first(); $user = User::first();
@ -15,12 +14,11 @@ $factory->define(Account::class, function (Faker $faker) use ($company) {
'company_id' => $company->id, 'company_id' => $company->id,
'name' => $faker->text(5), 'name' => $faker->text(5),
'number' => (string) $faker->randomNumber(2), 'number' => (string) $faker->randomNumber(2),
'currency_code' => setting('default.currency'), 'currency_code' => $company->currencies()->enabled()->get()->random(1)->pluck('code')->first(),
//'currency_code' => Currency::enabled()->get()->random(1)->pluck('code')->first(),
'opening_balance' => '0', 'opening_balance' => '0',
'bank_name' => $faker->text(5), 'bank_name' => $faker->text(5),
'bank_phone' => null, 'bank_phone' => $faker->phoneNumber,
'bank_address' => null, 'bank_address' => $faker->address,
'enabled' => $faker->boolean ? 1 : 0, 'enabled' => $faker->boolean ? 1 : 0,
]; ];
}); });
@ -36,3 +34,9 @@ $factory->state(Account::class, 'disabled', function (Faker $faker) {
'enabled' => 0, 'enabled' => 0,
]; ];
}); });
$factory->state(Account::class, 'default_currency', function (Faker $faker) {
return [
'currency_code' => setting('default.currency'),
];
});

View File

@ -16,7 +16,7 @@ $factory->define(Item::class, function (Faker $faker) use ($company) {
'description' => $faker->text(100), 'description' => $faker->text(100),
'purchase_price' => $faker->randomFloat(2, 10, 20), 'purchase_price' => $faker->randomFloat(2, 10, 20),
'sale_price' => $faker->randomFloat(2, 10, 20), 'sale_price' => $faker->randomFloat(2, 10, 20),
'category_id' => $company->categories()->type('item')->pluck('id')->first(), 'category_id' => $company->categories()->type('item')->get()->random(1)->pluck('id')->first(),
'tax_id' => null, 'tax_id' => null,
'enabled' => $faker->boolean ? 1 : 0, 'enabled' => $faker->boolean ? 1 : 0,
]; ];

View File

@ -21,7 +21,7 @@ $factory->define(Transaction::class, function (Faker $faker) use ($company) {
'currency_code' => setting('default.currency'), 'currency_code' => setting('default.currency'),
'currency_rate' => '1', 'currency_rate' => '1',
'description' => $faker->text(5), 'description' => $faker->text(5),
'category_id' => $company->categories()->type($type)->pluck('id')->first(), 'category_id' => $company->categories()->type($type)->get()->random(1)->pluck('id')->first(),
'reference' => $faker->text(5), 'reference' => $faker->text(5),
'payment_method' => setting('default.payment_method'), 'payment_method' => setting('default.payment_method'),
]; ];
@ -30,13 +30,13 @@ $factory->define(Transaction::class, function (Faker $faker) use ($company) {
$factory->state(Transaction::class, 'income', function (Faker $faker) use ($company) { $factory->state(Transaction::class, 'income', function (Faker $faker) use ($company) {
return [ return [
'type' => 'income', 'type' => 'income',
'category_id' => $company->categories()->type('income')->pluck('id')->first(), 'category_id' => $company->categories()->type('income')->get()->random(1)->pluck('id')->first(),
]; ];
}); });
$factory->state(Transaction::class, 'expense', function (Faker $faker) use ($company) { $factory->state(Transaction::class, 'expense', function (Faker $faker) use ($company) {
return [ return [
'type' => 'expense', 'type' => 'expense',
'category_id' => $company->categories()->type('expense')->pluck('id')->first(), 'category_id' => $company->categories()->type('expense')->get()->random(1)->pluck('id')->first(),
]; ];
}); });

View File

@ -2,9 +2,9 @@
namespace Tests\Feature\Banking; namespace Tests\Feature\Banking;
use App\Models\Banking\Transaction; use App\Models\Banking\Account;
use App\Models\Banking\Transfer;
use Tests\Feature\FeatureTestCase; use Tests\Feature\FeatureTestCase;
use App\Jobs\Banking\CreateTransfer;
class TransfersTest extends FeatureTestCase class TransfersTest extends FeatureTestCase
{ {
@ -35,7 +35,7 @@ class TransfersTest extends FeatureTestCase
public function testItShouldSeeTransferUpdatePage() public function testItShouldSeeTransferUpdatePage()
{ {
$transfer = Transfer::create($this->getRequest()); $transfer = $this->dispatch(new CreateTransfer($this->getRequest()));
$this->loginAs() $this->loginAs()
->get(route('transfers.edit', ['transfer' => $transfer->id])) ->get(route('transfers.edit', ['transfer' => $transfer->id]))
@ -47,7 +47,7 @@ class TransfersTest extends FeatureTestCase
{ {
$request = $this->getRequest(); $request = $this->getRequest();
$transfer = Transfer::create($request); $transfer = $this->dispatch(new CreateTransfer($request));
$request['description'] = $this->faker->text(10); $request['description'] = $this->faker->text(10);
@ -60,7 +60,7 @@ class TransfersTest extends FeatureTestCase
public function testItShouldDeleteTransfer() public function testItShouldDeleteTransfer()
{ {
$transfer = Transfer::create($this->getRequest()); $transfer = $this->dispatch(new CreateTransfer($this->getRequest()));
$this->loginAs() $this->loginAs()
->delete(route('transfers.destroy', ['transfer' => $transfer->id])) ->delete(route('transfers.destroy', ['transfer' => $transfer->id]))
@ -71,21 +71,19 @@ class TransfersTest extends FeatureTestCase
public function getRequest() public function getRequest()
{ {
$income_transaction = factory(Transaction::class)->states('income')->create(); $from_account = factory(Account::class)->states('enabled')->create();
$expense_transaction = factory(Transaction::class)->states('expense')->create(); $to_account = factory(Account::class)->states('enabled')->create();
return [ return [
'company_id' => $this->company->id, 'company_id' => $this->company->id,
'income_transaction_id' => $income_transaction->id, 'from_account_id' => $from_account->id,
'expense_transaction_id' => $expense_transaction->id, 'to_account_id' => $to_account->id,
'from_account_id' => $income_transaction->account_id, 'amount' => $this->faker->randomFloat(2, 2, 1000),
'to_account_id' => $expense_transaction->account_id,
'amount' => '5',
'transferred_at' => $this->faker->date(), 'transferred_at' => $this->faker->date(),
'description'=> $this->faker->text(5), 'description'=> $this->faker->text(5),
'payment_method' => setting('default.payment_method'), 'payment_method' => setting('default.payment_method'),
'reference' => null, 'reference' => $this->faker->text(5),
]; ];
} }
} }

View File

@ -25,6 +25,8 @@ abstract class FeatureTestCase extends TestCase
$this->user = User::first(); $this->user = User::first();
$this->company = $this->user->companies()->first(); $this->company = $this->user->companies()->first();
session(['company_id' => $this->company->id]);
// Set Company settings // Set Company settings
setting()->setExtraColumns(['company_id' => $this->company->id]); setting()->setExtraColumns(['company_id' => $this->company->id]);
setting()->forgetAll(); setting()->forgetAll();