//go:build live package lkgateway import ( "context" "testing" "time" ) // go test -tags live -run TestDepoQualifiedLive ./internal/lkgateway/ (от bj: читает setup.json) func TestDepoQualifiedLive(t *testing.T) { rc, err := NewRuntimeConfig("/var/lib/bj/.bj/setup.json") if err != nil { t.Skip(err) } db, err := fancyOpen(rc.Snapshot().Fancy, rc.Snapshot().Fancy.DepoDB()) if err != nil { t.Skip(err) } defer db.Close() ctx, cancel := context.WithTimeout(context.Background(), time.Minute) defer cancel() rows, err := db.QueryContext(ctx, `SELECT v, face FROM ( SELECT CAST(o.VAL AS varchar(20)) AS v, MIN(c.FACE) AS face FROM OD_CLIENTS c JOIN OD_OPTIONS o ON o.OBJECT = c.FACE AND o.DESCR = 65325 AND o.B_DATE <= GETDATE() AND (o.E_DATE IS NULL OR o.E_DATE > GETDATE()) WHERE c.NUMBER LIKE N'ВТНКЦ%' GROUP BY CAST(o.VAL AS varchar(20)) UNION ALL SELECT 'нет', MIN(c.FACE) FROM OD_CLIENTS c WHERE c.NUMBER LIKE N'ВТНКЦ%' AND NOT EXISTS (SELECT 1 FROM OD_OPTIONS o WHERE o.OBJECT = c.FACE AND o.DESCR = 65325)) x`) if err != nil { t.Fatal(err) } defer rows.Close() for rows.Next() { var v string var face int64 if rows.Scan(&v, &face) != nil { continue } warn, _, det := depoFaceQualified(ctx, db, face) t.Logf("VAL=%s лицо %d: предупреждение=%v — %s", v, face, warn, det) } }