From 40a5327f071006e67ec2781dbff191a65baa6c7a Mon Sep 17 00:00:00 2001 From: denisdulici Date: Tue, 7 Jan 2020 09:29:45 +0300 Subject: [PATCH] added random to tests --- database/factories/Account.php | 14 +++++++----- database/factories/Item.php | 2 +- database/factories/Transaction.php | 6 +++--- public/files/import/chart-of-accounts.xlsx | Bin 9138 -> 0 bytes tests/Feature/Banking/TransfersTest.php | 24 ++++++++++----------- tests/Feature/FeatureTestCase.php | 2 ++ 6 files changed, 26 insertions(+), 22 deletions(-) delete mode 100644 public/files/import/chart-of-accounts.xlsx diff --git a/database/factories/Account.php b/database/factories/Account.php index 296725fc9..3f2547acb 100644 --- a/database/factories/Account.php +++ b/database/factories/Account.php @@ -2,7 +2,6 @@ use App\Models\Auth\User; use App\Models\Banking\Account; -use App\Models\Setting\Currency; use Faker\Generator as Faker; $user = User::first(); @@ -15,12 +14,11 @@ $factory->define(Account::class, function (Faker $faker) use ($company) { 'company_id' => $company->id, 'name' => $faker->text(5), 'number' => (string) $faker->randomNumber(2), - 'currency_code' => setting('default.currency'), - //'currency_code' => Currency::enabled()->get()->random(1)->pluck('code')->first(), + 'currency_code' => $company->currencies()->enabled()->get()->random(1)->pluck('code')->first(), 'opening_balance' => '0', 'bank_name' => $faker->text(5), - 'bank_phone' => null, - 'bank_address' => null, + 'bank_phone' => $faker->phoneNumber, + 'bank_address' => $faker->address, 'enabled' => $faker->boolean ? 1 : 0, ]; }); @@ -36,3 +34,9 @@ $factory->state(Account::class, 'disabled', function (Faker $faker) { 'enabled' => 0, ]; }); + +$factory->state(Account::class, 'default_currency', function (Faker $faker) { + return [ + 'currency_code' => setting('default.currency'), + ]; +}); diff --git a/database/factories/Item.php b/database/factories/Item.php index 6fdace2f9..12e3674d2 100644 --- a/database/factories/Item.php +++ b/database/factories/Item.php @@ -16,7 +16,7 @@ $factory->define(Item::class, function (Faker $faker) use ($company) { 'description' => $faker->text(100), 'purchase_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, 'enabled' => $faker->boolean ? 1 : 0, ]; diff --git a/database/factories/Transaction.php b/database/factories/Transaction.php index a9dd48f4c..ea00d92b8 100644 --- a/database/factories/Transaction.php +++ b/database/factories/Transaction.php @@ -21,7 +21,7 @@ $factory->define(Transaction::class, function (Faker $faker) use ($company) { 'currency_code' => setting('default.currency'), 'currency_rate' => '1', '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), '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) { return [ '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) { return [ 'type' => 'expense', - 'category_id' => $company->categories()->type('expense')->pluck('id')->first(), + 'category_id' => $company->categories()->type('expense')->get()->random(1)->pluck('id')->first(), ]; }); diff --git a/public/files/import/chart-of-accounts.xlsx b/public/files/import/chart-of-accounts.xlsx deleted file mode 100644 index b8107b7c454ae4709727f405c96bebea48ae9412..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9138 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 diff --git a/tests/Feature/Banking/TransfersTest.php b/tests/Feature/Banking/TransfersTest.php index a01551415..63143f010 100644 --- a/tests/Feature/Banking/TransfersTest.php +++ b/tests/Feature/Banking/TransfersTest.php @@ -2,9 +2,9 @@ namespace Tests\Feature\Banking; -use App\Models\Banking\Transaction; -use App\Models\Banking\Transfer; +use App\Models\Banking\Account; use Tests\Feature\FeatureTestCase; +use App\Jobs\Banking\CreateTransfer; class TransfersTest extends FeatureTestCase { @@ -35,7 +35,7 @@ class TransfersTest extends FeatureTestCase public function testItShouldSeeTransferUpdatePage() { - $transfer = Transfer::create($this->getRequest()); + $transfer = $this->dispatch(new CreateTransfer($this->getRequest())); $this->loginAs() ->get(route('transfers.edit', ['transfer' => $transfer->id])) @@ -47,7 +47,7 @@ class TransfersTest extends FeatureTestCase { $request = $this->getRequest(); - $transfer = Transfer::create($request); + $transfer = $this->dispatch(new CreateTransfer($request)); $request['description'] = $this->faker->text(10); @@ -60,7 +60,7 @@ class TransfersTest extends FeatureTestCase public function testItShouldDeleteTransfer() { - $transfer = Transfer::create($this->getRequest()); + $transfer = $this->dispatch(new CreateTransfer($this->getRequest())); $this->loginAs() ->delete(route('transfers.destroy', ['transfer' => $transfer->id])) @@ -71,21 +71,19 @@ class TransfersTest extends FeatureTestCase 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 [ 'company_id' => $this->company->id, - 'income_transaction_id' => $income_transaction->id, - 'expense_transaction_id' => $expense_transaction->id, - 'from_account_id' => $income_transaction->account_id, - 'to_account_id' => $expense_transaction->account_id, - 'amount' => '5', + 'from_account_id' => $from_account->id, + 'to_account_id' => $to_account->id, + 'amount' => $this->faker->randomFloat(2, 2, 1000), 'transferred_at' => $this->faker->date(), 'description'=> $this->faker->text(5), 'payment_method' => setting('default.payment_method'), - 'reference' => null, + 'reference' => $this->faker->text(5), ]; } } \ No newline at end of file diff --git a/tests/Feature/FeatureTestCase.php b/tests/Feature/FeatureTestCase.php index a56f61b6f..baf2b01ca 100644 --- a/tests/Feature/FeatureTestCase.php +++ b/tests/Feature/FeatureTestCase.php @@ -25,6 +25,8 @@ abstract class FeatureTestCase extends TestCase $this->user = User::first(); $this->company = $this->user->companies()->first(); + session(['company_id' => $this->company->id]); + // Set Company settings setting()->setExtraColumns(['company_id' => $this->company->id]); setting()->forgetAll();