mivita/tests/Feature/BusinessPlan/SelfSponsoredUserTreeCalcTest.php
2026-04-10 17:15:27 +02:00

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();
});