Improved Test coverage for Service Component
Issue-ID: POLICY-3351
Change-Id: I7d710a3fbd91d3c62fe29c4748244b480e7798e6
Signed-off-by: Lathish <lathishbabu.ganesan@est.tech>
diff --git a/gui-clamp/ui-react/src/api/ControlLoopService.test.js b/gui-clamp/ui-react/src/api/ControlLoopService.test.js
new file mode 100644
index 0000000..a460225
--- /dev/null
+++ b/gui-clamp/ui-react/src/api/ControlLoopService.test.js
@@ -0,0 +1,50 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2022 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+import ControlLoopService from "./ControlLoopService";
+
+describe("Verify GetControlLoopInstantiation", () => {
+ let response;
+ let name = "name";
+ let template = "template";
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ status: "Success",
+ ok: true,
+ })
+ );
+ response = ControlLoopService.getControlLoopInstantiation(name, template);
+ it("Test getControlLoopInstantiation", () => {
+ expect(response.status).toEqual(response.status);
+ });
+});
+describe("Verify DeleteInstantiation", () => {
+ let response;
+ let name = "name";
+ let version = "version";
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ status: "Success",
+ ok: true,
+ })
+ );
+ response = ControlLoopService.deleteInstantiation(name, version);
+ it("Test deleteInstantiation", () => {
+ expect(response.status).toEqual(response.status);
+ });
+});
diff --git a/gui-clamp/ui-react/src/api/LoopActionService.test.js b/gui-clamp/ui-react/src/api/LoopActionService.test.js
new file mode 100644
index 0000000..4253c8c
--- /dev/null
+++ b/gui-clamp/ui-react/src/api/LoopActionService.test.js
@@ -0,0 +1,58 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2022 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+import LoopActionService from "./LoopActionService";
+
+describe("Verify PerformAction", () => {
+ let response;
+ let cl_name = "name";
+ let uiAction = "action";
+ describe("Response Ok Check", () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ status: "Success",
+ ok: true,
+ })
+ );
+ beforeEach(async () => {
+ response = await LoopActionService.performAction(cl_name, uiAction);
+ });
+ it("Test performAction returns correct response status", () => {
+ expect(response.ok).toEqual(true);
+ });
+ });
+});
+describe("Verify RefreshStatus", () => {
+ let response;
+ let cl_name = "name";
+ describe("Response Ok Check", () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ json: () => Promise.resolve({ name: "name" }),
+ status: "Success",
+ ok: true,
+ })
+ );
+ beforeEach(async () => {
+ response = await LoopActionService.refreshStatus(cl_name);
+ });
+ it("Test refreshStatus returns correct response", () => {
+ expect(response).toEqual({ name: "name" });
+ });
+ });
+});
diff --git a/gui-clamp/ui-react/src/api/LoopService.test.js b/gui-clamp/ui-react/src/api/LoopService.test.js
new file mode 100644
index 0000000..bd68582
--- /dev/null
+++ b/gui-clamp/ui-react/src/api/LoopService.test.js
@@ -0,0 +1,443 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2022 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+import LoopService from "./LoopService";
+
+describe("Verify GetLoopNames", () => {
+ let response;
+ let loopNameJson;
+ describe("Non-Empty Json Check", () => {
+ loopNameJson = { name: "loop1" };
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ json: () => Promise.resolve({ name: "loop1" }),
+ status: "Success",
+ ok: true,
+ })
+ );
+ beforeEach(async () => {
+ response = await LoopService.getLoopNames();
+ });
+ it("Test getLoopNames returns correct json", () => {
+ expect(response).toEqual(loopNameJson);
+ });
+ });
+ describe("Empty Json Check", () => {
+ loopNameJson = {};
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ json: () => Promise.resolve({}),
+ status: "Failed",
+ ok: false,
+ })
+ );
+ beforeEach(async () => {
+ response = await LoopService.getLoopNames();
+ });
+ it("Test getLoopNames returns empty json", () => {
+ expect(response).toEqual(loopNameJson);
+ });
+ });
+ describe("Error during API call", () => {
+ loopNameJson = {};
+ beforeEach(async () => {
+ response = await LoopService.getLoopNames();
+ });
+ it("Test getLoopNames returns empty json", () => {
+ expect(response).toEqual(loopNameJson);
+ });
+ });
+});
+
+describe("Verify CreateLoop", () => {
+ let response;
+ let loopNameJson;
+ let loopName = "loop1";
+ let templateName = "template1";
+ describe("Non-Empty Json Check", () => {
+ loopNameJson = { name: "loop1" };
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ json: () => Promise.resolve({ name: "loop1" }),
+ status: "Success",
+ ok: true,
+ })
+ );
+ response = await LoopService.createLoop(loopName, templateName);
+ });
+
+ it("Test createLoop returns correct json", () => {
+ expect(response).toEqual(loopNameJson);
+ });
+ });
+ describe("Error during API call", () => {
+ let emptyResponse = "";
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ json: () => Promise.resolve(""),
+ })
+ );
+ response = await LoopService.createLoop("", "");
+ });
+ it("Test createLoop returns empty", () => {
+ expect(response).toEqual(emptyResponse);
+ });
+ });
+});
+describe("Verify GetLoop", () => {
+ let actualResponse;
+ let expected;
+ let name = "loop1";
+ describe("Non-Empty Json Check", () => {
+ beforeEach(async () => {
+ expected = { name: "loop1" };
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ json: () => Promise.resolve({ name: "loop1" }),
+ status: "Success",
+ ok: true,
+ })
+ );
+ actualResponse = await LoopService.getLoop(name);
+ });
+
+ it("Test getLoop returns correct json", () => {
+ expect(actualResponse).toEqual(expected);
+ });
+ });
+ describe("Error during API call", () => {
+ beforeEach(async () => {
+ expected = {};
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ json: () => Promise.resolve({}),
+ })
+ );
+ actualResponse = await LoopService.getLoop(name);
+ });
+ it("Test getLoop returns empty", () => {
+ expect(actualResponse).toEqual(expected);
+ });
+ });
+});
+describe("Verify SetMicroServiceProperties", () => {
+ let actualResponse;
+ let expected;
+ let name = "loop1";
+ let jsonData = {};
+ describe("Non-Empty Text Check", () => {
+ beforeEach(async () => {
+ expected = "data";
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ text: () => Promise.resolve("data"),
+ status: "Success",
+ ok: true,
+ })
+ );
+ actualResponse = await LoopService.setMicroServiceProperties(
+ name,
+ jsonData
+ );
+ });
+
+ it("Test setMicroServiceProperties returns correct text", () => {
+ expect(actualResponse).toEqual(expected);
+ });
+ });
+ describe("Error during API call", () => {
+ beforeEach(async () => {
+ expected = "";
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ json: () => Promise.resolve(""),
+ })
+ );
+ actualResponse = await LoopService.setMicroServiceProperties(
+ name,
+ jsonData
+ );
+ });
+ it("Test setMicroServiceProperties returns empty", () => {
+ expect(actualResponse).toEqual(expected);
+ });
+ });
+});
+describe("Verify SetOperationalPolicyProperties", () => {
+ let actualResponse;
+ let expected;
+ let name = "loop1";
+ let jsonData = {};
+ describe("Non-Empty Text Check", () => {
+ beforeEach(async () => {
+ expected = "data";
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ text: () => Promise.resolve("data"),
+ status: "Success",
+ ok: true,
+ })
+ );
+ actualResponse = await LoopService.setOperationalPolicyProperties(
+ name,
+ jsonData
+ );
+ });
+
+ it("Test setOperationalPolicyProperties returns correct text", () => {
+ expect(actualResponse).toEqual(expected);
+ });
+ });
+ describe("Error during API call", () => {
+ beforeEach(async () => {
+ expected = "";
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ json: () => Promise.resolve(""),
+ })
+ );
+ actualResponse = await LoopService.setOperationalPolicyProperties(
+ name,
+ jsonData
+ );
+ });
+ it("Test setOperationalPolicyProperties returns empty", () => {
+ expect(actualResponse).toEqual(expected);
+ });
+ });
+});
+describe("Verify UpdateGlobalProperties", () => {
+ let actualResponse;
+ let expected;
+ let name = "loop1";
+ let jsonData = {};
+ describe("Non-Empty Text Check", () => {
+ beforeEach(async () => {
+ expected = "data";
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ text: () => Promise.resolve("data"),
+ status: "Success",
+ ok: true,
+ })
+ );
+ actualResponse = await LoopService.updateGlobalProperties(name, jsonData);
+ });
+
+ it("Test updateGlobalProperties returns correct text", () => {
+ expect(actualResponse).toEqual(expected);
+ });
+ });
+ describe("Error during API call", () => {
+ beforeEach(async () => {
+ expected = "";
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ json: () => Promise.resolve(""),
+ })
+ );
+ actualResponse = await LoopService.updateGlobalProperties(name, jsonData);
+ });
+ it("Test updateGlobalProperties returns empty", () => {
+ expect(actualResponse).toEqual(expected);
+ });
+ });
+});
+describe("Verify RefreshOperationalPolicyJson", () => {
+ let actualResponse;
+ let expected;
+ let name = "loop1";
+ let policyName = "policy";
+ describe("Non-Empty Json Check", () => {
+ beforeEach(async () => {
+ expected = { name: "loop1" };
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ json: () => Promise.resolve({ name: "loop1" }),
+ status: "Success",
+ ok: true,
+ })
+ );
+ actualResponse = await LoopService.refreshOperationalPolicyJson(
+ name,
+ policyName
+ );
+ });
+
+ it("Test refreshOperationalPolicyJson returns correct json", () => {
+ expect(actualResponse).toEqual(expected);
+ });
+ });
+ describe("Error during API call", () => {
+ beforeEach(async () => {
+ expected = {};
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ json: () => Promise.resolve({}),
+ })
+ );
+ actualResponse = await LoopService.refreshOperationalPolicyJson(
+ name,
+ policyName
+ );
+ });
+ it("Test refreshOperationalPolicyJson returns empty", () => {
+ expect(actualResponse).toEqual(expected);
+ });
+ });
+});
+describe("Verify RefreshMicroServicePolicyJson", () => {
+ let actualResponse;
+ let expected;
+ let name = "loop1";
+ let policyName = "policy";
+ describe("Non-Empty Json Check", () => {
+ beforeEach(async () => {
+ expected = { name: "loop1" };
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ json: () => Promise.resolve({ name: "loop1" }),
+ status: "Success",
+ ok: true,
+ })
+ );
+ actualResponse = await LoopService.refreshMicroServicePolicyJson(
+ name,
+ policyName
+ );
+ });
+
+ it("Test refreshMicroServicePolicyJson returns correct json", () => {
+ expect(actualResponse).toEqual(expected);
+ });
+ });
+ describe("Error during API call", () => {
+ beforeEach(async () => {
+ expected = {};
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ json: () => Promise.resolve({}),
+ })
+ );
+ actualResponse = await LoopService.refreshMicroServicePolicyJson(
+ name,
+ policyName
+ );
+ });
+ it("Test refreshMicroServicePolicyJson returns empty", () => {
+ expect(actualResponse).toEqual(expected);
+ });
+ });
+});
+describe("Verify AddOperationalPolicyType", () => {
+ let actualResponse;
+ let expected;
+ let name = "loop1";
+ let type = "type";
+ let version = "version";
+ describe("Non-Empty Json Check", () => {
+ beforeEach(async () => {
+ expected = { name: "loop1" };
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ json: () => Promise.resolve({ name: "loop1" }),
+ status: "Success",
+ ok: true,
+ })
+ );
+ actualResponse = await LoopService.addOperationalPolicyType(
+ name,
+ type,
+ version
+ );
+ });
+
+ it("Test addOperationalPolicyType returns correct json", () => {
+ expect(actualResponse).toEqual(expected);
+ });
+ });
+ describe("Error during API call", () => {
+ beforeEach(async () => {
+ expected = new Error("error");
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ text: () => Promise.resolve(expected),
+ })
+ );
+ actualResponse = await LoopService.addOperationalPolicyType(
+ name,
+ type,
+ version
+ );
+ });
+ it("Test addOperationalPolicyType returns empty", () => {
+ expect(actualResponse).toEqual(expected);
+ });
+ });
+});
+describe("Verify RemoveOperationalPolicyType", () => {
+ let actualResponse;
+ let expected;
+ let name = "loop1";
+ let type = "type";
+ let version = "version";
+ let policyName = "policy";
+ describe("Non-Empty Json Check", () => {
+ beforeEach(async () => {
+ expected = { name: "loop1" };
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ json: () => Promise.resolve({ name: "loop1" }),
+ status: "Success",
+ ok: true,
+ })
+ );
+ actualResponse = await LoopService.removeOperationalPolicyType(
+ name,
+ type,
+ version,
+ policyName
+ );
+ });
+
+ it("Test removeOperationalPolicyType returns correct json", () => {
+ expect(actualResponse).toEqual(expected);
+ });
+ });
+ describe("Error during API call", () => {
+ beforeEach(async () => {
+ expected = {};
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ json: () => Promise.resolve({}),
+ })
+ );
+ actualResponse = await LoopService.removeOperationalPolicyType(
+ name,
+ type,
+ version,
+ policyName
+ );
+ });
+ it("Test removeOperationalPolicyType returns empty", () => {
+ expect(actualResponse).toEqual(expected);
+ });
+ });
+});
diff --git a/gui-clamp/ui-react/src/api/PolicyService.test.js b/gui-clamp/ui-react/src/api/PolicyService.test.js
new file mode 100644
index 0000000..3a491f9
--- /dev/null
+++ b/gui-clamp/ui-react/src/api/PolicyService.test.js
@@ -0,0 +1,238 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2022 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+import PolicyService from "./PolicyService";
+
+describe("Verify GetPoliciesList", () => {
+ let response;
+ let expectedResponse;
+ describe("Non-Empty Json Check", () => {
+ expectedResponse = { name: "loop1" };
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ json: () => Promise.resolve({ name: "loop1" }),
+ status: "Success",
+ ok: true,
+ })
+ );
+ response = await PolicyService.getPoliciesList();
+ });
+ it("Test getPoliciesList returns correct json", () => {
+ expect(response).toEqual(expectedResponse);
+ });
+ });
+ describe("Error Check", () => {
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ text: () => Promise.resolve({ name: "loop1" }),
+ status: "Failed",
+ ok: false,
+ })
+ );
+ response = PolicyService.getPoliciesList();
+ });
+ it("Test getPoliciesList returns correct error", () => {
+ expect(response).rejects.toEqual(
+ new Error("HTTP Failed," + { name: "loop1" })
+ );
+ });
+ });
+});
+describe("Verify CreateNewPolicy", () => {
+ let response;
+ let expectedResponse;
+ let modelType = "modelType";
+ let modelVersion = "modelVersion";
+ let policyName = "policyName";
+ let policyVersion = "policyVersion";
+ let json = {};
+ describe("Non-Empty Json Check", () => {
+ expectedResponse = { name: "loop1" };
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ text: () => Promise.resolve({ name: "loop1" }),
+ status: "Success",
+ ok: true,
+ })
+ );
+ response = await PolicyService.createNewPolicy(
+ modelType,
+ modelVersion,
+ policyName,
+ policyVersion,
+ json
+ );
+ });
+ it("Test createNewPolicy returns correct json", () => {
+ expect(response).toEqual(expectedResponse);
+ });
+ });
+ describe("Error Check", () => {
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ text: () => Promise.resolve({ name: "loop1" }),
+ status: "Failed",
+ ok: false,
+ })
+ );
+ response = PolicyService.createNewPolicy(
+ modelType,
+ modelVersion,
+ policyName,
+ policyVersion,
+ json
+ );
+ });
+ it("Test getPoliciesList returns correct error", () => {
+ expect(response).rejects.toEqual(
+ new Error("HTTP Failed," + { name: "loop1" })
+ );
+ });
+ });
+});
+describe("Verify DeletePolicy", () => {
+ let response;
+ let expectedResponse;
+ let modelType = "modelType";
+ let modelVersion = "modelVersion";
+ let policyName = "policyName";
+ let policyVersion = "policyVersion";
+ describe("Non-Empty Json Check", () => {
+ expectedResponse = { name: "loop1" };
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ text: () => Promise.resolve({ name: "loop1" }),
+ status: "Success",
+ ok: true,
+ })
+ );
+ response = await PolicyService.deletePolicy(
+ modelType,
+ modelVersion,
+ policyName,
+ policyVersion
+ );
+ });
+ it("Test deletePolicy returns correct json", () => {
+ expect(response).toEqual(expectedResponse);
+ });
+ });
+ describe("Error Check", () => {
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ text: () => Promise.resolve({ name: "loop1" }),
+ status: "Failed",
+ ok: false,
+ })
+ );
+ response = PolicyService.deletePolicy(
+ modelType,
+ modelVersion,
+ policyName,
+ policyVersion
+ );
+ });
+ it("Test deletePolicy returns correct error", () => {
+ expect(response).rejects.toEqual(
+ new Error("HTTP Failed," + { name: "loop1" })
+ );
+ });
+ });
+});
+describe("Verify UpdatePdpDeployment", () => {
+ let response;
+ let expectedResponse;
+ let operationList = "operation";
+ describe("Non-Empty Json Check", () => {
+ expectedResponse = { name: "loop1" };
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ text: () => Promise.resolve({ name: "loop1" }),
+ status: "Success",
+ ok: true,
+ })
+ );
+ response = await PolicyService.updatePdpDeployment(operationList);
+ });
+ it("Test updatePdpDeployment returns correct json", () => {
+ expect(response).toEqual(expectedResponse);
+ });
+ });
+ describe("Error Check", () => {
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ text: () => Promise.resolve({ name: "loop1" }),
+ status: "Failed",
+ ok: false,
+ })
+ );
+ response = PolicyService.updatePdpDeployment(operationList);
+ });
+ it("Test updatePdpDeployment returns correct error", () => {
+ expect(response).rejects.toEqual(
+ new Error("HTTP Failed," + { name: "loop1" })
+ );
+ });
+ });
+});
+describe("Verify SendNewPolicyModel", () => {
+ let response;
+ let expectedResponse;
+ let policyModel = "model";
+ describe("Non-Empty Json Check", () => {
+ expectedResponse = { name: "loop1" };
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ text: () => Promise.resolve({ name: "loop1" }),
+ status: "Success",
+ ok: true,
+ })
+ );
+ response = await PolicyService.sendNewPolicyModel(policyModel);
+ });
+ it("Test sendNewPolicyModel returns correct json", () => {
+ expect(response).toEqual(expectedResponse);
+ });
+ });
+ describe("Error Check", () => {
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ text: () => Promise.resolve({ name: "loop1" }),
+ status: "Failed",
+ ok: false,
+ })
+ );
+ response = PolicyService.sendNewPolicyModel(policyModel);
+ });
+ it("Test sendNewPolicyModel returns correct error", () => {
+ expect(response).rejects.toEqual(
+ new Error("HTTP Failed," + { name: "loop1" })
+ );
+ });
+ });
+});
diff --git a/gui-clamp/ui-react/src/api/PolicyToscaService.test.js b/gui-clamp/ui-react/src/api/PolicyToscaService.test.js
new file mode 100644
index 0000000..b6ed4bd
--- /dev/null
+++ b/gui-clamp/ui-react/src/api/PolicyToscaService.test.js
@@ -0,0 +1,138 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2022 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+import PolicyToscaService from "./PolicyToscaService";
+
+describe("Verify GetToscaPolicyModels", () => {
+ let response;
+ let expectedResponse;
+ describe("Non-Empty Json Check", () => {
+ expectedResponse = { name: "loop1" };
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ json: () => Promise.resolve({ name: "loop1" }),
+ status: "Success",
+ ok: true,
+ })
+ );
+ response = await PolicyToscaService.getToscaPolicyModels();
+ });
+ it("Test getToscaPolicyModels returns correct json", () => {
+ expect(response).toEqual(expectedResponse);
+ });
+ });
+ describe("Empty Response Check", () => {
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ status: "Failed",
+ ok: false,
+ })
+ );
+ response = await PolicyToscaService.getToscaPolicyModels();
+ });
+ it("Test getToscaPolicyModels returns empty response", () => {
+ expect(response).toEqual({});
+ });
+ });
+});
+describe("Verify GetToscaPolicyModelYaml", () => {
+ let response;
+ let expectedResponse;
+ let modelType = "type";
+ let version = "version";
+ describe("Non-Empty Json Check", () => {
+ expectedResponse = { name: "loop1" };
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ json: () => Promise.resolve({ name: "loop1" }),
+ status: "Success",
+ ok: true,
+ })
+ );
+ response = await PolicyToscaService.getToscaPolicyModelYaml(
+ modelType,
+ version
+ );
+ });
+ it("Test getToscaPolicyModelYaml returns correct json", () => {
+ expect(response).toEqual(expectedResponse);
+ });
+ });
+ describe("Empty Response Check", () => {
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ status: "Failed",
+ ok: false,
+ })
+ );
+ response = await PolicyToscaService.getToscaPolicyModelYaml(
+ modelType,
+ version
+ );
+ });
+ it("Test getToscaPolicyModelYaml returns empty response", () => {
+ expect(response).toEqual("");
+ });
+ });
+});
+describe("Verify GetToscaPolicyModel", () => {
+ let response;
+ let expectedResponse;
+ let modelType = "type";
+ let version = "version";
+ describe("Non-Empty Json Check", () => {
+ expectedResponse = { name: "loop1" };
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ json: () => Promise.resolve({ name: "loop1" }),
+ status: "Success",
+ ok: true,
+ })
+ );
+ response = await PolicyToscaService.getToscaPolicyModel(
+ modelType,
+ version
+ );
+ });
+ it("Test getToscaPolicyModel returns correct json", () => {
+ expect(response).toEqual(expectedResponse);
+ });
+ });
+ describe("Empty Response Check", () => {
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ status: "Failed",
+ ok: false,
+ })
+ );
+ response = await PolicyToscaService.getToscaPolicyModel(
+ modelType,
+ version
+ );
+ });
+ it("Test getToscaPolicyModel returns empty response", () => {
+ expect(response).toEqual({});
+ });
+ });
+});
diff --git a/gui-clamp/ui-react/src/api/TemplateService.test.js b/gui-clamp/ui-react/src/api/TemplateService.test.js
new file mode 100644
index 0000000..6899ef3
--- /dev/null
+++ b/gui-clamp/ui-react/src/api/TemplateService.test.js
@@ -0,0 +1,289 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2022 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+import TemplateService from "./TemplateService";
+
+describe("Verify GetLoopNames", () => {
+ let response;
+ let expectedResponse;
+ describe("Non-Empty Json Check", () => {
+ expectedResponse = { name: "loop1" };
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ json: () => Promise.resolve({ name: "loop1" }),
+ status: "Success",
+ ok: true,
+ })
+ );
+ response = await TemplateService.getLoopNames();
+ });
+ it("Test getLoopNames returns correct json", () => {
+ expect(response).toEqual(expectedResponse);
+ });
+ });
+ describe("Empty Response Check", () => {
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ status: "Failed",
+ ok: false,
+ })
+ );
+ response = await TemplateService.getLoopNames();
+ });
+ it("Test getLoopNames returns empty response", () => {
+ expect(response).toEqual({});
+ });
+ });
+});
+describe("Verify GetAllLoopTemplates", () => {
+ let response;
+ let expectedResponse;
+ describe("Non-Empty Json Check", () => {
+ expectedResponse = { name: "loop1" };
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ json: () => Promise.resolve({ name: "loop1" }),
+ status: "Success",
+ ok: true,
+ })
+ );
+ response = await TemplateService.getAllLoopTemplates();
+ });
+ it("Test getAllLoopTemplates returns correct json", () => {
+ expect(response).toEqual(expectedResponse);
+ });
+ });
+ describe("Empty Response Check", () => {
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ status: "Failed",
+ ok: false,
+ })
+ );
+ response = await TemplateService.getAllLoopTemplates();
+ });
+ it("Test getAllLoopTemplates returns empty response", () => {
+ expect(response).toEqual({});
+ });
+ });
+});
+describe("Verify GetDictionary", () => {
+ let response;
+ let expectedResponse;
+ describe("Non-Empty Json Check", () => {
+ expectedResponse = { name: "loop1" };
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ json: () => Promise.resolve({ name: "loop1" }),
+ status: "Success",
+ ok: true,
+ })
+ );
+ response = await TemplateService.getDictionary();
+ });
+ it("Test getDictionary returns correct json", () => {
+ expect(response).toEqual(expectedResponse);
+ });
+ });
+ describe("Empty Response Check", () => {
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ status: "Failed",
+ ok: false,
+ })
+ );
+ response = await TemplateService.getDictionary();
+ });
+ it("Test getDictionary returns empty response", () => {
+ expect(response).toEqual({});
+ });
+ });
+});
+describe("Verify GetDictionaryElements", () => {
+ let response;
+ let expectedResponse;
+ let dictionaryName = "name";
+ describe("Non-Empty Json Check", () => {
+ expectedResponse = { name: "loop1" };
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ json: () => Promise.resolve({ name: "loop1" }),
+ status: "Success",
+ ok: true,
+ })
+ );
+ response = await TemplateService.getDictionaryElements(dictionaryName);
+ });
+ it("Test getDictionaryElements returns correct json", () => {
+ expect(response).toEqual(expectedResponse);
+ });
+ });
+ describe("Empty Response Check", () => {
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ status: "Failed",
+ ok: false,
+ })
+ );
+ response = await TemplateService.getDictionaryElements(dictionaryName);
+ });
+ it("Test getDictionaryElements returns empty response", () => {
+ expect(response).toEqual({});
+ });
+ });
+});
+describe("Verify InsDictionary", () => {
+ let response;
+ let expectedResponse;
+ let json = "{}";
+ describe("Return Success Response Check", () => {
+ expectedResponse = "Success";
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ json: () => Promise.resolve({ name: "loop1" }),
+ status: "Success",
+ ok: true,
+ })
+ );
+ response = await TemplateService.insDictionary(json);
+ });
+ it("Test insDictionary returns correct json", () => {
+ expect(response).toEqual(expectedResponse);
+ });
+ });
+ describe("Return Failed Response Check", () => {
+ beforeEach(async () => {
+ expectedResponse = "Failed";
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ status: "Failed",
+ ok: false,
+ })
+ );
+ response = await TemplateService.insDictionary(json);
+ });
+ it("Test insDictionary returns empty response", () => {
+ expect(response).toEqual(expectedResponse);
+ });
+ });
+});
+describe("Verify InsDictionaryElements", () => {
+ let response;
+ let json = "{}";
+ describe("Return Success Response Check", () => {
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ status: "Success",
+ ok: true,
+ })
+ );
+ response = await TemplateService.insDictionaryElements(json);
+ });
+ it("Test insDictionaryElements returns success response", () => {
+ expect(response).toEqual("Success");
+ });
+ });
+ describe("Return Failed Response Check", () => {
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ status: "Failed",
+ ok: false,
+ })
+ );
+ response = await TemplateService.insDictionaryElements(json);
+ });
+ it("Test insDictionaryElements returns failed response", () => {
+ expect(response).toEqual("Failed");
+ });
+ });
+});
+describe("Verify DeleteDictionary", () => {
+ let response;
+ let dictionaryName = "name";
+ describe("Return Success Response Check", () => {
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ status: "Success",
+ ok: true,
+ })
+ );
+ response = await TemplateService.deleteDictionary(dictionaryName);
+ });
+ it("Test deleteDictionary returns success response", () => {
+ expect(response).toEqual("Success");
+ });
+ });
+ describe("Return Failed Response Check", () => {
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ status: "Failed",
+ ok: false,
+ })
+ );
+ response = await TemplateService.deleteDictionary(dictionaryName);
+ });
+ it("Test deleteDictionary returns failed response", () => {
+ expect(response).toEqual({});
+ });
+ });
+});
+describe("Verify DeleteDictionaryElements", () => {
+ let response;
+ let dictionaryData = "name";
+ describe("Return Success Response Check", () => {
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ status: "Success",
+ ok: true,
+ })
+ );
+ response = await TemplateService.deleteDictionaryElements(dictionaryData);
+ });
+ it("Test deleteDictionaryElements returns success response", () => {
+ expect(response).toEqual("Success");
+ });
+ });
+ describe("Return Failed Response Check", () => {
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ status: "Failed",
+ ok: false,
+ })
+ );
+ response = await TemplateService.deleteDictionaryElements(dictionaryData);
+ });
+ it("Test deleteDictionaryElements returns failed response", () => {
+ expect(response).toEqual({});
+ });
+ });
+});
diff --git a/gui-clamp/ui-react/src/api/UserService.test.js b/gui-clamp/ui-react/src/api/UserService.test.js
new file mode 100644
index 0000000..ede5446
--- /dev/null
+++ b/gui-clamp/ui-react/src/api/UserService.test.js
@@ -0,0 +1,88 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2022 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+import UserService from "./UserService";
+
+describe("Verify Login", () => {
+ let response;
+ let expectedResponse;
+ describe("Login Username Check", () => {
+ expectedResponse = { name: "name" };
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ text: () => Promise.resolve({ name: "name" }),
+ status: "Success",
+ ok: true,
+ })
+ );
+ response = await UserService.login();
+ });
+ it("Test login returns correct username", () => {
+ expect(response).toEqual(expectedResponse);
+ });
+ });
+ describe("Anonymouse Login Check", () => {
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ status: "Failed",
+ ok: false,
+ })
+ );
+ response = await UserService.login();
+ });
+ it("Test login returns Anonymous user", () => {
+ expect(response).toEqual("Anonymous");
+ });
+ });
+});
+describe("Verify GetUserInfo", () => {
+ let response;
+ let expectedResponse;
+ describe("Test Correct Username", () => {
+ expectedResponse = { name: "name" };
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ json: () => Promise.resolve({ name: "name" }),
+ status: "Success",
+ ok: true,
+ })
+ );
+ response = await UserService.getUserInfo();
+ });
+ it("Test getUserInfo returns correct username", () => {
+ expect(response).toEqual(expectedResponse);
+ });
+ });
+ describe("Empty User Check", () => {
+ beforeEach(async () => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ status: "Failed",
+ ok: false,
+ })
+ );
+ response = await UserService.getUserInfo();
+ });
+ it("Test getUserInfo returns empty response", () => {
+ expect(response).toEqual({});
+ });
+ });
+});