From 4b16e33715f601e3dbb4959edd93a1a9ed1d412d Mon Sep 17 00:00:00 2001 From: Mathias Date: Fri, 2 Oct 2026 16:37:49 +0200 Subject: [PATCH] test(cmd): the upload chat switcher never offers a cloud model (red; adversarial review F1) Co-Authored-By: Claude Sonnet 5.5 --- cmd/tapir/uploads_chat_models_test.go | 46 +++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 cmd/tapir/uploads_chat_models_test.go diff --git a/cmd/tapir/uploads_chat_models_test.go b/cmd/tapir/uploads_chat_models_test.go new file mode 100644 index 0000000..eb64f93 --- /dev/null +++ b/cmd/tapir/uploads_chat_models_test.go @@ -0,0 +1,46 @@ +package main + +import ( + "reflect" + "testing" + + "git.d-ma.be/mathias/tapir/internal/config" +) + +// The chat over an uploaded recording sends the whole private transcript to the model +// the user picks, so the switcher for it may offer local models only (ADR-035 review). + +func TestUploadChatModels_NeverOffersACloudModelButKeepsTheLocalOrder(t *testing.T) { + var cfg config.Config + cfg.SummarizerModel = "koala/phi4-mini" + cfg.FallbackModel = "iguana/gemma4-26b" + cfg.CloudFallbackModel = "berget/mistral-small" + + got := uploadChatModels(cfg) + + want := []string{"koala/phi4-mini", "iguana/gemma4-26b"} + if !reflect.DeepEqual(got, want) { + t.Errorf("uploadChatModels = %v, want %v: the cloud model that the video chat offers must not be offered for a private recording", got, want) + } +} + +func TestUploadChatModels_ACloudPrimaryIsDroppedToo(t *testing.T) { + var cfg config.Config + cfg.SummarizerModel = "berget/mistral-small" + cfg.FallbackModel = "iguana/gemma4-26b" + + got := uploadChatModels(cfg) + + if !reflect.DeepEqual(got, []string{"iguana/gemma4-26b"}) { + t.Errorf("uploadChatModels = %v", got) + } +} + +func TestUploadChatModels_NoLocalModelMeansNoneOfferedNotACloudDefault(t *testing.T) { + var cfg config.Config + cfg.SummarizerModel = "berget/mistral-small" + + if got := uploadChatModels(cfg); len(got) != 0 { + t.Errorf("uploadChatModels = %v, want none", got) + } +}