Skip to content

Commit 4dc0c62

Browse files
authored
Merge branch 'staging' into feature/NU-2009
2 parents 7b05fa6 + b22e00b commit 4dc0c62

File tree

48 files changed

+2886
-1616
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+2886
-1616
lines changed

designer/client/src/actions/actionTypes.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ export type ActionTypes =
2121
| "EDIT_LABELS"
2222
| "SHOW_METRICS"
2323
| "UPDATE_TEST_CAPABILITIES"
24-
| "UPDATE_TEST_FORM_PARAMETERS"
2524
| "UPDATE_TEST_TYPE"
2625
| "DISPLAY_PROCESS"
2726
| "GET_SCENARIO_ACTIVITIES"

designer/client/src/actions/nk/adhocTesting.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
import HttpService, { SourceWithParametersTest } from "../../http/HttpService";
2-
import { Expression, NodeValidationError, ScenarioGraph, TypingResult, VariableTypes } from "../../types";
3-
41
import { debounce } from "lodash";
52

3+
import type { SourceWithParametersTest } from "../../http/HttpService";
4+
import HttpService from "../../http/HttpService";
5+
import type { Expression, NodeValidationError, ScenarioGraph, TypingResult, VariableTypes } from "../../types";
6+
67
export interface GenericValidationData {
78
validationErrors: NodeValidationError[];
89
validationPerformed: boolean;
@@ -20,7 +21,10 @@ export interface GenericValidationRequest {
2021
}
2122

2223
export interface TestAdhocValidationRequest {
23-
sourceParameters: SourceWithParametersTest;
24+
testData: {
25+
type: string;
26+
sourceParameters?: SourceWithParametersTest;
27+
};
2428
scenarioGraph: ScenarioGraph;
2529
}
2630

designer/client/src/actions/nk/displayTestResults.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ export function testScenarioWithGeneratedData(testSampleSize: string, processNam
4242
});
4343
dispatch({ type: "TEST_RESULTS_LOADING" });
4444

