| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- <?php
- namespace Tests\Unit\Models;
- use App\Models\Setting;
- use App\Models\Ttn;
- use Illuminate\Foundation\Testing\RefreshDatabase;
- use Tests\TestCase;
- class TtnTest extends TestCase
- {
- use RefreshDatabase;
- public function test_reserve_next_ttn_number_uses_existing_setting_and_increments_it(): void
- {
- Setting::set(Setting::KEY_TTN_NEXT_NUMBER, 10);
- $reservedNumber = Ttn::reserveNextTtnNumber();
- $this->assertSame(10, $reservedNumber);
- $this->assertSame(11, Setting::getInt(Setting::KEY_TTN_NEXT_NUMBER));
- }
- public function test_reserve_next_ttn_number_falls_back_to_max_number_for_current_year(): void
- {
- Ttn::query()->create([
- 'year' => now()->year,
- 'ttn_number' => 13,
- 'ttn_number_suffix' => 'И',
- 'order_number' => 'З-13',
- 'order_date' => '2026-04-01',
- 'departure_date' => '2026-04-02',
- 'order_sum' => '1000',
- 'skus' => json_encode([1], JSON_THROW_ON_ERROR),
- ]);
- $reservedNumber = Ttn::reserveNextTtnNumber();
- $this->assertSame(14, $reservedNumber);
- $this->assertSame(15, Setting::getInt(Setting::KEY_TTN_NEXT_NUMBER));
- }
- }
|