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>
33 lines
890 B
C#
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()));
|
|
}
|