elfisa-pharmacy/tests/Elfisa.Tests/SessionTests.cs
Exest 3d89fac6e0
Some checks failed
Desktop tests / test (push) Has been cancelled
тесты: автотесты десктопа (xUnit) + CI
- проект 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>
2026-08-17 11:51:50 +03:00

33 lines
890 B
C#

using Elfisa.Core;
using Xunit;
namespace Elfisa.Tests;
public class SessionTests
{
[Fact]
public void Future_token_is_not_expired()
=> Assert.False(Session.IsJwtExpired(Jwt.Make(Jwt.Now + 3600)));
[Fact]
public void Past_token_is_expired()
=> Assert.True(Session.IsJwtExpired(Jwt.Make(Jwt.Now - 10)));
[Fact]
public void Within_60s_skew_is_treated_expired()
=> Assert.True(Session.IsJwtExpired(Jwt.Make(Jwt.Now + 30)));
[Theory]
[InlineData("")]
[InlineData("onlyonepart")]
[InlineData("has.two")]
[InlineData("too.many.parts.here")]
[InlineData("a.!!!notbase64!!!.c")]
public void Malformed_token_is_treated_expired(string token)
=> Assert.True(Session.IsJwtExpired(token));
[Fact]
public void No_exp_claim_is_not_expired()
=> Assert.False(Session.IsJwtExpired(Jwt.MakeNoExp()));
}