Skip to content

Commit

Permalink
Tests: Use different watch ids per test in smoke test (#30331)
Browse files Browse the repository at this point in the history
Each test now has its own watch id that is being used.
This ensures there are no old history entries, which can potentially
lead to broken test assertions.
  • Loading branch information
spinscale authored May 3, 2018
1 parent c8d8407 commit 1839454
Showing 1 changed file with 16 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ public class SmokeTestWatcherWithSecurityIT extends ESRestTestCase {
private static final String TEST_ADMIN_USERNAME = "test_admin";
private static final String TEST_ADMIN_PASSWORD = "x-pack-test-password";

private String watchId = randomAlphaOfLength(20);

@Before
public void startWatcher() throws Exception {
StringEntity entity = new StringEntity("{ \"value\" : \"15\" }", ContentType.APPLICATION_JSON);
Expand Down Expand Up @@ -87,7 +89,6 @@ public void startWatcher() throws Exception {

@After
public void stopWatcher() throws Exception {
adminClient().performRequest("DELETE", "_xpack/watcher/watch/my_watch");
assertOK(adminClient().performRequest("DELETE", "my_test_index"));

assertBusy(() -> {
Expand Down Expand Up @@ -147,14 +148,14 @@ public void testSearchInputHasPermissions() throws Exception {
builder.startObject("condition").startObject("compare").startObject("ctx.payload.hits.total").field("gte", 1)
.endObject().endObject().endObject();
builder.startObject("actions").startObject("logging").startObject("logging")
.field("text", "successfully ran my_watch to test for search inpput").endObject().endObject().endObject();
.field("text", "successfully ran " + watchId + "to test for search inpput").endObject().endObject().endObject();
builder.endObject();

indexWatch("my_watch", builder);
indexWatch(watchId, builder);
}

// check history, after watch has fired
ObjectPath objectPath = getWatchHistoryEntry("my_watch", "executed");
ObjectPath objectPath = getWatchHistoryEntry(watchId, "executed");
boolean conditionMet = objectPath.evaluate("hits.hits.0._source.result.condition.met");
assertThat(conditionMet, is(true));
}
Expand All @@ -174,11 +175,11 @@ public void testSearchInputWithInsufficientPrivileges() throws Exception {
.field("text", "this should never be logged").endObject().endObject().endObject();
builder.endObject();

indexWatch("my_watch", builder);
indexWatch(watchId, builder);
}

// check history, after watch has fired
ObjectPath objectPath = getWatchHistoryEntry("my_watch");
ObjectPath objectPath = getWatchHistoryEntry(watchId);
String state = objectPath.evaluate("hits.hits.0._source.state");
assertThat(state, is("execution_not_needed"));
boolean conditionMet = objectPath.evaluate("hits.hits.0._source.result.condition.met");
Expand All @@ -201,11 +202,11 @@ public void testSearchTransformHasPermissions() throws Exception {
.endObject().endObject().endObject();
builder.endObject();

indexWatch("my_watch", builder);
indexWatch(watchId, builder);
}

// check history, after watch has fired
ObjectPath objectPath = getWatchHistoryEntry("my_watch", "executed");
ObjectPath objectPath = getWatchHistoryEntry(watchId, "executed");
boolean conditionMet = objectPath.evaluate("hits.hits.0._source.result.condition.met");
assertThat(conditionMet, is(true));

Expand All @@ -232,10 +233,10 @@ public void testSearchTransformInsufficientPermissions() throws Exception {
.endObject().endObject().endObject();
builder.endObject();

indexWatch("my_watch", builder);
indexWatch(watchId, builder);
}

getWatchHistoryEntry("my_watch");
getWatchHistoryEntry(watchId);

Response response = adminClient().performRequest("GET", "my_test_index/doc/some-id",
Collections.singletonMap("ignore", "404"));
Expand All @@ -254,10 +255,10 @@ public void testIndexActionHasPermissions() throws Exception {
.endObject().endObject().endObject();
builder.endObject();

indexWatch("my_watch", builder);
indexWatch(watchId, builder);
}

ObjectPath objectPath = getWatchHistoryEntry("my_watch", "executed");
ObjectPath objectPath = getWatchHistoryEntry(watchId, "executed");
boolean conditionMet = objectPath.evaluate("hits.hits.0._source.result.condition.met");
assertThat(conditionMet, is(true));

Expand All @@ -278,10 +279,10 @@ public void testIndexActionInsufficientPrivileges() throws Exception {
.endObject().endObject().endObject();
builder.endObject();

indexWatch("my_watch", builder);
indexWatch(watchId, builder);
}

ObjectPath objectPath = getWatchHistoryEntry("my_watch", "executed");
ObjectPath objectPath = getWatchHistoryEntry(watchId, "executed");
boolean conditionMet = objectPath.evaluate("hits.hits.0._source.result.condition.met");
assertThat(conditionMet, is(true));

Expand All @@ -293,7 +294,7 @@ public void testIndexActionInsufficientPrivileges() throws Exception {
private void indexWatch(String watchId, XContentBuilder builder) throws Exception {
StringEntity entity = new StringEntity(Strings.toString(builder), ContentType.APPLICATION_JSON);

Response response = client().performRequest("PUT", "_xpack/watcher/watch/my_watch", Collections.emptyMap(), entity);
Response response = client().performRequest("PUT", "_xpack/watcher/watch/" + watchId, Collections.emptyMap(), entity);
assertOK(response);
Map<String, Object> responseMap = entityAsMap(response);
assertThat(responseMap, hasEntry("_id", watchId));
Expand Down

0 comments on commit 1839454

Please sign in to comment.