package lkgateway import ( "strings" "testing" ) // Папки шлюза «через домен»: доступ — группам с ролью в bj и доменным сотрудникам bj (включённым). func TestIgateShareValid(t *testing.T) { prev := globalUsers globalUsers = &userStore{users: map[string]*User{}} defer func() { globalUsers = prev }() globalUsers.users["azuev"] = &User{Login: "azuev", Source: "ad", Active: true, Role: "operator"} globalUsers.users["old"] = &User{Login: "old", Source: "ad", Active: false, Role: "viewer"} globalUsers.users["admin"] = &User{Login: "admin", Source: "local", Active: true, Role: "admin"} a := AuthSettings{ADGroups: []ADGroupRole{{Group: "CN=BJ-Operators,OU=Groups,DC=corp,DC=local", Role: "operator"}, {Group: "Депозитарий \"Главный\"", Role: "viewer"}}} got, err := igateShareValidWG(a, "CORP") if err != nil { t.Fatal(err) } want := `@"CORP\BJ-Operators", @"CORP\Депозитарий Главный", "CORP\azuev"` if got != want { t.Fatalf("\n got %s\nwant %s", got, want) } if strings.Contains(got, "old") || strings.Contains(got, "admin") { t.Fatal("в доступ попали отключённый или локальный пользователь") } globalUsers = &userStore{users: map[string]*User{}} if _, err := igateShareValidWG(AuthSettings{}, "CORP"); err == nil { t.Fatal("пустой список доступа должен быть ошибкой") } } func TestIgateShareOldNames(t *testing.T) { if !igateShareOldNames([]any{"igate_exchange", "igate_exchange_prod"}) { t.Fatal("прежняя схема имён не распознана") } if igateShareOldNames([]any{"igate_exchange_test", "igate_exchange"}) { t.Fatal("новая схема принята за прежнюю") } }