32 lines
1.2 KiB
PHP
32 lines
1.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use App\Services\Sms\Providers\FakeSmsProvider;
|
|
use App\Services\Sms\SmsRouter;
|
|
|
|
it('в песочнице роутер несёт только заглушку', function () {
|
|
config()->set('services.sms.sandbox', true);
|
|
app()->forgetInstance(SmsRouter::class);
|
|
|
|
$router = app(SmsRouter::class);
|
|
|
|
expect($router->pick('mts'))->toBeInstanceOf(FakeSmsProvider::class);
|
|
});
|
|
|
|
it('в бою поднимаются только включённые каналы с ключами', function () {
|
|
config()->set('services.sms.sandbox', false);
|
|
config()->set('services.smsc.login', 'l');
|
|
config()->set('services.smsc.password', 'p');
|
|
config()->set('services.sms.mts.token', ''); // ключа нет → канал не встаёт
|
|
config()->set('services.sms.providers.mts.enabled', true);
|
|
config()->set('services.sms.providers.smsc.enabled', true);
|
|
app()->forgetInstance(SmsRouter::class);
|
|
|
|
$router = app(SmsRouter::class);
|
|
|
|
// МТС-ключа нет → МТС-номер уходит универсалу (СМС-центр).
|
|
expect($router->pick('mts')?->key())->toBe('smsc')
|
|
->and($router->pick('')?->key())->toBe('smsc');
|
|
});
|