//go:build live package lkgateway import ( "context" "fmt" "os" "testing" "time" ) // Проверка боевой блокировки и снятия в МНП: «Вывод ЦБ (M2M)» 1 шт. → снятие. BLK_GO=1 func TestQuikBlockUnblockLive(t *testing.T) { if os.Getenv("BLK_GO") != "1" { t.Skip() } rc, err := NewRuntimeConfig("/var/lib/bj/.bj/setup.json") if err != nil { t.Fatal(err) } globalRC = rc ctx := context.Background() s := rc.Snapshot().Quik s.Emulate, s.WritesEnabled = false, true // только для этой проверки if no := os.Getenv("BLK_DENY"); no != "" { // только снять поручение №BLK_DENY var n float64 fmt.Sscan(no, &n) aid2, err := quikExecDeny(ctx, s, n, "Проверка bj: снятие тестовой блокировки") fmt.Println("снятие ActionID:", aid2, err) if err == nil { r2 := quikWaitAction(ctx, s, aid2, 90*time.Second) fmt.Printf("снятие: статус %d — %s\n", r2.QueryStatus, r2.ReplyText) } return } aid, err := quikExecNewInstr(ctx, s, true, "BJ-BLK-TEST", "BR859", "RU0009029540", 1, "7702015515", true, "bj: проверка блокировки/снятия") fmt.Println("регистрация ActionID:", aid, err) if err != nil { return } r := quikWaitAction(ctx, s, aid, 90*time.Second) fmt.Printf("блокировка: статус %d, поручение %s — %s\n", r.QueryStatus, r.InstrNo, r.ReplyText) if r.QueryStatus != 2 || r.InstrNo == "" || r.InstrNo == "0" || os.Getenv("BLK_KEEP") == "1" { return } var no float64 fmt.Sscan(r.InstrNo, &no) aid2, err := quikExecDeny(ctx, s, no, "Проверка bj: снятие тестовой блокировки") fmt.Println("снятие ActionID:", aid2, err) if err != nil { return } r2 := quikWaitAction(ctx, s, aid2, 90*time.Second) fmt.Printf("снятие: статус %d — %s\n", r2.QueryStatus, r2.ReplyText) }