Changeset View
Changeset View
Standalone View
Standalone View
src/tests/Feature/Controller/UsersTest.php
Show First 20 Lines • Show All 379 Lines • ▼ Show 20 Lines | public function testStatusInfo(): void | ||||
$user->created_at = Carbon::now(); | $user->created_at = Carbon::now(); | ||||
$user->status = User::STATUS_NEW; | $user->status = User::STATUS_NEW; | ||||
$user->save(); | $user->save(); | ||||
$result = UsersController::statusInfo($user); | $result = UsersController::statusInfo($user); | ||||
$this->assertFalse($result['isReady']); | $this->assertFalse($result['isReady']); | ||||
$this->assertSame([], $result['betaSKUs']); | $this->assertSame([], $result['skus']); | ||||
$this->assertCount(3, $result['process']); | $this->assertCount(3, $result['process']); | ||||
$this->assertSame('user-new', $result['process'][0]['label']); | $this->assertSame('user-new', $result['process'][0]['label']); | ||||
$this->assertSame(true, $result['process'][0]['state']); | $this->assertSame(true, $result['process'][0]['state']); | ||||
$this->assertSame('user-ldap-ready', $result['process'][1]['label']); | $this->assertSame('user-ldap-ready', $result['process'][1]['label']); | ||||
$this->assertSame(false, $result['process'][1]['state']); | $this->assertSame(false, $result['process'][1]['state']); | ||||
$this->assertSame('user-imap-ready', $result['process'][2]['label']); | $this->assertSame('user-imap-ready', $result['process'][2]['label']); | ||||
$this->assertSame(false, $result['process'][2]['state']); | $this->assertSame(false, $result['process'][2]['state']); | ||||
$this->assertSame('running', $result['processState']); | $this->assertSame('running', $result['processState']); | ||||
Show All 22 Lines | public function testStatusInfo(): void | ||||
$domain->status |= Domain::STATUS_VERIFIED; | $domain->status |= Domain::STATUS_VERIFIED; | ||||
$domain->type = Domain::TYPE_EXTERNAL; | $domain->type = Domain::TYPE_EXTERNAL; | ||||
$domain->save(); | $domain->save(); | ||||
$result = UsersController::statusInfo($user); | $result = UsersController::statusInfo($user); | ||||
$this->assertFalse($result['isReady']); | $this->assertFalse($result['isReady']); | ||||
$this->assertSame([], $result['betaSKUs']); | $this->assertSame([], $result['skus']); | ||||
$this->assertCount(7, $result['process']); | $this->assertCount(7, $result['process']); | ||||
$this->assertSame('user-new', $result['process'][0]['label']); | $this->assertSame('user-new', $result['process'][0]['label']); | ||||
$this->assertSame(true, $result['process'][0]['state']); | $this->assertSame(true, $result['process'][0]['state']); | ||||
$this->assertSame('user-ldap-ready', $result['process'][1]['label']); | $this->assertSame('user-ldap-ready', $result['process'][1]['label']); | ||||
$this->assertSame(true, $result['process'][1]['state']); | $this->assertSame(true, $result['process'][1]['state']); | ||||
$this->assertSame('user-imap-ready', $result['process'][2]['label']); | $this->assertSame('user-imap-ready', $result['process'][2]['label']); | ||||
$this->assertSame(true, $result['process'][2]['state']); | $this->assertSame(true, $result['process'][2]['state']); | ||||
$this->assertSame('domain-new', $result['process'][3]['label']); | $this->assertSame('domain-new', $result['process'][3]['label']); | ||||
$this->assertSame(true, $result['process'][3]['state']); | $this->assertSame(true, $result['process'][3]['state']); | ||||
$this->assertSame('domain-ldap-ready', $result['process'][4]['label']); | $this->assertSame('domain-ldap-ready', $result['process'][4]['label']); | ||||
$this->assertSame(false, $result['process'][4]['state']); | $this->assertSame(false, $result['process'][4]['state']); | ||||
$this->assertSame('domain-verified', $result['process'][5]['label']); | $this->assertSame('domain-verified', $result['process'][5]['label']); | ||||
$this->assertSame(true, $result['process'][5]['state']); | $this->assertSame(true, $result['process'][5]['state']); | ||||
$this->assertSame('domain-confirmed', $result['process'][6]['label']); | $this->assertSame('domain-confirmed', $result['process'][6]['label']); | ||||
$this->assertSame(false, $result['process'][6]['state']); | $this->assertSame(false, $result['process'][6]['state']); | ||||
// Test betaSKUs property | // Test 'skus' property | ||||
$user->assignSku(Sku::where('title', 'beta')->first()); | $user->assignSku(Sku::where('title', 'beta')->first()); | ||||
$result = UsersController::statusInfo($user); | $result = UsersController::statusInfo($user); | ||||
$this->assertSame([], $result['betaSKUs']); | $this->assertSame(['beta'], $result['skus']); | ||||
$user->assignSku(Sku::where('title', 'meet')->first()); | $user->assignSku(Sku::where('title', 'meet')->first()); | ||||
$result = UsersController::statusInfo($user); | $result = UsersController::statusInfo($user); | ||||
$this->assertSame(['meet'], $result['betaSKUs']); | $this->assertSame(['beta', 'meet'], $result['skus']); | ||||
$user->assignSku(Sku::where('title', 'meet')->first()); | $user->assignSku(Sku::where('title', 'meet')->first()); | ||||
$result = UsersController::statusInfo($user); | $result = UsersController::statusInfo($user); | ||||
$this->assertSame(['meet'], $result['betaSKUs']); | $this->assertSame(['beta', 'meet'], $result['skus']); | ||||
} | } | ||||
/** | /** | ||||
* Test user creation (POST /api/v4/users) | * Test user creation (POST /api/v4/users) | ||||
*/ | */ | ||||
public function testStore(): void | public function testStore(): void | ||||
{ | { | ||||
Queue::fake(); | Queue::fake(); | ||||
▲ Show 20 Lines • Show All 514 Lines • ▼ Show 20 Lines | public function testUserResponse(): void | ||||
$this->assertCount(0, $result['accounts']); | $this->assertCount(0, $result['accounts']); | ||||
$this->assertCount(1, $result['wallets']); | $this->assertCount(1, $result['wallets']); | ||||
$this->assertSame($wallet->id, $result['wallet']['id']); | $this->assertSame($wallet->id, $result['wallet']['id']); | ||||
$this->assertArrayNotHasKey('discount', $result['wallet']); | $this->assertArrayNotHasKey('discount', $result['wallet']); | ||||
$this->assertTrue($result['statusInfo']['enableDomains']); | $this->assertTrue($result['statusInfo']['enableDomains']); | ||||
$this->assertTrue($result['statusInfo']['enableWallets']); | $this->assertTrue($result['statusInfo']['enableWallets']); | ||||
$this->assertTrue($result['statusInfo']['enableUsers']); | $this->assertTrue($result['statusInfo']['enableUsers']); | ||||
$this->assertSame([], $result['statusInfo']['betaSKUs']); | |||||
// Ned is John's wallet controller | // Ned is John's wallet controller | ||||
$ned = $this->getTestUser('ned@kolab.org'); | $ned = $this->getTestUser('ned@kolab.org'); | ||||
$ned_wallet = $ned->wallets()->first(); | $ned_wallet = $ned->wallets()->first(); | ||||
$result = $this->invokeMethod(new UsersController(), 'userResponse', [$ned]); | $result = $this->invokeMethod(new UsersController(), 'userResponse', [$ned]); | ||||
$this->assertEquals($ned->id, $result['id']); | $this->assertEquals($ned->id, $result['id']); | ||||
$this->assertEquals($ned->email, $result['email']); | $this->assertEquals($ned->email, $result['email']); | ||||
$this->assertTrue(is_array($result['accounts'])); | $this->assertTrue(is_array($result['accounts'])); | ||||
$this->assertTrue(is_array($result['wallets'])); | $this->assertTrue(is_array($result['wallets'])); | ||||
$this->assertCount(1, $result['accounts']); | $this->assertCount(1, $result['accounts']); | ||||
$this->assertCount(1, $result['wallets']); | $this->assertCount(1, $result['wallets']); | ||||
$this->assertSame($wallet->id, $result['wallet']['id']); | $this->assertSame($wallet->id, $result['wallet']['id']); | ||||
$this->assertSame($wallet->id, $result['accounts'][0]['id']); | $this->assertSame($wallet->id, $result['accounts'][0]['id']); | ||||
$this->assertSame($ned_wallet->id, $result['wallets'][0]['id']); | $this->assertSame($ned_wallet->id, $result['wallets'][0]['id']); | ||||
$this->assertSame($provider, $result['wallet']['provider']); | $this->assertSame($provider, $result['wallet']['provider']); | ||||
$this->assertSame($provider, $result['wallets'][0]['provider']); | $this->assertSame($provider, $result['wallets'][0]['provider']); | ||||
$this->assertTrue($result['statusInfo']['enableDomains']); | $this->assertTrue($result['statusInfo']['enableDomains']); | ||||
$this->assertTrue($result['statusInfo']['enableWallets']); | $this->assertTrue($result['statusInfo']['enableWallets']); | ||||
$this->assertTrue($result['statusInfo']['enableUsers']); | $this->assertTrue($result['statusInfo']['enableUsers']); | ||||
$this->assertSame([], $result['statusInfo']['betaSKUs']); | |||||
// Test discount in a response | // Test discount in a response | ||||
$discount = Discount::where('code', 'TEST')->first(); | $discount = Discount::where('code', 'TEST')->first(); | ||||
$wallet->discount()->associate($discount); | $wallet->discount()->associate($discount); | ||||
$wallet->save(); | $wallet->save(); | ||||
$mod_provider = $provider == 'mollie' ? 'stripe' : 'mollie'; | $mod_provider = $provider == 'mollie' ? 'stripe' : 'mollie'; | ||||
$wallet->setSetting($mod_provider . '_id', 123); | $wallet->setSetting($mod_provider . '_id', 123); | ||||
$user->refresh(); | $user->refresh(); | ||||
Show All 12 Lines | public function testUserResponse(): void | ||||
// Jack is not a John's wallet controller | // Jack is not a John's wallet controller | ||||
$jack = $this->getTestUser('jack@kolab.org'); | $jack = $this->getTestUser('jack@kolab.org'); | ||||
$result = $this->invokeMethod(new UsersController(), 'userResponse', [$jack]); | $result = $this->invokeMethod(new UsersController(), 'userResponse', [$jack]); | ||||
$this->assertFalse($result['statusInfo']['enableDomains']); | $this->assertFalse($result['statusInfo']['enableDomains']); | ||||
$this->assertFalse($result['statusInfo']['enableWallets']); | $this->assertFalse($result['statusInfo']['enableWallets']); | ||||
$this->assertFalse($result['statusInfo']['enableUsers']); | $this->assertFalse($result['statusInfo']['enableUsers']); | ||||
$this->assertSame([], $result['statusInfo']['betaSKUs']); | |||||
} | } | ||||
/** | /** | ||||
* List of email address validation cases for testValidateEmail() | * List of email address validation cases for testValidateEmail() | ||||
* | * | ||||
* @return array Arguments for testValidateEmail() | * @return array Arguments for testValidateEmail() | ||||
*/ | */ | ||||
public function dataValidateEmail(): array | public function dataValidateEmail(): array | ||||
▲ Show 20 Lines • Show All 218 Lines • Show Last 20 Lines |