d78fe601ff
CI / backend (push) Successful in 52s
CI / frontend (push) Successful in 14s
Deploy Staging / deploy (push) Successful in 26s
CI / backend (pull_request) Successful in 53s
CI / frontend (pull_request) Successful in 16s
Security / secrets (push) Successful in 4s
Security / dependencies (push) Successful in 55s
Security / secrets (pull_request) Successful in 4s
Security / dependencies (pull_request) Successful in 53s
24 lines
772 B
C#
24 lines
772 B
C#
using FluentAssertions;
|
|
using InboxIntel.Infrastructure.Ai;
|
|
using Xunit;
|
|
|
|
namespace InboxIntel.UnitTests;
|
|
|
|
/// <summary>
|
|
/// The Null embedding provider is the AI-off / no-model path. Semantic features must be able
|
|
/// to detect unavailability (IsAvailable=false) and fall back to lexical search — this locks
|
|
/// that contract so "AI is never required" can't silently regress.
|
|
/// </summary>
|
|
public class EmbeddingProviderTests
|
|
{
|
|
[Fact]
|
|
public async Task Null_provider_reports_unavailable_and_returns_empty_vectors()
|
|
{
|
|
var sut = new NullEmbeddingProvider();
|
|
|
|
sut.IsAvailable.Should().BeFalse();
|
|
(await sut.EmbedAsync("anything")).Should().BeEmpty();
|
|
(await sut.EmbedBatchAsync(new[] { "a", "b" })).Should().BeEmpty();
|
|
}
|
|
}
|