package lkgateway import ( "strings" "testing" ) func TestDepoLoginScript(t *testing.T) { ms := depoLoginScript(false, "CLIENT_DEPO", "bj_svc") for _, w := range []string{"CREATE LOGIN [bj_svc]", "USE [CLIENT_DEPO]", "CREATE USER [bj_svc] FOR LOGIN [bj_svc]", "db_datareader", "ALTER USER [bj_svc] WITH LOGIN = [bj_svc]"} { if !strings.Contains(ms, w) { t.Fatalf("MS SQL: нет %q", w) } } pg := depoLoginScript(true, "depo", "bj_svc") for _, w := range []string{`CREATE ROLE "bj_svc" LOGIN`, `GRANT CONNECT ON DATABASE "depo"`, `GRANT SELECT ON ALL TABLES`} { if !strings.Contains(pg, w) { t.Fatalf("PostgreSQL: нет %q", w) } } if s := depoLoginScript(false, "bad;db", "x'; DROP"); !strings.Contains(s, "[BJ_DEPO_DATA]") || !strings.Contains(s, "[bj_user]") { t.Fatal("недопустимые имена — подставляются значения по умолчанию") } }