using factories in tests
This commit is contained in:
parent
a4135ec902
commit
7ba71d17c5
@ -15,7 +15,7 @@ $factory->define(Item::class, function (Faker $faker) {
|
|||||||
'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')->pluck('id')->first(),
|
||||||
'tax_id' => '',
|
'tax_id' => 0,
|
||||||
'enabled' => $faker->boolean ? 1 : 0
|
'enabled' => $faker->boolean ? 1 : 0
|
||||||
];
|
];
|
||||||
});
|
});
|
@ -1,24 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/*
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
| Model Factories
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
|
|
|
||||||
| Here you may define all of your model factories. Model factories give
|
|
||||||
| you a convenient way to create models for testing and seeding your
|
|
||||||
| database. Just tell the factory how a default model should look.
|
|
||||||
|
|
|
||||||
*/
|
|
||||||
|
|
||||||
/** @var \Illuminate\Database\Eloquent\Factory $factory */
|
|
||||||
$factory->define(\App\Models\Auth\User::class, function (Faker\Generator $faker) {
|
|
||||||
static $password;
|
|
||||||
|
|
||||||
return [
|
|
||||||
'name' => $faker->name,
|
|
||||||
'email' => $faker->unique()->safeEmail,
|
|
||||||
'password' => $password ?: $password = bcrypt('secret'),
|
|
||||||
'remember_token' => \Str::random(10),
|
|
||||||
];
|
|
||||||
});
|
|
@ -9,6 +9,8 @@ $factory->define(Transaction::class, function (Faker $faker) {
|
|||||||
$user = User::first();
|
$user = User::first();
|
||||||
$company = $user->companies()->first();
|
$company = $user->companies()->first();
|
||||||
|
|
||||||
|
setting()->setExtraColumns(['company_id' => $company->id]);
|
||||||
|
|
||||||
$attachment = UploadedFile::fake()->create('image.jpg');
|
$attachment = UploadedFile::fake()->create('image.jpg');
|
||||||
|
|
||||||
return [
|
return [
|
||||||
@ -16,13 +18,13 @@ $factory->define(Transaction::class, function (Faker $faker) {
|
|||||||
'type' => 'income',
|
'type' => 'income',
|
||||||
'account_id' => setting('default.account'),
|
'account_id' => setting('default.account'),
|
||||||
'paid_at' => $faker->date(),
|
'paid_at' => $faker->date(),
|
||||||
'amount' => $faker->randomFloat(2, 2),
|
'amount' => $faker->randomFloat(2, 2, 1000),
|
||||||
'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('income')->first()->id,
|
'category_id' => $company->categories()->type('income')->first()->id,
|
||||||
'reference' => $faker->text(5),
|
'reference' => $faker->text(5),
|
||||||
'payment_method' => setting('default.payment_method'),
|
'payment_method' => setting('default.payment_method'),
|
||||||
'attachment' => $attachment,
|
//'attachment' => $attachment,
|
||||||
];
|
];
|
||||||
});
|
});
|
21
database/factories/User.php
Normal file
21
database/factories/User.php
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use App\Models\Auth\User;
|
||||||
|
use Faker\Generator as Faker;
|
||||||
|
use Illuminate\Support\Str;
|
||||||
|
|
||||||
|
$factory->define(User::class, function (Faker $faker) {
|
||||||
|
$password = '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi'; // password
|
||||||
|
|
||||||
|
return [
|
||||||
|
'name' => $faker->name,
|
||||||
|
'email' => $faker->unique()->safeEmail,
|
||||||
|
'password' => $password,
|
||||||
|
'password_confirmation' => $password,
|
||||||
|
'remember_token' => Str::random(10),
|
||||||
|
'locale' => 'en-GB',
|
||||||
|
'companies' => ['1'],
|
||||||
|
'roles' => ['1'],
|
||||||
|
'enabled' => $this->faker->boolean ? 1 : 0,
|
||||||
|
];
|
||||||
|
});
|
@ -3,7 +3,7 @@
|
|||||||
namespace Tests\Feature\Common;
|
namespace Tests\Feature\Common;
|
||||||
|
|
||||||
use App\Jobs\Common\CreateItem;
|
use App\Jobs\Common\CreateItem;
|
||||||
use Illuminate\Http\UploadedFile;
|
use App\Models\Common\Item;
|
||||||
use Tests\Feature\FeatureTestCase;
|
use Tests\Feature\FeatureTestCase;
|
||||||
|
|
||||||
class ItemsTest extends FeatureTestCase
|
class ItemsTest extends FeatureTestCase
|
||||||
@ -27,7 +27,7 @@ class ItemsTest extends FeatureTestCase
|
|||||||
public function testItShouldCreateItem()
|
public function testItShouldCreateItem()
|
||||||
{
|
{
|
||||||
$this->loginAs()
|
$this->loginAs()
|
||||||
->post(route('items.store'), $this->getItemRequest())
|
->post(route('items.store'), factory(Item::class)->raw())
|
||||||
->assertStatus(200);
|
->assertStatus(200);
|
||||||
|
|
||||||
$this->assertFlashLevel('success');
|
$this->assertFlashLevel('success');
|
||||||
@ -35,7 +35,7 @@ class ItemsTest extends FeatureTestCase
|
|||||||
|
|
||||||
public function testItShouldSeeItemUpdatePage()
|
public function testItShouldSeeItemUpdatePage()
|
||||||
{
|
{
|
||||||
$item = $this->dispatch(new CreateItem($this->getItemRequest()));
|
$item = $this->dispatch(new CreateItem(factory(Item::class)->raw()));
|
||||||
|
|
||||||
$this->loginAs()
|
$this->loginAs()
|
||||||
->get(route('items.edit', ['item' => $item->id]))
|
->get(route('items.edit', ['item' => $item->id]))
|
||||||
@ -45,7 +45,7 @@ class ItemsTest extends FeatureTestCase
|
|||||||
|
|
||||||
public function testItShouldUpdateItem()
|
public function testItShouldUpdateItem()
|
||||||
{
|
{
|
||||||
$request = $this->getItemRequest();
|
$request = factory(Item::class)->raw();
|
||||||
|
|
||||||
$item = $this->dispatch(new CreateItem($request));
|
$item = $this->dispatch(new CreateItem($request));
|
||||||
|
|
||||||
@ -60,7 +60,7 @@ class ItemsTest extends FeatureTestCase
|
|||||||
|
|
||||||
public function testItShouldDeleteItem()
|
public function testItShouldDeleteItem()
|
||||||
{
|
{
|
||||||
$item = $this->dispatch(new CreateItem($this->getItemRequest()));
|
$item = $this->dispatch(new CreateItem(factory(Item::class)->raw()));
|
||||||
|
|
||||||
$this->loginAs()
|
$this->loginAs()
|
||||||
->delete(route('items.destroy', ['item' => $item]))
|
->delete(route('items.destroy', ['item' => $item]))
|
||||||
@ -68,21 +68,4 @@ class ItemsTest extends FeatureTestCase
|
|||||||
|
|
||||||
$this->assertFlashLevel('success');
|
$this->assertFlashLevel('success');
|
||||||
}
|
}
|
||||||
|
|
||||||
private function getItemRequest()
|
|
||||||
{
|
|
||||||
$picture = UploadedFile::fake()->create('image.jpg');
|
|
||||||
|
|
||||||
return [
|
|
||||||
'company_id' => $this->company->id,
|
|
||||||
'name' => $this->faker->text(15),
|
|
||||||
'picture' => $picture,
|
|
||||||
'description' => $this->faker->text(100),
|
|
||||||
'purchase_price' => $this->faker->randomFloat(2, 10, 20),
|
|
||||||
'sale_price' => $this->faker->randomFloat(2, 10, 20),
|
|
||||||
'category_id' => $this->company->categories()->type('item')->pluck('id')->first(),
|
|
||||||
'tax_id' => '',
|
|
||||||
'enabled' => $this->faker->boolean ? 1 : 0
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user