24 lines
1.3 KiB
Go
24 lines
1.3 KiB
Go
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")
|
|
}
|
|
}
|