Some checks failed
Desktop tests / test (push) Has been cancelled
- проект tests/Elfisa.Tests: 56 юнит-тестов на Elfisa.Core + Elfisa.Avalonia: версии апдейтера, срок JWT-сессии, ApiClient (URL/ошибки/ретраи/парсинг), DTO-контракты, черновики, корзина, дрилдаун прайса (МГ/базовое имя) - тест-швы: internal-методы через InternalsVisibleTo, ApiClient(HttpMessageHandler) - CI .github/workflows/desktop-tests.yml — dotnet test при пуше (GitHub/Gitea Actions) - README с описанием покрытия Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
37 lines
1.5 KiB
C#
37 lines
1.5 KiB
C#
using Elfisa.Avalonia.ViewModels;
|
||
using Xunit;
|
||
|
||
namespace Elfisa.Tests;
|
||
|
||
// Логика дрилдаула прайса: извлечение дозировки (МГ) и базового наименования.
|
||
public class PriceLogicTests
|
||
{
|
||
[Theory]
|
||
[InlineData("Нурофен таб. 200мг №10", "200мг")]
|
||
[InlineData("Парацетамол 500 мг таб", "500 мг")]
|
||
[InlineData("Витамин D3 2000 МЕ", "2000 МЕ")]
|
||
[InlineData("Настойка 25мл", "25мл")]
|
||
[InlineData("Метформин 1000мг", "1000мг")]
|
||
[InlineData("Бинт стерильный", "")]
|
||
[InlineData("", "")]
|
||
[InlineData(null, "")]
|
||
public void ExtractDosage_finds_unit(string? name, string expected)
|
||
=> Assert.Equal(expected, PriceListViewModel.ExtractDosage(name));
|
||
|
||
[Fact]
|
||
public void BuildBaseName_prefers_trade_name()
|
||
=> Assert.Equal("Нурофен", PriceListViewModel.BuildBaseName("Нурофен таб 200мг", "Нурофен", "200мг"));
|
||
|
||
[Fact]
|
||
public void BuildBaseName_strips_dosage()
|
||
=> Assert.Equal("Аспирин", PriceListViewModel.BuildBaseName("Аспирин 500мг", null, "500мг"));
|
||
|
||
[Fact]
|
||
public void BuildBaseName_keeps_name_without_dosage()
|
||
=> Assert.Equal("Бинт стерильный", PriceListViewModel.BuildBaseName("Бинт стерильный", null, ""));
|
||
|
||
[Fact]
|
||
public void BuildBaseName_empty_returns_empty()
|
||
=> Assert.Equal("", PriceListViewModel.BuildBaseName("", null, ""));
|
||
}
|