Files
admin cde0e28e44
Deploy Promiscuity Auth API / deploy (push) Failing after 20s
Deploy Promiscuity Character API / deploy (push) Failing after 19s
Deploy Promiscuity Crafting API / deploy (push) Failing after 20s
Deploy Promiscuity Inventory API / deploy (push) Failing after 19s
Deploy Promiscuity Locations API / deploy (push) Failing after 19s
Deploy Promiscuity Mail API / deploy (push) Failing after 20s
Deploy Promiscuity World API / deploy (push) Failing after 20s
k8s smoke test / test (push) Failing after 20s
Add Steam OpenID authentication
2026-07-20 00:30:06 -05:00

40 lines
1.6 KiB
C#

using AuthApi.Services;
using Xunit;
namespace AuthApi.Tests;
public class SteamOpenIdServiceTests
{
[Fact]
public void BuildAuthenticationUrl_UsesSteamEndpointAndBindsReturnUrl()
{
const string callback = "https://pauth.ranaze.com/api/Auth/steam/callback?transactionId=abc-123";
var result = SteamOpenIdService.BuildAuthenticationUrl("https://pauth.ranaze.com", callback);
Assert.StartsWith(SteamOpenIdService.Endpoint + "?", result);
Assert.Contains("openid.mode=checkid_setup", result);
Assert.Contains(Uri.EscapeDataString(callback), result);
Assert.Contains(Uri.EscapeDataString("https://pauth.ranaze.com"), result);
}
[Theory]
[InlineData("https://steamcommunity.com/openid/id/76561198000000000", "76561198000000000")]
[InlineData("http://steamcommunity.com/openid/id/76561198000000000", "76561198000000000")]
[InlineData("https://example.com/openid/id/76561198000000000", null)]
[InlineData("https://steamcommunity.com/openid/id/not-a-steamid", null)]
public void ExtractSteamId_OnlyAcceptsSteamClaimedIds(string claimedId, string? expected)
{
Assert.Equal(expected, SteamOpenIdService.ExtractSteamId(claimedId));
}
[Theory]
[InlineData("ns:http://specs.openid.net/auth/2.0\nis_valid:true\n", true)]
[InlineData("is_valid:false\n", false)]
[InlineData("is_valid:true-ish\n", false)]
public void IsValidAuthenticationResponse_RequiresExactValidLine(string response, bool expected)
{
Assert.Equal(expected, SteamOpenIdService.IsValidAuthenticationResponse(response));
}
}