diff options
author | saul.gill <saul.gill@est.tech> | 2021-07-02 17:10:54 +0100 |
---|---|---|
committer | saul.gill <saul.gill@est.tech> | 2021-07-02 17:10:59 +0100 |
commit | 6687b48b58bf1248532de48f3e375b1f663f4015 (patch) | |
tree | 6582070c8db251b85695bcdc902ea98aac573003 /gui-clamp/ui-react/src/api | |
parent | b908988c81db910d4e2bea3e569e468f5f2c8f85 (diff) |
Changed components to be service-centric
Moved endpoints to ControlLoopService.js
Refactored components and tests
Issue-ID: POLICY-3424
Change-Id: I70d48750250eecd651b845ef0c726617983f75f5
Signed-off-by: saul.gill <saul.gill@est.tech>
Diffstat (limited to 'gui-clamp/ui-react/src/api')
7 files changed, 34 insertions, 268 deletions
diff --git a/gui-clamp/ui-react/src/api/ControlLoopService.js b/gui-clamp/ui-react/src/api/ControlLoopService.js index 5ef7529..1882f78 100644 --- a/gui-clamp/ui-react/src/api/ControlLoopService.js +++ b/gui-clamp/ui-react/src/api/ControlLoopService.js @@ -44,4 +44,38 @@ export default class ControlLoopService { return undefined; }); } + + static async getToscaTemplate(name, version, windowLocationPathname) { + const params = { + name: name, + version: version + } + + const response = await fetch(windowLocationPathname + + '/restservices/clds/v2/toscaControlLoop/getToscaTemplate' + '?' + (new URLSearchParams(params))); + + if (!response.ok) { + const message = `An error has occurred: ${response.status}`; + throw new Error(message); + } + + const data = await response; + + return data; + } + + static async uploadToscaFile(toscaObject, windowLocationPathName) { + const response = await fetch(windowLocationPathName + + '/restservices/clds/v2/toscaControlLoop/commissionToscaTemplate', { + method: 'POST', + headers: { + "Content-Type": "application/json" + }, + credentials: 'same-origin', + body: JSON.stringify(toscaObject), + }); + + return response + + } } diff --git a/gui-clamp/ui-react/src/api/GetToscaTemplate.js b/gui-clamp/ui-react/src/api/GetToscaTemplate.js deleted file mode 100644 index d428491..0000000 --- a/gui-clamp/ui-react/src/api/GetToscaTemplate.js +++ /dev/null @@ -1,56 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2021 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 React, { useState } from "react"; -import Button from "react-bootstrap/Button"; - -const GetToscaTemplate = (props) => { - - const [windowLocationPathName, setWindowLocationPathname] = useState(''); - - const getTemplateHandler = async () => { - console.log('getTemplateHandler called') - setWindowLocationPathname(window.location.pathname); - - const params = { - name: props.templateName, - version: props.templateVersion - } - - const response = await fetch(windowLocationPathName + - '/restservices/clds/v2/toscaControlLoop/getToscaTemplate' + '?' + (new URLSearchParams(params))); - - const data = await response.json(); - - props.onGetToscaServiceTemplate(data); - - } - - return ( - <React.Fragment> - <Button variant="primary" - type="submit" - onClick={ getTemplateHandler }>Get Tosca Service Template</Button> - </React.Fragment> - ); - - -} - -export default GetToscaTemplate; diff --git a/gui-clamp/ui-react/src/api/GetToscaTemplate.test.js b/gui-clamp/ui-react/src/api/GetToscaTemplate.test.js deleted file mode 100644 index 338ee83..0000000 --- a/gui-clamp/ui-react/src/api/GetToscaTemplate.test.js +++ /dev/null @@ -1,55 +0,0 @@ -/* - * - - * * ============LICENSE_START======================================================= - * * Copyright (C) 2021 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 React from 'react'; -import { mount, shallow } from 'enzyme'; -import GetToscaTemplate from './GetToscaTemplate'; -import toJson from "enzyme-to-json"; - -describe('Verify GetToscaTemplate', () => { - - it("renders without crashing", () => { - shallow(<GetToscaTemplate/>); - }); - - it("renders correctly", () => { - const tree = shallow(<GetToscaTemplate/>); - expect(toJson(tree)).toMatchSnapshot(); - }); - - it('should have a Button element', () => { - const container = shallow(<GetToscaTemplate/>) - expect(container.find('Button').length).toEqual(1); - }); - - it('button should call getTemplateHandler when clicked', async () => { - const component = mount(<GetToscaTemplate/>) - const logSpy = jest.spyOn(console, 'log'); - - component.find('[variant="primary"]').simulate('click'); - expect(logSpy).toHaveBeenCalledWith('getTemplateHandler called'); - }); - - it('should have a Button element with specified text', () => { - const container = shallow(<GetToscaTemplate/>) - expect(container.find('Button').text()).toBe('Get Tosca Service Template'); - }); -}); diff --git a/gui-clamp/ui-react/src/api/UploadToscaFile.js b/gui-clamp/ui-react/src/api/UploadToscaFile.js deleted file mode 100644 index 4173e0d..0000000 --- a/gui-clamp/ui-react/src/api/UploadToscaFile.js +++ /dev/null @@ -1,63 +0,0 @@ -/* - * - - * * ============LICENSE_START======================================================= - * * Copyright (C) 2021 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 Button from "react-bootstrap/Button"; -import React, { useState } from "react"; - -const UploadToscaFile = (props) => { - const [windowLocationPathName, setWindowLocationPathname] = useState(''); - - const postServiceTemplateHandler = async (event) => { - event.preventDefault(); - console.log('postServiceTemplateHandler called'); - setWindowLocationPathname(window.location.pathname); - - const response = await fetch(windowLocationPathName + - '/restservices/clds/v2/toscaControlLoop/commissionToscaTemplate', { - method: 'POST', - headers: { - "Content-Type": "application/json" - }, - credentials: 'same-origin', - body: JSON.stringify(props.toscaObject), - }); - - const responseObj = await response; - const responseMessage = await response.text(); - - props.onResponseReceived(responseObj, responseMessage); - - } - - return ( - <React.Fragment> - <Button variant="primary" - block={ true } - type="submit" - onClick={ postServiceTemplateHandler }> - Upload Tosca Service Template - </Button> - </React.Fragment> - ); - -}; - -export default UploadToscaFile; diff --git a/gui-clamp/ui-react/src/api/UploadToscaFile.test.js b/gui-clamp/ui-react/src/api/UploadToscaFile.test.js deleted file mode 100644 index 681acc7..0000000 --- a/gui-clamp/ui-react/src/api/UploadToscaFile.test.js +++ /dev/null @@ -1,63 +0,0 @@ -/* - * - - * * ============LICENSE_START======================================================= - * * Copyright (C) 2021 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 React from 'react'; -import { mount, shallow } from 'enzyme'; -import UploadToscaFile from './UploadToscaFile'; -import toJson from "enzyme-to-json"; -import { act } from "react-dom/test-utils"; - -describe('Verify UploadToscaFile', () => { - - it("renders without crashing", () => { - shallow(<UploadToscaFile/>); - }); - - it("renders correctly", () => { - const tree = shallow(<UploadToscaFile/>); - expect(toJson(tree)).toMatchSnapshot(); - }); - - it('should have a Button element', () => { - const container = shallow(<UploadToscaFile/>) - expect(container.find('Button').length).toEqual(1); - }); - - it('button should call postServiceTemplateHandler when clicked', async () => { - const component = mount(<UploadToscaFile/>) - const logSpy = jest.spyOn(console, 'log'); - const event = { - preventDefault() { - } - }; - - act(async () => { - component.find('[variant="primary"]').get(0).props.onClick(event); - expect(logSpy).toHaveBeenCalledWith('postServiceTemplateHandler called'); - }) - - }); - - it('should have a Button element with specified text', () => { - const container = shallow(<UploadToscaFile/>) - expect(container.find('Button').text()).toBe('Upload Tosca Service Template'); - }); -}); diff --git a/gui-clamp/ui-react/src/api/__snapshots__/GetToscaTemplate.test.js.snap b/gui-clamp/ui-react/src/api/__snapshots__/GetToscaTemplate.test.js.snap deleted file mode 100644 index 2c591d9..0000000 --- a/gui-clamp/ui-react/src/api/__snapshots__/GetToscaTemplate.test.js.snap +++ /dev/null @@ -1,15 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Verify GetToscaTemplate renders correctly 1`] = ` -<Fragment> - <Button - active={false} - disabled={false} - onClick={[Function]} - type="submit" - variant="primary" - > - Get Tosca Service Template - </Button> -</Fragment> -`; diff --git a/gui-clamp/ui-react/src/api/__snapshots__/UploadToscaFile.test.js.snap b/gui-clamp/ui-react/src/api/__snapshots__/UploadToscaFile.test.js.snap deleted file mode 100644 index a1ae439..0000000 --- a/gui-clamp/ui-react/src/api/__snapshots__/UploadToscaFile.test.js.snap +++ /dev/null @@ -1,16 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Verify UploadToscaFile renders correctly 1`] = ` -<Fragment> - <Button - active={false} - block={true} - disabled={false} - onClick={[Function]} - type="submit" - variant="primary" - > - Upload Tosca Service Template - </Button> -</Fragment> -`; |