Skip to content

Commit

Permalink
tests: add runner class to run sanity checks flows
Browse files Browse the repository at this point in the history
  • Loading branch information
mgabelle committed Jan 29, 2025
1 parent 4258306 commit 55a6fc9
Show file tree
Hide file tree
Showing 7 changed files with 118 additions and 99 deletions.
116 changes: 116 additions & 0 deletions core/src/test/java/io/kestra/core/tasks/test/SanityCheckTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
package io.kestra.core.tasks.test;

import io.kestra.core.junit.annotations.ExecuteFlow;
import io.kestra.core.junit.annotations.KestraTest;
import io.kestra.core.models.executions.Execution;
import io.kestra.core.models.executions.TaskRun;
import io.kestra.core.models.flows.State;
import org.junit.jupiter.api.Test;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.hasSize;
import static org.hamcrest.Matchers.is;

@KestraTest(startRunner = true)
class SanityCheckTest {
@Test
@ExecuteFlow("sanity-checks/qa.fail.yaml")
void qaFail(Execution execution) {
assertThat(execution.getTaskRunList(), hasSize(1));
assertThat(execution.getState().getCurrent(), is(State.Type.SUCCESS));
}

@Test
@ExecuteFlow("sanity-checks/qa.fetch.yaml")
void qaFetch(Execution execution) {
assertThat(execution.getTaskRunList(), hasSize(5));
assertThat(execution.getState().getCurrent(), is(State.Type.SUCCESS));
}

@Test
@ExecuteFlow("sanity-checks/qa.if.yaml")
void qaIf(Execution execution) {
assertThat(execution.getTaskRunList(), hasSize(8));
assertThat(execution.getState().getCurrent(), is(State.Type.SUCCESS));
}

@Test
@ExecuteFlow("sanity-checks/qa.kv.yaml")
void qaKv(Execution execution) {
assertThat(execution.getTaskRunList(), hasSize(6));
assertThat(execution.getState().getCurrent(), is(State.Type.SUCCESS));
}

@Test
@ExecuteFlow("sanity-checks/qa.labels.yaml")
void qaLabels(Execution execution) {
assertThat(execution.getTaskRunList(), hasSize(2));
assertThat(execution.getState().getCurrent(), is(State.Type.SUCCESS));
}

@Test
@ExecuteFlow("sanity-checks/qa.namespace_files.yaml")
void qaNamespaceFiles(Execution execution) {
assertThat(execution.getTaskRunList(), hasSize(8));
assertThat(execution.getState().getCurrent(), is(State.Type.SUCCESS));
}

@Test
@ExecuteFlow("sanity-checks/qa.parallel.yaml")
void qaParallel(Execution execution) {
assertThat(execution.getTaskRunList(), hasSize(4));
assertThat(execution.getState().getCurrent(), is(State.Type.SUCCESS));
}

@Test
@ExecuteFlow("sanity-checks/qa.pause.yaml")
void qaPause(Execution execution) {
assertThat(execution.getTaskRunList(), hasSize(1));
assertThat(execution.getState().getCurrent(), is(State.Type.SUCCESS));
}

@Test
@ExecuteFlow("sanity-checks/qa.purge_current_execution_files.yaml")
void qaPurgeExecutionFiles(Execution execution) {
assertThat(execution.getTaskRunList(), hasSize(2));
assertThat(execution.getState().getCurrent(), is(State.Type.SUCCESS));
}

@Test
@ExecuteFlow("sanity-checks/qa.return.yaml")
void qaReturn(Execution execution) {
assertThat(execution.getTaskRunList(), hasSize(2));
assertThat(execution.getState().getCurrent(), is(State.Type.SUCCESS));

TaskRun taskRun = execution.findTaskRunsByTaskId("return_value").getFirst();
assertThat(taskRun.getOutputs().get("value"), is("some string with pebble test"));
}

@Test
@ExecuteFlow("sanity-checks/qa.sequential.yaml")
void qaSequential(Execution execution) {
assertThat(execution.getTaskRunList(), hasSize(5));
assertThat(execution.getState().getCurrent(), is(State.Type.SUCCESS));
}

@Test
@ExecuteFlow("sanity-checks/qa.sleep.yaml")
void qaSleep(Execution execution) {
assertThat(execution.getTaskRunList(), hasSize(4));
assertThat(execution.getState().getCurrent(), is(State.Type.SUCCESS));

Check failure on line 100 in core/src/test/java/io/kestra/core/tasks/test/SanityCheckTest.java

View workflow job for this annotation

GitHub Actions / JUnit Test Report

SanityCheckTest.qaSleep(Execution)

java.lang.AssertionError: Expected: is <SUCCESS> but: was <FAILED>
Raw output
java.lang.AssertionError: 
Expected: is <SUCCESS>
     but: was <FAILED>
	at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
	at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:6)
	at io.kestra.core.tasks.test.SanityCheckTest.qaSleep(SanityCheckTest.java:100)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at io.micronaut.test.extensions.junit5.MicronautJunit5Extension$2.proceed(MicronautJunit5Extension.java:142)
	at io.micronaut.test.extensions.AbstractMicronautExtension.interceptEach(AbstractMicronautExtension.java:162)
	at io.micronaut.test.extensions.AbstractMicronautExtension.interceptTest(AbstractMicronautExtension.java:119)
	at io.micronaut.test.extensions.junit5.MicronautJunit5Extension.interceptTestMethod(MicronautJunit5Extension.java:129)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
}

@Test
@ExecuteFlow("sanity-checks/qa.switch.yaml")
void qaSwitch(Execution execution) {
assertThat(execution.getTaskRunList(), hasSize(3));
assertThat(execution.getState().getCurrent(), is(State.Type.SUCCESS));
}

@Test
@ExecuteFlow("sanity-checks/qa.write.yaml")
void qaWrite(Execution execution) {
assertThat(execution.getTaskRunList(), hasSize(3));
assertThat(execution.getState().getCurrent(), is(State.Type.SUCCESS));
}
}
4 changes: 2 additions & 2 deletions core/src/test/resources/sanity-checks/qa.fetch.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,5 @@ tasks:
- id: assert
type: io.kestra.plugin.core.execution.Assert
conditions:
- "{{ outputs.fetch_info.size == 1 }}"
- "{{ outputs.fetch_warning.size == 2 }}"
- "{{ outputs.fetch_info.size == 2 }}"
- "{{ outputs.fetch_warning.size == 1 }}"
25 changes: 0 additions & 25 deletions core/src/test/resources/sanity-checks/qa.for_each_item.yaml

This file was deleted.

This file was deleted.

15 changes: 0 additions & 15 deletions core/src/test/resources/sanity-checks/qa.for_each_subflow.yaml

This file was deleted.

29 changes: 0 additions & 29 deletions core/src/test/resources/sanity-checks/qa.log.yaml

This file was deleted.

10 changes: 0 additions & 10 deletions core/src/test/resources/sanity-checks/qa.subflow.yaml

This file was deleted.

0 comments on commit 55a6fc9

Please sign in to comment.