Skip to content

Commit

Permalink
Update E2E Tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Mythicaeda committed Jun 6, 2024
1 parent 3abd30c commit 138e89c
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import static gov.nasa.jpl.aerie.e2e.types.ValueSchema.*;
import static java.util.Map.entry;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;

@TestInstance(TestInstance.Lifecycle.PER_CLASS)
Expand Down Expand Up @@ -377,14 +378,17 @@ void hasuraEventLogsAreAccessible() throws IOException {
// Check Activity Type Refresh Event Logs
final var activityTypeRefreshLogs = modelLogs.refreshActivityTypesLogs();
assertEquals(1, activityTypeRefreshLogs.size());
final var activityTypeLog = activityTypeRefreshLogs.get(0);
final var activityTypeLog = activityTypeRefreshLogs.getFirst();

assertEquals("Aerie Legacy", activityTypeLog.triggeringUser());

assertFalse(activityTypeLog.pending());
assertTrue(activityTypeLog.delivered());
assertTrue(activityTypeLog.success());
assertEquals(1, activityTypeLog.tries());
assertEquals(200, activityTypeLog.status());

assertTrue(activityTypeLog.status().isPresent());
assertEquals(200, activityTypeLog.status().get());

assertTrue(activityTypeLog.error().isEmpty());
assertTrue(activityTypeLog.errorMessage().isEmpty());
Expand All @@ -393,14 +397,17 @@ void hasuraEventLogsAreAccessible() throws IOException {
// Check Model Parameter Refresh Event Logs
final var modelParamRefreshLogs = modelLogs.refreshModelParamsLogs();
assertEquals(1, modelParamRefreshLogs.size());
final var modelParamLog = modelParamRefreshLogs.get(0);
final var modelParamLog = modelParamRefreshLogs.getFirst();

assertEquals("Aerie Legacy", modelParamLog.triggeringUser());

assertFalse(modelParamLog.pending());
assertTrue(modelParamLog.delivered());
assertTrue(modelParamLog.success());
assertEquals(1, modelParamLog.tries());
assertEquals(200, modelParamLog.status());

assertTrue(modelParamLog.status().isPresent());
assertEquals(200, modelParamLog.status().get());

assertTrue(modelParamLog.error().isEmpty());
assertTrue(modelParamLog.errorMessage().isEmpty());
Expand All @@ -409,14 +416,17 @@ void hasuraEventLogsAreAccessible() throws IOException {
// Check Resource Type Refresh Event Logs
final var resourceTypeRefreshLogs = modelLogs.refreshResourceTypesLogs();
assertEquals(1, resourceTypeRefreshLogs.size());
final var resourceTypeLog = resourceTypeRefreshLogs.get(0);
final var resourceTypeLog = resourceTypeRefreshLogs.getFirst();

assertEquals("Aerie Legacy", resourceTypeLog.triggeringUser());

assertFalse(resourceTypeLog.pending());
assertTrue(resourceTypeLog.delivered());
assertTrue(resourceTypeLog.success());
assertEquals(1, resourceTypeLog.tries());
assertEquals(200, resourceTypeLog.status());

assertTrue(resourceTypeLog.status().isPresent());
assertEquals(200, resourceTypeLog.status().get());

assertTrue(resourceTypeLog.error().isEmpty());
assertTrue(resourceTypeLog.errorMessage().isEmpty());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,20 @@ public record ModelEventLogs(
) {
public record EventLog(
String triggeringUser,
boolean pending,
boolean delivered,
boolean success,
int tries,
String createdAt,
int status,
Optional<Integer> status,
Optional<JsonObject> error,
Optional<String> errorMessage,
Optional<String> errorType
)
{
public static EventLog fromJSON(JsonObject json) {
final Optional<Integer> status = json.isNull("status") ?
Optional.empty() : Optional.of(json.getInt("status"));
final Optional<JsonObject> error = json.isNull("error") ?
Optional.empty() : Optional.of(json.getJsonObject("error"));
final Optional<String> errorMsg = json.isNull("error_message") ?
Expand All @@ -34,11 +37,12 @@ public static EventLog fromJSON(JsonObject json) {

return new EventLog(
json.getString("triggering_user"),
json.getBoolean("pending"),
json.getBoolean("delivered"),
json.getBoolean("success"),
json.getInt("tries"),
json.getString("created_at"),
json.getInt("status"),
status,
error,
errorMsg,
errorType);
Expand Down
3 changes: 3 additions & 0 deletions e2e-tests/src/test/java/gov/nasa/jpl/aerie/e2e/utils/GQL.java
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,7 @@ query getModelLogs($modelId: Int!) {
version
refresh_activity_type_logs(order_by: {created_at: desc}) {
triggering_user
pending
delivered
success
tries
Expand All @@ -284,6 +285,7 @@ query getModelLogs($modelId: Int!) {
}
refresh_model_parameter_logs(order_by: {created_at: desc}) {
triggering_user
pending
delivered
success
tries
Expand All @@ -295,6 +297,7 @@ query getModelLogs($modelId: Int!) {
}
refresh_resource_type_logs(order_by: {created_at: desc}) {
triggering_user
pending
delivered
success
tries
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -163,17 +163,19 @@ public ModelEventLogs awaitModelEventLogs(int modelId, int timeout) throws IOExc
final var variables = Json.createObjectBuilder().add("modelId", modelId).build();

for(int i = 0; i < timeout; ++i){
final var logs = makeRequest(GQL.GET_MODEL_EVENT_LOGS, variables).getJsonObject("mission_model");
if(logs.getJsonArray("refresh_activity_type_logs").isEmpty()
|| logs.getJsonArray("refresh_model_parameter_logs").isEmpty()
|| logs.getJsonArray("refresh_resource_type_logs").isEmpty()) {
final var logs = ModelEventLogs.fromJSON(makeRequest(GQL.GET_MODEL_EVENT_LOGS, variables)
.getJsonObject("mission_model"));

if(logs.refreshActivityTypesLogs().getLast().pending() ||
logs.refreshModelParamsLogs().getLast().pending() ||
logs.refreshResourceTypesLogs().getLast().pending()) {
try {
Thread.sleep(1000); // 1s
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
} else {
return ModelEventLogs.fromJSON(logs);
return logs;
}
}
throw new TimeoutError("One or more mission model Hausra events did not return after " + timeout + " seconds");
Expand Down

0 comments on commit 138e89c

Please sign in to comment.