45-
HttpService.testScenarioWithGeneratedData(processName, testSampleSize, scenarioGraph)
45+
HttpService.testScenarioWithGeneratedData(processName, +testSampleSize, scenarioGraph)
4646
.then((response) => dispatch(displayTestResults(response.data)))
4747
.catch(() => {
4848
dispatch({ type: "LOADING_FAILED" });

designer/client/src/actions/nk/process.ts

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,16 +50,6 @@ export function loadProcessState(processName: ProcessName, processVersionId: num
5050
);
5151
}
5252

53-
export function fetchTestFormParameters(processName: ProcessName, scenarioGraph: ScenarioGraph) {
54-
return (dispatch) =>
55-
HttpService.getTestFormParameters(processName, scenarioGraph).then(({ data }) => {
56-
dispatch({
57-
type: "UPDATE_TEST_FORM_PARAMETERS",
58-
testFormParameters: data,
59-
});
60-
});
61-
}
62-
6353
export function displayTestCapabilities(processName: ProcessName, scenarioGraph: ScenarioGraph) {
6454
return (dispatch) =>
6555
HttpService.getTestCapabilities(processName, scenarioGraph).then(({ data }) =>

designer/client/src/common/TestResultUtils.ts

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
/* eslint-disable i18next/no-literal-string */
22
import { head, uniq, values } from "lodash";
3-
import { NodeId, UIParameter } from "../types";
3+
4+
import type { NodeId, UIParameter } from "../types";
45

56
export interface Variable {
67
original?: string;
@@ -29,9 +30,22 @@ interface ExternalInvocationResult {
2930
}
3031

3132
export interface TestCapabilities {
32-
canBeTested: boolean;
33-
canGenerateTestData: boolean;
34-
canTestWithForm: boolean;
33+
testWithParameters: TestWithParametersCapability;
34+
testWithGeneratedData: GenericCapability;
35+
}
36+
37+
export interface TestWithParametersCapability {
38+
status: TestCapabilityStatus;
39+
sourceParameters?: TestFormParameters[];
40+
}
41+
42+
export interface GenericCapability {
43+
status: TestCapabilityStatus;
44+
}
45+
46+
export enum TestCapabilityStatus {
47+
AVAILABLE = "AVAILABLE",
48+
NOT_AVAILABLE = "NOT_AVAILABLE",
3549
}
3650

3751
export interface TestFormParameters {
Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
1+
import { useEffect, useMemo } from "react";
12
import { useDispatch, useSelector } from "react-redux";
3+
4+
import { displayTestCapabilities } from "../../../actions/nk";
5+
import { TestCapabilityStatus } from "../../../common/TestResultUtils";
26
import {
37
getProcessName,
48
getScenarioGraph,
59
getTestCapabilities,
610
isLatestProcessVersion,
711
isProcessRenamed,
812
} from "../../../reducers/selectors/graph";
9-
import { useEffect, useMemo } from "react";
10-
import { displayTestCapabilities, fetchTestFormParameters } from "../../../actions/nk";
1113

1214
// TODO: fetch TestCapabilities and TestFormParameters in chain to avoid stupid errors
1315
export function useAdhocTestingAvailability(disabled: boolean) {
@@ -20,18 +22,13 @@ export function useAdhocTestingAvailability(disabled: boolean) {
2022
const scenarioGraph = useSelector(getScenarioGraph);
2123

2224
const isAvailable = useMemo(() => {
23-
return !disabled && processIsLatestVersion && testCapabilities?.canTestWithForm;
24-
}, [disabled, processIsLatestVersion, testCapabilities?.canTestWithForm]);
25+
return !disabled && processIsLatestVersion && testCapabilities?.testWithParameters.status == TestCapabilityStatus.AVAILABLE;
26+
}, [disabled, processIsLatestVersion, testCapabilities?.testWithParameters.status]);
2527

2628
useEffect(() => {
2729
if (isRenamed) return;
2830
dispatch(displayTestCapabilities(scenarioName, scenarioGraph));
2931
}, [dispatch, isRenamed, scenarioGraph, scenarioName]);
3032

31-
useEffect(() => {
32-
if (isRenamed || !isAvailable) return;
33-
dispatch(fetchTestFormParameters(scenarioName, scenarioGraph));
34-
}, [dispatch, isRenamed, scenarioName, scenarioGraph, isAvailable]);
35-
3633
return isAvailable;
3734
}

designer/client/src/components/modals/Testing/TestingForm.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import React, { useCallback, useMemo, useState } from "react";
55
import { Trans, useTranslation } from "react-i18next";
66
import { useDispatch, useSelector } from "react-redux";
77

8+
import { TestCapabilityStatus } from "../../../common/TestResultUtils";
89
import { getTestCapabilities, getTestType } from "../../../reducers/selectors/graph";
910
import type { WindowKind } from "../../../windowManager";
1011
import { CustomRadio } from "../../customRadio/CustomRadio";
@@ -35,9 +36,12 @@ export function TestingForm({ testingData, closeDialog }: TestingFormProps): JSX
3536
const dispatch = useDispatch();
3637

3738
const testCapabilities = useSelector(getTestCapabilities);
38-
const testWithParametersIsAvailable = useMemo(() => testCapabilities.canTestWithForm, [testCapabilities]);
39+
const testWithParametersIsAvailable = useMemo(
40+
() => testCapabilities.testWithParameters.status == TestCapabilityStatus.AVAILABLE,
41+
[testCapabilities],
42+
);
3943
const testWithGeneratedDataIsAvailable = useMemo(
40-
() => testCapabilities.canGenerateTestData && testCapabilities.canBeTested,
44+
() => testCapabilities.testWithGeneratedData.status == TestCapabilityStatus.AVAILABLE,
4145
[testCapabilities],
4246
);
4347

designer/client/src/components/toolbars/test/buttons/FromFileButton.tsx

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
import React from "react";
22
import { useTranslation } from "react-i18next";
33
import { useDispatch, useSelector } from "react-redux";
4-
import { CapabilitiesToolbarButton } from "../../../toolbarComponents/CapabilitiesToolbarButton";
5-
import { getProcessName, getScenarioGraph, getTestCapabilities } from "../../../../reducers/selectors/graph";
6-
import Icon from "../../../../assets/img/toolbarButtons/from-file.svg";
7-
import { ToolbarButtonProps } from "../../types";
4+
85
import { testProcessFromFile } from "../../../../actions/nk/displayTestResults";
6+
import Icon from "../../../../assets/img/toolbarButtons/from-file.svg";
7+
import { TestCapabilityStatus } from "../../../../common/TestResultUtils";
8+
import { getProcessName, getScenarioGraph, getTestCapabilities } from "../../../../reducers/selectors/graph";
9+
import { CapabilitiesToolbarButton } from "../../../toolbarComponents/CapabilitiesToolbarButton";
10+
import type { ToolbarButtonProps } from "../../types";
911

1012
function FromFileButton(props: ToolbarButtonProps) {
1113
const dispatch = useDispatch();
@@ -15,7 +17,7 @@ function FromFileButton(props: ToolbarButtonProps) {
1517
const { disabled, type } = props;
1618
const { t } = useTranslation();
1719

18-
const available = !disabled && testCapabilities && testCapabilities.canBeTested;
20+
const available = !disabled && testCapabilities && testCapabilities.testWithGeneratedData.status == TestCapabilityStatus.AVAILABLE;
1921

2022
return (
2123
<CapabilitiesToolbarButton

designer/client/src/components/toolbars/test/buttons/GenerateAndTestButton.tsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
import React from "react";
22
import { useTranslation } from "react-i18next";
33
import { useSelector } from "react-redux";
4+
45
import Icon from "../../../../assets/img/toolbarButtons/generate-and-test.svg";
6+
import { TestCapabilityStatus } from "../../../../common/TestResultUtils";
57
import { getTestCapabilities, isLatestProcessVersion } from "../../../../reducers/selectors/graph";
68
import { useWindows, WindowKind } from "../../../../windowManager";
79
import { CapabilitiesToolbarButton } from "../../../toolbarComponents/CapabilitiesToolbarButton";
8-
import { ToolbarButtonProps } from "../../types";
10+
import type { ToolbarButtonProps } from "../../types";
911

1012
type Props = ToolbarButtonProps;
1113

@@ -14,7 +16,11 @@ function GenerateAndTestButton(props: Props) {
1416
const { t } = useTranslation();
1517
const testCapabilities = useSelector(getTestCapabilities);
1618
const processIsLatestVersion = useSelector(isLatestProcessVersion);
17-
const available = !disabled && processIsLatestVersion && testCapabilities && testCapabilities.canGenerateTestData;
19+
const available =
20+
!disabled &&
21+
processIsLatestVersion &&
22+
testCapabilities &&
23+
testCapabilities.testWithGeneratedData.status == TestCapabilityStatus.AVAILABLE;
1824
const { open } = useWindows();
1925

2026
return (

designer/client/src/components/toolbars/test/buttons/GenerateButton.tsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
import React from "react";
22
import { useTranslation } from "react-i18next";
33
import { useSelector } from "react-redux";
4+
45
import Icon from "../../../../assets/img/toolbarButtons/generate.svg";
6+
import { TestCapabilityStatus } from "../../../../common/TestResultUtils";
57
import { getTestCapabilities, isLatestProcessVersion } from "../../../../reducers/selectors/graph";
68
import { useWindows, WindowKind } from "../../../../windowManager";
79
import { CapabilitiesToolbarButton } from "../../../toolbarComponents/CapabilitiesToolbarButton";
8-
import { ToolbarButtonProps } from "../../types";
10+
import type { ToolbarButtonProps } from "../../types";
911

1012
type Props = ToolbarButtonProps;
1113

@@ -14,7 +16,11 @@ function GenerateButton(props: Props) {
1416
const { t } = useTranslation();
1517
const testCapabilities = useSelector(getTestCapabilities);
1618
const processIsLatestVersion = useSelector(isLatestProcessVersion);
17-
const available = !disabled && processIsLatestVersion && testCapabilities && testCapabilities.canGenerateTestData;
19+
const available =
20+
!disabled &&
21+
processIsLatestVersion &&
22+
testCapabilities &&
23+
testCapabilities.testWithGeneratedData.status == TestCapabilityStatus.AVAILABLE;
1824
const { open } = useWindows();
1925

2026
return (

0 commit comments

Comments
 (0)