Промежуточная версия

в которой надо дорабоать

1. Исправить ошибки и сделать что бы работала вторая слева вкладка. ТОесть АПИ для сервера я сделал (пока они возвращают весь список сообщений целиком - всем большим списком сообщений в канал - для мвп это устраивает,и по этому только три АПИ функции добавилось)

  Там какието ошибки на клиенте ( я только сгенерил код - но гдето вылетает) по UI можешь исправлять переделывать - моешь оставить калечное как есть - мне пока не важно. Важно увидить что каналы и сообщения и публичная переписка в каналах блокчейна работает

2. потестировать и сделать корректное завершение сессии (там есть глюки при завершении сесии)
This commit is contained in:
AidarKC
2026-04-03 11:04:59 +03:00
parent 78e62997d1
commit 8a83ac85d9
11 changed files with 541 additions and 3 deletions
@@ -7,7 +7,7 @@ import java.util.Objects;
public class IT_DeployRestartAndRunRemoteMain {
// ====== НАСТРОЙКИ (можно переопределять systemProperty) ======
private static final String REMOTE_HOST = System.getProperty("it.remoteHost", "10.147.20.7");
private static final String REMOTE_HOST = System.getProperty("it.remoteHost", "194.87.0.247");
private static final String REMOTE_USER = System.getProperty("it.remoteUser", "user");
private static final String REMOTE_DIR = System.getProperty("it.remoteDir", "/home/user/docker/shine-server");
@@ -103,4 +103,4 @@ public class IT_DeployRestartAndRunRemoteMain {
try { Thread.sleep(ms); }
catch (InterruptedException e) { Thread.currentThread().interrupt(); }
}
}
}
@@ -0,0 +1,94 @@
package test.it.cases;
import test.it.utils.json.JsonBuilders;
import test.it.utils.json.JsonParsers;
import test.it.utils.log.TestResult;
import test.it.utils.ws.WsSession;
import java.time.Duration;
import static org.junit.jupiter.api.Assertions.fail;
/**
* IT_00_TechnicalRequests
* Проверяет технические запросы без авторизации:
* - Ping
* - GetServerInfo
*/
public class IT_00_TechnicalRequests {
public static void main(String[] args) {
String summary = run();
System.out.println(summary);
}
public static String run() {
TestResult r = new TestResult("IT_00_TechnicalRequests");
Duration t = Duration.ofSeconds(5);
try (WsSession ws = WsSession.open()) {
checkPing(r, ws, t);
checkGetServerInfo(r, ws, t);
} catch (Throwable e) {
r.fail("IT_00_TechnicalRequests упал: " + e.getMessage());
}
return r.summaryLine();
}
private static void checkPing(TestResult r, WsSession ws, Duration t) {
String resp = ws.call("Ping", JsonBuilders.ping(System.currentTimeMillis()), t);
if (JsonParsers.status(resp) != 200) {
r.fail("Ping: ожидали status=200, resp=" + resp);
fail("Ping unexpected status");
}
if (!Boolean.TRUE.equals(JsonParsers.ok(resp))) {
r.fail("Ping: ожидали ok=true, resp=" + resp);
fail("Ping unexpected ok");
}
Long ts = JsonParsers.pingTs(resp);
if (ts == null || ts <= 0) {
r.fail("Ping: сервер не вернул payload.ts, resp=" + resp);
fail("Ping missing ts");
}
r.ok("Ping: OK, ts=" + ts);
}
private static void checkGetServerInfo(TestResult r, WsSession ws, Duration t) {
String resp = ws.call("GetServerInfo", JsonBuilders.getServerInfo(), t);
if (JsonParsers.status(resp) != 200) {
r.fail("GetServerInfo: ожидали status=200, resp=" + resp);
fail("GetServerInfo unexpected status");
}
if (!Boolean.TRUE.equals(JsonParsers.ok(resp))) {
r.fail("GetServerInfo: ожидали ok=true, resp=" + resp);
fail("GetServerInfo unexpected ok");
}
if (!JsonParsers.payloadIsObject(resp)) {
r.fail("GetServerInfo: payload должен быть объектом, resp=" + resp);
fail("GetServerInfo payload is not object");
}
assertStringField(resp, "url", r);
String version = assertStringField(resp, "version", r);
assertStringField(resp, "physicalRegion", r);
assertStringField(resp, "description", r);
assertStringField(resp, "origin", r);
assertStringField(resp, "extraInfo", r);
r.ok("GetServerInfo: OK, version=" + version);
}
private static String assertStringField(String resp, String field, TestResult r) {
String value = JsonParsers.payloadText(resp, field);
if (value == null) {
r.fail("GetServerInfo: отсутствует поле payload." + field + ", resp=" + resp);
fail("GetServerInfo missing field: " + field);
}
return value;
}
}