a159bf73cb
Номер абонента Мотива не доходил даже до каналов: словарь операторов о Мотиве не знал, и номер выбывал на первой заставе «кому мы вообще шлём». Что сделано: · словарь знает ОБА сырых написания — торговое «Мотив» от ДаДаты и юридическое ООО "ЕКАТЕРИНБУРГ-2000" из реестра Россвязи, где слова «Мотив» нет ни разу замер по DEF-9xx.csv: 29 диапазонов, среди 89 имён реестра столкновений нет; · Мотив добавлен к четвёрке владельца — сетей стало пять; · маршрут через Билайна стоит на выключателе SMS_BEELINE_SERVES_MOTIV, умолчание ВЫКЛЮЧЕНО: до одобрения имени отправка вернёт 20230, а этот отказ окончательный — повтора нет, сообщение умрёт; · цена по сети, а не одна на канал: 770 копеек за Мотива. Экран сверки тоже научен считать по сети — иначе занижал бы расход на 1,84 ₽ с сообщения; · проверка ввода настроек и галки в админке пропускают Мотива: без этого владелец не смог бы его отметить, а заполненный список отменяет код; · на клиентском экране «Имя отправителя» появилась пятая строка — скрыть её значило бы солгать умолчанием. Тесты: модуль 548/548, было 530; 1801 проверка. Фронтенд 120/120, Sales 483/483. Контрольные прогоны: убранное юридическое написание красит ровно четыре зависящих от него теста, перевёрнутое умолчание выключателя — ровно один. Не выкачено. Включать после того, как Билайн согласует имя — ориентир 24.08.2026.
35 lines
1.5 KiB
PHP
35 lines
1.5 KiB
PHP
<?php
|
||
|
||
declare(strict_types=1);
|
||
|
||
use App\Services\Sms\OperatorNormalizer;
|
||
|
||
dataset('operators', [
|
||
['МТС', 'mts'],
|
||
['ПАО "МТС"', 'mts'],
|
||
['mts', 'mts'],
|
||
['Мобильные ТелеСистемы', 'mts'],
|
||
['ВымпелКом', 'beeline'],
|
||
['ПАО ВымпелКом', 'beeline'],
|
||
['Билайн', 'beeline'],
|
||
['МегаФон', 'megafon'],
|
||
['Tele2', 'tele2'],
|
||
['Т2 Мобайл', 'tele2'],
|
||
['Yota', 'yota'],
|
||
// 🪤 У Мотива ДВА сырых написания, и приходят они из РАЗНЫХ мест: ДаДата
|
||
// отдаёт торговое имя, реестр Россвязи — юридическое. Слова «Мотив» в
|
||
// реестре нет ни разу (замер по DEF-9xx.csv 10.08.2026: 29 диапазонов
|
||
// ООО "ЕКАТЕРИНБУРГ-2000"). Знай словарь только одно из двух — половина
|
||
// номеров молча выпала бы, и выглядело бы это как «ДаДата не ответила».
|
||
['Мотив', 'motiv'],
|
||
['МОТИВ', 'motiv'],
|
||
['ООО "ЕКАТЕРИНБУРГ-2000"', 'motiv'],
|
||
['ООО «Екатеринбург-2000»', 'motiv'],
|
||
['', ''],
|
||
['Космическая связь', ''],
|
||
]);
|
||
|
||
it('приводит имя оператора к каноническому ключу', function (string $raw, string $expected) {
|
||
expect((new OperatorNormalizer)->canonical($raw))->toBe($expected);
|
||
})->with('operators');
|