aboutsummaryrefslogtreecommitdiffstats
path: root/ui-react/src/components/dialogs/Tosca
diff options
context:
space:
mode:
Diffstat (limited to 'ui-react/src/components/dialogs/Tosca')
-rw-r--r--ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.js163
-rw-r--r--ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.test.js162
-rw-r--r--ui-react/src/components/dialogs/Tosca/__snapshots__/ViewLoopTemplatesModal.test.js.snap157
3 files changed, 0 insertions, 482 deletions
diff --git a/ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.js b/ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.js
deleted file mode 100644
index 4796b8d73..000000000
--- a/ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.js
+++ /dev/null
@@ -1,163 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP POLICY-CLAMP
- * ================================================================================
- * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-import React, { forwardRef } from 'react'
-import Button from 'react-bootstrap/Button';
-import Modal from 'react-bootstrap/Modal';
-import styled from 'styled-components';
-import TemplateService from '../../../api/TemplateService';
-import ArrowUpward from '@material-ui/icons/ArrowUpward';
-import ChevronLeft from '@material-ui/icons/ChevronLeft';
-import ChevronRight from '@material-ui/icons/ChevronRight';
-import Clear from '@material-ui/icons/Clear';
-import FirstPage from '@material-ui/icons/FirstPage';
-import LastPage from '@material-ui/icons/LastPage';
-import Search from '@material-ui/icons/Search';
-import MaterialTable from "material-table";
-import LoopCache from '../../../api/LoopCache';
-import SvgGenerator from '../../loop_viewer/svg/SvgGenerator';
-
-const ModalStyled = styled(Modal)`
- background-color: transparent;
-`
-
-const cellStyle = { border: '1px solid black' };
-const headerStyle = { backgroundColor: '#ddd', border: '2px solid black' };
-const rowHeaderStyle = {backgroundColor:'#ddd', fontSize: '15pt', text: 'bold', border: '1px solid black'};
-
-export default class ViewLoopTemplatesModal extends React.Component {
- state = {
- show: true,
- content: 'Please select a loop template to display it',
- selectedRow: -1,
- loopTemplatesData: [],
- fakeLoopCacheWithTemplate: new LoopCache({}),
- loopTemplateColumnsDefinition: [
- { title: "#", field: "index", render: rowData => rowData.tableData.id + 1,
- cellStyle: cellStyle,
- headerStyle: headerStyle
- },
- { title: "Template Name", field: "name",
- cellStyle: cellStyle,
- headerStyle: headerStyle
- },
- { title: "Service Model Name", field: "modelService.serviceDetails.name",
- cellStyle: cellStyle,
- headerStyle: headerStyle
- },
- { title: "Loop Type Allowed", field: "allowedLoopType",
- cellStyle: cellStyle,
- headerStyle: headerStyle
- },
- { title: "# Instances Allowed", field: "maximumInstancesAllowed",
- cellStyle: cellStyle,
- headerStyle: headerStyle
- },
- { title: "Modified Date", field: "updatedDate", editable: 'never',
- cellStyle: cellStyle,
- headerStyle: headerStyle
- }
- ],
- tableIcons: {
- FirstPage: forwardRef((props, ref) => <FirstPage {...props} ref={ref} />),
- LastPage: forwardRef((props, ref) => <LastPage {...props} ref={ref} />),
- NextPage: forwardRef((props, ref) => <ChevronRight {...props} ref={ref} />),
- PreviousPage: forwardRef((props, ref) => <ChevronLeft {...props} ref={ref} />),
- ResetSearch: forwardRef((props, ref) => <Clear {...props} ref={ref} />),
- Search: forwardRef((props, ref) => <Search {...props} ref={ref} />),
- SortArrow: forwardRef((props, ref) => <ArrowUpward {...props} ref={ref} />)
- }
- };
-
- constructor(props, context) {
- super(props, context);
- this.handleClose = this.handleClose.bind(this);
- this.renderSvg = this.renderSvg.bind(this);
- this.getLoopTemplate = this.getLoopTemplate.bind(this);
- this.getAllLoopTemplates();
- }
-
- getAllLoopTemplates() {
- TemplateService.getAllLoopTemplates().then(templatesData => {
- // replace -1 in maximumInstancesAllowed with more meaningful 'No Limit'
- for (let item in templatesData) {
- if (templatesData[item].maximumInstancesAllowed === -1) {
- templatesData[item].maximumInstancesAllowed = 'No Limit';
- }
- }
- this.setState({ loopTemplatesData: templatesData })
- });
- }
-
- getLoopTemplate(templateIdInDataArray) {
- if (typeof templateIdInDataArray !== "undefined") {
- this.setState({ fakeLoopCacheWithTemplate:
- new LoopCache({
- "loopTemplate":this.state.loopTemplatesData[templateIdInDataArray],
- "name": "fakeLoop"
- })
- })
- } else {
- this.setState({ fakeLoopCacheWithTemplate: new LoopCache({}) })
- }
- }
-
- handleClose() {
- this.setState({ show: false });
- this.props.history.push('/')
- }
-
- renderSvg() {
- return(
- <SvgGenerator loopCache={this.state.fakeLoopCacheWithTemplate} clickable={false} generatedFrom={SvgGenerator.GENERATED_FROM_TEMPLATE}/>
- )
- }
-
- render() {
- return (
- <ModalStyled size="xl" show={this.state.show} onHide={this.handleClose} backdrop="static" keyboard={false}>
- <Modal.Header closeButton>
- </Modal.Header>
- <Modal.Body>
- <MaterialTable
- title={"View Blueprint MicroService Templates"}
- data={this.state.loopTemplatesData}
- columns={this.state.loopTemplateColumnsDefinition}
- icons={this.state.tableIcons}
- onRowClick={(event, rowData) => {this.getLoopTemplate(rowData.tableData.id);this.setState({selectedRow: rowData.tableData.id})}}
- options={{
- headerStyle:rowHeaderStyle,
- rowStyle: rowData => ({
- backgroundColor: (this.state.selectedRow !== -1 && this.state.selectedRow === rowData.tableData.id) ? '#EEE' : '#FFF'
- })
- }}
- />
- {this.renderSvg()}
- </Modal.Body>
- <Modal.Footer>
- <Button variant="secondary" onClick={this.handleClose}>Close</Button>
- </Modal.Footer>
- </ModalStyled>
- );
- }
- }
diff --git a/ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.test.js b/ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.test.js
deleted file mode 100644
index 7680ec4b9..000000000
--- a/ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.test.js
+++ /dev/null
@@ -1,162 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-import React from 'react';
-import { shallow } from 'enzyme';
-import ViewLoopTemplatesModal from './ViewLoopTemplatesModal';
-import { mount } from 'enzyme';
-import { BrowserRouter as Router } from 'react-router-dom';
-
-describe('Verify ViewLoopTemplatesModal', () => {
- beforeEach(() => {
- fetch.resetMocks();
- });
-
- it('Test API Successful', () => {
- fetch.mockImplementationOnce(() => {
- return Promise.resolve({
- ok: true,
- status: 200,
- json: () => {
- return Promise.resolve({
- "index": "1",
- "name": "MTCA version 1",
- "modelService.serviceDetails.name": "MTCA",
- "allowedLoopType" : "CLOSED",
- "maximumInstancesAllowed":1,
- "updatedDate":"2019-09-06 19:09:42"
- });
- }
- });
- });
- const component = shallow(<ViewLoopTemplatesModal/>);
- });
-
- it('Test API Exception', () => {
- fetch.mockImplementationOnce(() => {
- return Promise.resolve({
- ok: false,
- status: 500,
- json: () => {
- return Promise.resolve({
- "index": "1",
- "name": "MTCA version 1",
- "modelService.serviceDetails.name": "MTCA",
- "allowedLoopType" : "CLOSED",
- "maximumInstancesAllowed":1,
- "updatedDate":"2019-09-06 19:09:42"
- });
- }
- });
- });
- const component = shallow(<ViewLoopTemplatesModal/>);
- });
-
- it('Test API Rejection', () => {
- const myMockFunc = fetch.mockImplementationOnce(() => Promise.reject('error'));
- setTimeout( () => myMockFunc().catch(e => {
- console.info(e);
- }),
- 100
- );
- const component = shallow(<ViewLoopTemplatesModal/>);
- expect(myMockFunc.mock.calls.length).toBe(1);
- });
-
- it('Test the tosca model view render method', () => {
- fetch.mockImplementationOnce(() => {
- return Promise.resolve({
- ok: true,
- status: 200,
- json: () => {
- return Promise.resolve({
- "index": "1",
- "name": "MTCA version 1",
- "modelService.serviceDetails.name": "MTCA",
- "allowedLoopType" : "CLOSED",
- "maximumInstancesAllowed":1,
- "updatedDate":"2019-09-06 19:09:42"
- });
- }
- });
- });
- const component = shallow(<ViewLoopTemplatesModal/>);
- component.setState({ loopTemplateData: {
- "index": "1",
- "name": "MTCA version 1",
- "modelService.serviceDetails.name": "MTCA",
- "allowedLoopType" : "CLOSED",
- "maximumInstancesAllowed":1,
- "updatedDate":"2019-09-06 19:09:42"
- }
- });
- expect(component).toMatchSnapshot();
- });
-
- it('Test Table icons', () => {
- fetch.mockImplementationOnce(() => {
- return Promise.resolve({
- ok: true,
- status: 200,
- json: () => {
- return Promise.resolve({
- "index": "1",
- "name": "MTCA version 1",
- "modelService.serviceDetails.name": "MTCA",
- "allowedLoopType" : "CLOSED",
- "maximumInstancesAllowed":1,
- "updatedDate":"2019-09-06 19:09:42"
- });
- }
- });
- });
- const component = mount(<Router><ViewLoopTemplatesModal/></Router>);
- expect(component.find('[className="MuiSelect-icon MuiTablePagination-selectIcon"]')).toBeTruthy();
- });
-
- it('Test handleClose', () => {
- fetch.mockImplementationOnce(() => {
- return Promise.resolve({
- ok: true,
- status: 200,
- json: () => {
- return Promise.resolve({
- "index": "1",
- "name": "MTCA version 1",
- "modelService.serviceDetails.name": "MTCA",
- "allowedLoopType" : "CLOSED",
- "maximumInstancesAllowed":1,
- "updatedDate":"2019-09-06 19:09:42"
- });
- }
- });
- });
- const historyMock = { push: jest.fn() };
- const handleClose = jest.spyOn(ViewLoopTemplatesModal.prototype,'handleClose');
- const component = shallow(<ViewLoopTemplatesModal history={historyMock} />)
- component.find('[variant="secondary"]').prop('onClick')();
- expect(handleClose).toHaveBeenCalledTimes(1);
- expect(component.state('show')).toEqual(false);
- expect(historyMock.push.mock.calls[0]).toEqual([ '/']);
- handleClose.mockClear();
- });
- });
diff --git a/ui-react/src/components/dialogs/Tosca/__snapshots__/ViewLoopTemplatesModal.test.js.snap b/ui-react/src/components/dialogs/Tosca/__snapshots__/ViewLoopTemplatesModal.test.js.snap
deleted file mode 100644
index 73f659606..000000000
--- a/ui-react/src/components/dialogs/Tosca/__snapshots__/ViewLoopTemplatesModal.test.js.snap
+++ /dev/null
@@ -1,157 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`Verify ViewLoopTemplatesModal Test the tosca model view render method 1`] = `
-<Styled(Modal)
- backdrop="static"
- keyboard={false}
- onHide={[Function]}
- show={true}
- size="xl"
->
- <ModalHeader
- closeButton={true}
- closeLabel="Close"
- />
- <ModalBody>
- <WithStyles(Component)
- columns={
- Array [
- Object {
- "cellStyle": Object {
- "border": "1px solid black",
- },
- "field": "index",
- "headerStyle": Object {
- "backgroundColor": "#ddd",
- "border": "2px solid black",
- },
- "render": [Function],
- "title": "#",
- },
- Object {
- "cellStyle": Object {
- "border": "1px solid black",
- },
- "field": "name",
- "headerStyle": Object {
- "backgroundColor": "#ddd",
- "border": "2px solid black",
- },
- "title": "Template Name",
- },
- Object {
- "cellStyle": Object {
- "border": "1px solid black",
- },
- "field": "modelService.serviceDetails.name",
- "headerStyle": Object {
- "backgroundColor": "#ddd",
- "border": "2px solid black",
- },
- "title": "Service Model Name",
- },
- Object {
- "cellStyle": Object {
- "border": "1px solid black",
- },
- "field": "allowedLoopType",
- "headerStyle": Object {
- "backgroundColor": "#ddd",
- "border": "2px solid black",
- },
- "title": "Loop Type Allowed",
- },
- Object {
- "cellStyle": Object {
- "border": "1px solid black",
- },
- "field": "maximumInstancesAllowed",
- "headerStyle": Object {
- "backgroundColor": "#ddd",
- "border": "2px solid black",
- },
- "title": "# Instances Allowed",
- },
- Object {
- "cellStyle": Object {
- "border": "1px solid black",
- },
- "editable": "never",
- "field": "updatedDate",
- "headerStyle": Object {
- "backgroundColor": "#ddd",
- "border": "2px solid black",
- },
- "title": "Modified Date",
- },
- ]
- }
- data={Array []}
- icons={
- Object {
- "FirstPage": Object {
- "$$typeof": Symbol(react.forward_ref),
- "render": [Function],
- },
- "LastPage": Object {
- "$$typeof": Symbol(react.forward_ref),
- "render": [Function],
- },
- "NextPage": Object {
- "$$typeof": Symbol(react.forward_ref),
- "render": [Function],
- },
- "PreviousPage": Object {
- "$$typeof": Symbol(react.forward_ref),
- "render": [Function],
- },
- "ResetSearch": Object {
- "$$typeof": Symbol(react.forward_ref),
- "render": [Function],
- },
- "Search": Object {
- "$$typeof": Symbol(react.forward_ref),
- "render": [Function],
- },
- "SortArrow": Object {
- "$$typeof": Symbol(react.forward_ref),
- "render": [Function],
- },
- }
- }
- onRowClick={[Function]}
- options={
- Object {
- "headerStyle": Object {
- "backgroundColor": "#ddd",
- "border": "1px solid black",
- "fontSize": "15pt",
- "text": "bold",
- },
- "rowStyle": [Function],
- }
- }
- title="View Blueprint MicroService Templates"
- />
- <withRouter(SvgGenerator)
- clickable={false}
- generatedFrom="TEMPLATE"
- loopCache={
- LoopCache {
- "loopJsonCache": Object {},
- }
- }
- />
- </ModalBody>
- <ModalFooter>
- <Button
- active={false}
- disabled={false}
- onClick={[Function]}
- variant="secondary"
- >
- Close
- </Button>
- </ModalFooter>
-</Styled(Modal)>
-`;