110 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace Modules\OfflinePayments\Tests\Feature;
 | |
| 
 | |
| use Modules\OfflinePayments\Jobs\CreatePaymentMethod;
 | |
| use Tests\Feature\FeatureTestCase;
 | |
| 
 | |
| class SettingsTest extends FeatureTestCase
 | |
| {
 | |
|     public function testItShouldSeeOfflinePaymentsInSettingsListPage()
 | |
|     {
 | |
|         $this->loginAs()
 | |
|             ->get(route('settings.index'))
 | |
|             ->assertStatus(200)
 | |
|             ->assertSeeText(trans('offline-payments::general.description'));
 | |
|     }
 | |
| 
 | |
|     public function testItShouldSeeOfflinePaymentsSettingsListPage()
 | |
|     {
 | |
|         $this->loginAs()
 | |
|             ->get(route('offline-payments.settings.edit'))
 | |
|             ->assertStatus(200)
 | |
|             ->assertSeeText(trans('offline-payments::general.payment_gateways'));
 | |
|     }
 | |
| 
 | |
|     public function testItShouldSeeOfflinePaymentsSettingsCreatePage()
 | |
|     {
 | |
|         $this->loginAs()
 | |
|             ->get(route('offline-payments.settings.edit'))
 | |
|             ->assertStatus(200)
 | |
|             ->assertSeeText(trans('offline-payments::general.add_new'));
 | |
|     }
 | |
| 
 | |
|     public function testItShouldCreateOfflinePaymentsSettings()
 | |
|     {
 | |
|         $request = $this->getRequest();
 | |
| 
 | |
|         $message = trans('messages.success.added', ['type' => $request['name']]);
 | |
| 
 | |
|         $this->loginAs()
 | |
|             ->post(route('offline-payments.settings.update'), $request)
 | |
|             ->assertStatus(200)
 | |
|             ->assertJson([
 | |
|                 'success' => true,
 | |
|                 'message' => $message,
 | |
|             ]);
 | |
|     }
 | |
| 
 | |
|     public function testItShouldSeeOfflinePaymentsSettingsUpdatePage()
 | |
|     {
 | |
|         $payment_method = $this->dispatch(new CreatePaymentMethod($this->getRequest()));
 | |
| 
 | |
|         $this->loginAs()
 | |
|             ->post(route('offline-payments.settings.get', ['code' => $payment_method['code']]))
 | |
|             ->assertStatus(200)
 | |
|             ->assertJson([
 | |
|                 'success' => true,
 | |
|                 'data' => [
 | |
|                     'name' => $payment_method['name'],
 | |
|                 ],
 | |
|             ]);
 | |
|     }
 | |
| 
 | |
|     public function testItShouldUpdateOfflinePaymentsSettings()
 | |
|     {
 | |
|         $request = $this->getRequest();
 | |
| 
 | |
|         $payment_method = $this->dispatch(new CreatePaymentMethod($request));
 | |
| 
 | |
|         $request['name'] = $this->faker->text(10);
 | |
|         $request['update_code'] = $payment_method['code'];
 | |
| 
 | |
|         $message = trans('messages.success.updated', ['type' => $request['name']]);
 | |
| 
 | |
|         $this->loginAs()
 | |
|             ->post(route('offline-payments.settings.update'), $request)
 | |
|             ->assertStatus(200)
 | |
|             ->assertJson([
 | |
|                 'success' => true,
 | |
|                 'message' => $message,
 | |
|             ]);
 | |
|     }
 | |
| 
 | |
|     public function testItShouldDeleteAccount()
 | |
|     {
 | |
|         $payment_method = $this->dispatch(new CreatePaymentMethod($this->getRequest()));
 | |
| 
 | |
|         $message = trans('messages.success.deleted', ['type' => $payment_method['name']]);
 | |
| 
 | |
|         $this->loginAs()
 | |
|             ->delete(route('offline-payments.settings.delete', ['code' => $payment_method['code']]))
 | |
|             ->assertStatus(200)
 | |
|             ->assertJson([
 | |
|                 'success' => true,
 | |
|                 'message' => $message,
 | |
|             ]);
 | |
|     }
 | |
| 
 | |
|     public function getRequest()
 | |
|     {
 | |
|         return [
 | |
|             'name' => $this->faker->text(10),
 | |
|             'code' => 'offline-payments.cash.99',
 | |
|             'customer' => 1,
 | |
|             'order' => 1,
 | |
|             'description' => $this->faker->paragraph,
 | |
|         ];
 | |
|     }
 | |
| }
 |