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