package domain_test import ( "git.cin.su/m/Assistant/contracts/configuration" "git.cin.su/m/Assistant/modules/configuration/domain" "testing" "time" ) func TestConversationCreatesScopedAssignmentWithoutBypassingAuthority(t *testing.T) { d := configuration.SettingDefinition{ID: "setting:language", OwnerNamespace: "interaction", StableKey: "language", Revision: 2, ValueType: configuration.ValueString, Lifecycle: configuration.SettingActive, RecordedAtUnixMillis: 1} a, err := domain.AssignmentFromConversation("SET", "principal-1", "setting:language", "ru", "session-1", "utterance-1", true, d, time.UnixMilli(2)) if err != nil || a.Selector.PrincipalRef != "principal-1" || !a.Selector.TemporaryOverride || a.Source != configuration.SourceHumanDirective { t.Fatalf("assignment=%+v err=%v", a, err) } } func TestSecretConfigurationCannotReceiveConversationalValue(t *testing.T) { d := configuration.SettingDefinition{ID: "setting:key", OwnerNamespace: "capability", StableKey: "key", Revision: 1, ValueType: configuration.ValueSecretRef, Lifecycle: configuration.SettingActive, RecordedAtUnixMillis: 1} if _, err := domain.AssignmentFromConversation("SET", "p", string(d.ID), "secret", "", "u", false, d, time.UnixMilli(2)); err == nil { t.Fatal("secret value accepted") } }