da12a9ec1c
- bj_exchange и «кран» Fancy убраны: данные модуля ЛК в PostgreSQL (схема lk) - трансферные таблицы FTV_M2M: создание при установке, события, справочник участников - сверка с DEPO: счёт, ФИО, дата рождения, ИИС по договору, квал-инвестор из опции DEPO - боевой ЛК ЕСИА Финанс при тестовом ИШ: журнал, отказ через DEPO, статусы в ЛК - онлайн-лицензирование в bj, план тестирования M2M для контрагента (интерактивный HTML) - модули QUIK МНП, экспорт QUIK, НПР/УДС; документы и тестовые материалы Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
39 lines
1.6 KiB
Go
39 lines
1.6 KiB
Go
package lkgateway
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestDepoTablesScript(t *testing.T) {
|
|
ms := depoTablesScript(FancyMSSQLSettings{User: "bj_user", DepoDatabase: "DEPO"})
|
|
for _, want := range []string{"USE [DEPO];", "CREATE TABLE dbo.FTV_M2M (", "CREATE TABLE dbo.FTV_M2M_HANDBOOK (", "\nGO\n",
|
|
"IF COL_LENGTH(N'dbo.FTV_M2M_LINES', N'SHARE') IS NULL ALTER TABLE", "GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.FTV_M2M_EVENTS TO [bj_user]",
|
|
"STATE varchar(64) NOT NULL CONSTRAINT DF_FTV_M2M_STATE DEFAULT ('TODO')"} {
|
|
if !strings.Contains(ms, want) {
|
|
t.Errorf("MSSQL: нет %q", want)
|
|
}
|
|
}
|
|
if n := strings.Count(ms, "CREATE TABLE "); n != len(depoTableSpecs) {
|
|
t.Errorf("MSSQL: CREATE TABLE %d, ожидали %d", n, len(depoTableSpecs))
|
|
}
|
|
|
|
pg := depoTablesScript(FancyMSSQLSettings{DBType: "postgres", User: "bj_user"})
|
|
for _, want := range []string{"CREATE TABLE IF NOT EXISTS FTV_M2M (", "ID integer GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY",
|
|
"ADD COLUMN IF NOT EXISTS SHARE integer NULL", `GRANT SELECT, INSERT, UPDATE, DELETE ON FTV_M2M, FTV_M2M_LINES, FTV_M2M_EVENTS, FTV_M2M_HANDBOOK TO "bj_user"`,
|
|
"-d BJ_DEPO_DATA"} {
|
|
if !strings.Contains(pg, want) {
|
|
t.Errorf("PostgreSQL: нет %q", want)
|
|
}
|
|
}
|
|
for _, bad := range []string{"\nGO\n", "dbo.", "GETDATE", "varchar(max)", "uniqueidentifier"} {
|
|
if strings.Contains(pg, bad) {
|
|
t.Errorf("PostgreSQL: лишнее %q", bad)
|
|
}
|
|
}
|
|
|
|
if g := depoTablesGrantSQL(false, "bj]; DROP TABLE x;--"); g != nil {
|
|
t.Errorf("логин с недопустимыми символами не должен попадать в GRANT: %v", g)
|
|
}
|
|
}
|