Changeset View
Changeset View
Standalone View
Standalone View
src/tests/Feature/Console/Wallet/TrialEndTest.php
Show All 32 Lines | class TrialEndTest extends TestCase | ||||
/** | /** | ||||
* Test command run | * Test command run | ||||
*/ | */ | ||||
public function testHandle(): void | public function testHandle(): void | ||||
{ | { | ||||
Queue::fake(); | Queue::fake(); | ||||
$package = \App\Package::withEnvTenantContext()->where('title', 'lite')->first(); | $plan = \App\Plan::withEnvTenantContext()->where('title', 'individual')->first(); | ||||
$user = $this->getTestUser('test-user1@kolabnow.com', [ | $user = $this->getTestUser('test-user1@kolabnow.com', [ | ||||
'status' => User::STATUS_IMAP_READY | User::STATUS_LDAP_READY | User::STATUS_ACTIVE, | 'status' => User::STATUS_IMAP_READY | User::STATUS_LDAP_READY | User::STATUS_ACTIVE, | ||||
]); | ]); | ||||
$wallet = $user->wallets()->first(); | $wallet = $user->wallets()->first(); | ||||
$user->assignPackage($package); | $user->assignPlan($plan); | ||||
DB::table('users')->update(['created_at' => \now()->clone()->subMonthsNoOverflow(2)->subHours(1)]); | DB::table('users')->update(['created_at' => \now()->clone()->subMonthsNoOverflow(2)->subHours(1)]); | ||||
// No wallets in after-trial state, no email sent | // No wallets in after-trial state, no email sent | ||||
Queue::fake(); | Queue::fake(); | ||||
$code = \Artisan::call("wallet:trial-end"); | $code = \Artisan::call("wallet:trial-end"); | ||||
Queue::assertNothingPushed(); | Queue::assertNothingPushed(); | ||||
▲ Show 20 Lines • Show All 44 Lines • ▼ Show 20 Lines | public function testHandle(): void | ||||
Queue::assertNothingPushed(); | Queue::assertNothingPushed(); | ||||
$this->assertNull($wallet->getSetting('trial_end_notice')); | $this->assertNull($wallet->getSetting('trial_end_notice')); | ||||
// Make sure the non-controller users are omitted | // Make sure the non-controller users are omitted | ||||
$user2 = $this->getTestUser('test-user2@kolabnow.com', [ | $user2 = $this->getTestUser('test-user2@kolabnow.com', [ | ||||
'status' => User::STATUS_IMAP_READY | User::STATUS_LDAP_READY | User::STATUS_ACTIVE, | 'status' => User::STATUS_IMAP_READY | User::STATUS_LDAP_READY | User::STATUS_ACTIVE, | ||||
]); | ]); | ||||
$package = \App\Package::withEnvTenantContext()->where('title', 'lite')->first(); | |||||
$user->assignPackage($package, $user2); | $user->assignPackage($package, $user2); | ||||
$user2->created_at = \now()->clone()->subMonthsNoOverflow(1); | $user2->created_at = \now()->clone()->subMonthsNoOverflow(1); | ||||
$user2->save(); | $user2->save(); | ||||
Queue::fake(); | Queue::fake(); | ||||
$code = \Artisan::call("wallet:trial-end"); | $code = \Artisan::call("wallet:trial-end"); | ||||
Queue::assertNothingPushed(); | Queue::assertNothingPushed(); | ||||
} | } | ||||
} | } |