mirror of
https://github.com/kestra-io/kestra.git
synced 2025-12-25 02:14:38 -05:00
refactor(tests): move test coverage to InputsTest instead of SubflowRunnerTest
- It is related to serializing inputs at resolving phase only - Added Inputs as Java Objects using yml should be serialized/deserialized properly to give the same structure at allValidInputs() test
This commit is contained in:
committed by
Loïc Mathieu
parent
a74ebd5cd6
commit
55d0880ed3
@@ -81,11 +81,28 @@ public class InputsTest {
|
|||||||
.put("validatedTime", "11:27:49")
|
.put("validatedTime", "11:27:49")
|
||||||
.put("secret", "secret")
|
.put("secret", "secret")
|
||||||
.put("array", "[1, 2, 3]")
|
.put("array", "[1, 2, 3]")
|
||||||
.put("yaml", """
|
.put("yaml1", """
|
||||||
some: property
|
some: property
|
||||||
alist:
|
alist:
|
||||||
- of
|
- of
|
||||||
- values""")
|
- values""")
|
||||||
|
.put(
|
||||||
|
"yaml2",
|
||||||
|
Map.of(
|
||||||
|
"people",
|
||||||
|
Map.of(
|
||||||
|
"name1", List.of(
|
||||||
|
Map.of("first1", "Mustafa",
|
||||||
|
"last1", "Tarek")
|
||||||
|
),
|
||||||
|
"name2", List.of(
|
||||||
|
Map.of("first2", "Ahmed",
|
||||||
|
"last2", "Tarek")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@@ -170,9 +187,24 @@ public class InputsTest {
|
|||||||
assertThat(typeds.get("array")).isInstanceOf(List.class);
|
assertThat(typeds.get("array")).isInstanceOf(List.class);
|
||||||
assertThat((List<Integer>) typeds.get("array")).hasSize(3);
|
assertThat((List<Integer>) typeds.get("array")).hasSize(3);
|
||||||
assertThat((List<Integer>) typeds.get("array")).isEqualTo(List.of(1, 2, 3));
|
assertThat((List<Integer>) typeds.get("array")).isEqualTo(List.of(1, 2, 3));
|
||||||
assertThat(typeds.get("yaml")).isEqualTo(Map.of(
|
assertThat(typeds.get("yaml1")).isEqualTo(Map.of(
|
||||||
"some", "property",
|
"some", "property",
|
||||||
"alist", List.of("of", "values")));
|
"alist", List.of("of", "values")));
|
||||||
|
assertThat(typeds.get("yaml2")).isEqualTo(Map.of(
|
||||||
|
"people",
|
||||||
|
Map.of(
|
||||||
|
"name1", List.of(
|
||||||
|
Map.of("first1", "Mustafa",
|
||||||
|
"last1", "Tarek")
|
||||||
|
),
|
||||||
|
"name2", List.of(
|
||||||
|
Map.of("first2", "Ahmed",
|
||||||
|
"last2", "Tarek")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
));
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
@@ -65,26 +65,6 @@ class SubflowRunnerTest {
|
|||||||
new Label("parentFlowLabel2", "value2") // inherited from the parent flow
|
new Label("parentFlowLabel2", "value2") // inherited from the parent flow
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@Test
|
|
||||||
@LoadFlows({"flows/valids/subflow-serialized-yml-input-child.yaml", "flows/valids/subflow-serialized-yml-input-parent.yaml"})
|
|
||||||
void subflowInputTypeYmlSerialization() throws QueueException, TimeoutException {
|
|
||||||
Execution parentExecution = runnerUtils.runOne(MAIN_TENANT, "io.kestra.tests", "subflow-serialized-yml-input-parent");
|
|
||||||
String childExecutionId = (String) parentExecution.findTaskRunsByTaskId("hello1").getFirst().getOutputs().get("executionId");
|
|
||||||
|
|
||||||
assertThat(childExecutionId).isNotBlank();
|
|
||||||
|
|
||||||
Execution childExecution = executionRepository.findById(MAIN_TENANT, childExecutionId).orElseThrow();
|
|
||||||
|
|
||||||
assertThat(childExecution.getTaskRunList()).hasSize(2);
|
|
||||||
|
|
||||||
Map<?,?> outputs1 = (Map<?,?>) childExecution.outputs().get("hello2");
|
|
||||||
assertThat(outputs1.get("value"))
|
|
||||||
.isEqualTo("[{\"name1\":[{\"first1\":\"Mustafa\"},{\"last1\":\"Tarek\"}]},{\"name2\":[{\"first2\":\"Ahmed\"},{\"last2\":\"Tarek\"}]}]");
|
|
||||||
|
|
||||||
Map<?,?> outputs2 = (Map<?,?>) childExecution.outputs().get("hello3");
|
|
||||||
assertThat(outputs2.get("value")).isEqualTo("dummy");
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@LoadFlows({"flows/valids/subflow-parent-no-wait.yaml", "flows/valids/subflow-child-with-output.yaml"})
|
@LoadFlows({"flows/valids/subflow-parent-no-wait.yaml", "flows/valids/subflow-child-with-output.yaml"})
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ inputs:
|
|||||||
- name: array
|
- name: array
|
||||||
type: ARRAY
|
type: ARRAY
|
||||||
itemType: INT
|
itemType: INT
|
||||||
- name: yaml
|
- name: yaml1
|
||||||
type: YAML
|
type: YAML
|
||||||
defaults:
|
defaults:
|
||||||
property: something
|
property: something
|
||||||
@@ -104,6 +104,15 @@ inputs:
|
|||||||
value: value1
|
value: value1
|
||||||
- key: key2
|
- key: key2
|
||||||
value: value2
|
value: value2
|
||||||
|
- name: yaml2
|
||||||
|
type: YAML
|
||||||
|
defaults:
|
||||||
|
property: something
|
||||||
|
list:
|
||||||
|
- key: key1
|
||||||
|
value: value1
|
||||||
|
- key: key2
|
||||||
|
value: value2
|
||||||
# required true and an empty default value will only work if we correctly serialize default values which is what this input is about to test.
|
# required true and an empty default value will only work if we correctly serialize default values which is what this input is about to test.
|
||||||
- name: empty
|
- name: empty
|
||||||
type: STRING
|
type: STRING
|
||||||
@@ -146,6 +155,9 @@ tasks:
|
|||||||
- id: jsonOutput
|
- id: jsonOutput
|
||||||
type: io.kestra.plugin.core.debug.Return
|
type: io.kestra.plugin.core.debug.Return
|
||||||
format: "{{outputs.json.value}}"
|
format: "{{outputs.json.value}}"
|
||||||
- id: yamlOutput
|
- id: yamlOutput1
|
||||||
type: io.kestra.plugin.core.debug.Return
|
type: io.kestra.plugin.core.debug.Return
|
||||||
format: "{{inputs.yaml}}"
|
format: "{{inputs.yaml1}}"
|
||||||
|
- id: yamlOutput2
|
||||||
|
type: io.kestra.plugin.core.debug.Return
|
||||||
|
format: "{{inputs.yaml2}}"
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
id: subflow-serialized-yml-input-child
|
|
||||||
namespace: io.kestra.tests
|
|
||||||
|
|
||||||
inputs:
|
|
||||||
- id: people
|
|
||||||
type: YAML
|
|
||||||
- id: basic
|
|
||||||
type: YAML
|
|
||||||
|
|
||||||
tasks:
|
|
||||||
- id: hello2
|
|
||||||
type: io.kestra.plugin.core.debug.Return
|
|
||||||
format: "{{ inputs.people }}"
|
|
||||||
- id: hello3
|
|
||||||
type: io.kestra.plugin.core.debug.Return
|
|
||||||
format: "{{ inputs.basic }}"
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
id: subflow-serialized-yml-input-parent
|
|
||||||
namespace: io.kestra.tests
|
|
||||||
|
|
||||||
tasks:
|
|
||||||
- id: hello1
|
|
||||||
type: io.kestra.plugin.core.flow.Subflow
|
|
||||||
namespace: io.kestra.tests
|
|
||||||
flowId: subflow-serialized-yml-input-child
|
|
||||||
inputs:
|
|
||||||
people:
|
|
||||||
- name1:
|
|
||||||
- first1: "Mustafa"
|
|
||||||
- last1: "Tarek"
|
|
||||||
- name2:
|
|
||||||
- first2: "Ahmed"
|
|
||||||
- last2: "Tarek"
|
|
||||||
basic: dummy
|
|
||||||
Reference in New Issue
Block a user