mirror of
				https://github.com/crater-invoice/crater.git
				synced 2025-10-29 20:51:09 -04:00 
			
		
		
		
	v5.0.0 update
This commit is contained in:
		
							
								
								
									
										93
									
								
								tests/Feature/Admin/ExpenseCategoryTest.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								tests/Feature/Admin/ExpenseCategoryTest.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,93 @@ | ||||
| <?php | ||||
|  | ||||
| use Crater\Http\Controllers\V1\Admin\Expense\ExpenseCategoriesController; | ||||
| use Crater\Http\Requests\ExpenseCategoryRequest; | ||||
| use Crater\Models\ExpenseCategory; | ||||
| use Crater\Models\User; | ||||
| use Illuminate\Support\Facades\Artisan; | ||||
| use Laravel\Sanctum\Sanctum; | ||||
| use function Pest\Laravel\deleteJson; | ||||
| use function Pest\Laravel\getJson; | ||||
| use function Pest\Laravel\postJson; | ||||
| use function Pest\Laravel\putJson; | ||||
|  | ||||
| beforeEach(function () { | ||||
|     Artisan::call('db:seed', ['--class' => 'DatabaseSeeder', '--force' => true]); | ||||
|     Artisan::call('db:seed', ['--class' => 'DemoSeeder', '--force' => true]); | ||||
|  | ||||
|     $user = User::find(1); | ||||
|     $this->withHeaders([ | ||||
|         'company' => $user->companies()->first()->id, | ||||
|     ]); | ||||
|     Sanctum::actingAs( | ||||
|         $user, | ||||
|         ['*'] | ||||
|     ); | ||||
| }); | ||||
|  | ||||
| test('get categories', function () { | ||||
|     $response = getJson('api/v1/categories'); | ||||
|  | ||||
|     $response->assertOk(); | ||||
| }); | ||||
|  | ||||
| test('create category', function () { | ||||
|     $category = ExpenseCategory::factory()->raw(); | ||||
|  | ||||
|     $response = postJson('api/v1/categories', $category); | ||||
|  | ||||
|     $response->assertStatus(201); | ||||
|  | ||||
|     $this->assertDatabaseHas('expense_categories', [ | ||||
|         'name' => $category['name'], | ||||
|         'description' => $category['description'], | ||||
|     ]); | ||||
| }); | ||||
|  | ||||
| test('store validates using a form request', function () { | ||||
|     $this->assertActionUsesFormRequest( | ||||
|         ExpenseCategoriesController::class, | ||||
|         'store', | ||||
|         ExpenseCategoryRequest::class | ||||
|     ); | ||||
| }); | ||||
|  | ||||
| test('get category', function () { | ||||
|     $category = ExpenseCategory::factory()->create(); | ||||
|  | ||||
|     getJson("api/v1/categories/{$category->id}")->assertOk(); | ||||
| }); | ||||
|  | ||||
| test('update category', function () { | ||||
|     $category = ExpenseCategory::factory()->create(); | ||||
|  | ||||
|     $category2 = ExpenseCategory::factory()->raw(); | ||||
|  | ||||
|     putJson('api/v1/categories/'.$category->id, $category2)->assertOk(); | ||||
|  | ||||
|     $this->assertDatabaseHas('expense_categories', [ | ||||
|         'id' => $category->id, | ||||
|         'name' => $category2['name'], | ||||
|         'description' => $category2['description'], | ||||
|     ]); | ||||
| }); | ||||
|  | ||||
| test('update validates using a form request', function () { | ||||
|     $this->assertActionUsesFormRequest( | ||||
|         ExpenseCategoriesController::class, | ||||
|         'update', | ||||
|         ExpenseCategoryRequest::class | ||||
|     ); | ||||
| }); | ||||
|  | ||||
| test('delete category', function () { | ||||
|     $category = ExpenseCategory::factory()->create(); | ||||
|  | ||||
|     deleteJson('api/v1/categories/'.$category->id) | ||||
|         ->assertOk() | ||||
|         ->assertJson([ | ||||
|             'success' => true, | ||||
|         ]); | ||||
|  | ||||
|     $this->assertDeleted($category); | ||||
| }); | ||||
		Reference in New Issue
	
	Block a user