71 lines
2 KiB
PHP
71 lines
2 KiB
PHP
<?php
|
|
|
|
use App\Models\Country;
|
|
use App\Models\UserAccount;
|
|
use App\Models\UserBusiness;
|
|
use App\Models\UserLevel;
|
|
use App\Services\BusinessPlan\TreeCalcBot;
|
|
use App\User;
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
|
|
uses(Tests\TestCase::class);
|
|
uses(RefreshDatabase::class);
|
|
|
|
it('TreeCalcBot initBusinesslUserDetail terminiert bei Selbst-Sponsor ohne Downline-Rekursion', function () {
|
|
$country = Country::create([
|
|
'code' => 'AT',
|
|
'phone' => '43',
|
|
'en' => 'Austria',
|
|
'de' => 'Österreich',
|
|
'es' => 'Austria',
|
|
'fr' => 'Autriche',
|
|
'it' => 'Austria',
|
|
'ru' => 'Austria',
|
|
]);
|
|
|
|
$level = UserLevel::create([
|
|
'name' => 'Berater',
|
|
'margin' => 30,
|
|
'margin_shop' => 30,
|
|
'qual_kp' => 350,
|
|
'qual_pp' => 1000,
|
|
'pos' => 2,
|
|
'active' => true,
|
|
]);
|
|
|
|
$account = UserAccount::create([
|
|
'm_account' => random_int(900_000, 999_999),
|
|
'first_name' => 'Self',
|
|
'last_name' => 'Sponsor',
|
|
'country_id' => $country->id,
|
|
'shipping_country_id' => $country->id,
|
|
]);
|
|
|
|
$user = User::forceCreate([
|
|
'email' => 'self-sponsor-'.uniqid('', true).'@example.com',
|
|
'password' => bcrypt('secret'),
|
|
'lang' => 'de',
|
|
'account_id' => $account->id,
|
|
'm_level' => $level->id,
|
|
'm_sponsor' => null,
|
|
'payment_account' => '2030-12-31 00:00:00',
|
|
'payment_shop' => '2030-12-31 00:00:00',
|
|
'active_date' => '2020-01-01 00:00:00',
|
|
'admin' => 0,
|
|
'confirmed' => 1,
|
|
]);
|
|
|
|
$user->update(['m_sponsor' => $user->id]);
|
|
|
|
$month = 6;
|
|
$year = 2099;
|
|
|
|
expect(
|
|
UserBusiness::where('user_id', $user->id)->where('month', $month)->where('year', $year)->exists()
|
|
)->toBeFalse();
|
|
|
|
$bot = new TreeCalcBot($month, $year, 'member');
|
|
$bot->initBusinesslUserDetail($user->fresh(['account', 'user_level', 'user_sponsor']));
|
|
|
|
expect($bot->business_user->businessUserItems)->toBeEmpty();
|
|
});
|