Changeset View
Changeset View
Standalone View
Standalone View
src/tests/Browser/Reseller/WalletTest.php
Show All 23 Lines | public function setUp(): void | ||||
self::useResellerUrl(); | self::useResellerUrl(); | ||||
} | } | ||||
/** | /** | ||||
* {@inheritDoc} | * {@inheritDoc} | ||||
*/ | */ | ||||
public function tearDown(): void | public function tearDown(): void | ||||
{ | { | ||||
$reseller = $this->getTestUser('reseller@kolabnow.com'); | $reseller = $this->getTestUser('reseller@' . \config('app.domain')); | ||||
$wallet = $reseller->wallets()->first(); | $wallet = $reseller->wallets()->first(); | ||||
$wallet->balance = 0; | $wallet->balance = 0; | ||||
$wallet->save(); | $wallet->save(); | ||||
$wallet->payments()->delete(); | $wallet->payments()->delete(); | ||||
$wallet->transactions()->delete(); | $wallet->transactions()->delete(); | ||||
parent::tearDown(); | parent::tearDown(); | ||||
} | } | ||||
Show All 9 Lines | public function testWalletUnauth(): void | ||||
}); | }); | ||||
} | } | ||||
/** | /** | ||||
* Test wallet "box" on Dashboard | * Test wallet "box" on Dashboard | ||||
*/ | */ | ||||
public function testDashboard(): void | public function testDashboard(): void | ||||
{ | { | ||||
$reseller = $this->getTestUser('reseller@kolabnow.com'); | $reseller = $this->getTestUser('reseller@' . \config('app.domain')); | ||||
Wallet::where('user_id', $reseller->id)->update(['balance' => 125]); | Wallet::where('user_id', $reseller->id)->update(['balance' => 125]); | ||||
// Positive balance | // Positive balance | ||||
$this->browse(function (Browser $browser) { | $this->browse(function (Browser $browser) { | ||||
$browser->visit(new Home()) | $browser->visit(new Home()) | ||||
->submitLogon('reseller@kolabnow.com', 'reseller', true) | ->submitLogon('reseller@' . \config('app.domain'), \App\Utils::generatePassphrase(), true) | ||||
->on(new Dashboard()) | ->on(new Dashboard()) | ||||
->assertSeeIn('@links .link-wallet .name', 'Wallet') | ->assertSeeIn('@links .link-wallet .name', 'Wallet') | ||||
->assertSeeIn('@links .link-wallet .badge-success', '1,25 CHF'); | ->assertSeeIn('@links .link-wallet .badge-success', '1,25 CHF'); | ||||
}); | }); | ||||
Wallet::where('user_id', $reseller->id)->update(['balance' => -1234]); | Wallet::where('user_id', $reseller->id)->update(['balance' => -1234]); | ||||
// Negative balance | // Negative balance | ||||
$this->browse(function (Browser $browser) { | $this->browse(function (Browser $browser) { | ||||
$browser->visit(new Dashboard()) | $browser->visit(new Dashboard()) | ||||
->assertSeeIn('@links .link-wallet .name', 'Wallet') | ->assertSeeIn('@links .link-wallet .name', 'Wallet') | ||||
->assertSeeIn('@links .link-wallet .badge-danger', '-12,34 CHF'); | ->assertSeeIn('@links .link-wallet .badge-danger', '-12,34 CHF'); | ||||
}); | }); | ||||
} | } | ||||
/** | /** | ||||
* Test wallet page | * Test wallet page | ||||
* | * | ||||
* @depends testDashboard | * @depends testDashboard | ||||
*/ | */ | ||||
public function testWallet(): void | public function testWallet(): void | ||||
{ | { | ||||
$reseller = $this->getTestUser('reseller@kolabnow.com'); | $reseller = $this->getTestUser('reseller@' . \config('app.domain')); | ||||
Wallet::where('user_id', $reseller->id)->update(['balance' => -1234]); | Wallet::where('user_id', $reseller->id)->update(['balance' => -1234]); | ||||
$this->browse(function (Browser $browser) { | $this->browse(function (Browser $browser) { | ||||
$browser->click('@links .link-wallet') | $browser->click('@links .link-wallet') | ||||
->on(new WalletPage()) | ->on(new WalletPage()) | ||||
->assertSeeIn('#wallet .card-title', 'Account balance -12,34 CHF') | ->assertSeeIn('#wallet .card-title', 'Account balance -12,34 CHF') | ||||
->assertSeeIn('#wallet .card-title .text-danger', '-12,34 CHF') | ->assertSeeIn('#wallet .card-title .text-danger', '-12,34 CHF') | ||||
->assertSeeIn('#wallet .card-text', 'You are out of credit'); | ->assertSeeIn('#wallet .card-text', 'You are out of credit'); | ||||
}); | }); | ||||
} | } | ||||
/** | /** | ||||
* Test Receipts tab | * Test Receipts tab | ||||
* | * | ||||
* @depends testWallet | * @depends testWallet | ||||
*/ | */ | ||||
public function testReceipts(): void | public function testReceipts(): void | ||||
{ | { | ||||
$user = $this->getTestUser('reseller@kolabnow.com'); | $user = $this->getTestUser('reseller@' . \config('app.domain')); | ||||
$wallet = $user->wallets()->first(); | $wallet = $user->wallets()->first(); | ||||
$wallet->payments()->delete(); | $wallet->payments()->delete(); | ||||
// Assert Receipts tab content when there's no receipts available | // Assert Receipts tab content when there's no receipts available | ||||
$this->browse(function (Browser $browser) { | $this->browse(function (Browser $browser) { | ||||
$browser->visit(new WalletPage()) | $browser->visit(new WalletPage()) | ||||
->assertSeeIn('#wallet .card-title', 'Account balance 0,00 CHF') | ->assertSeeIn('#wallet .card-title', 'Account balance 0,00 CHF') | ||||
->assertSeeIn('#wallet .card-title .text-success', '0,00 CHF') | ->assertSeeIn('#wallet .card-title .text-success', '0,00 CHF') | ||||
▲ Show 20 Lines • Show All 76 Lines • ▼ Show 20 Lines | class WalletTest extends TestCaseDusk | ||||
/** | /** | ||||
* Test History tab | * Test History tab | ||||
* | * | ||||
* @depends testWallet | * @depends testWallet | ||||
*/ | */ | ||||
public function testHistory(): void | public function testHistory(): void | ||||
{ | { | ||||
$user = $this->getTestUser('reseller@kolabnow.com'); | $user = $this->getTestUser('reseller@' . \config('app.domain')); | ||||
$wallet = $user->wallets()->first(); | $wallet = $user->wallets()->first(); | ||||
$wallet->transactions()->delete(); | $wallet->transactions()->delete(); | ||||
// Create some sample transactions | // Create some sample transactions | ||||
$transactions = $this->createTestTransactions($wallet); | $transactions = $this->createTestTransactions($wallet); | ||||
$transactions = array_reverse($transactions); | $transactions = array_reverse($transactions); | ||||
$pages = array_chunk($transactions, 10 /* page size*/); | $pages = array_chunk($transactions, 10 /* page size*/); | ||||
▲ Show 20 Lines • Show All 41 Lines • Show Last 20 Lines |