diff --git a/package.json b/package.json index 29da4621..6c0cb87e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "openstack-uicore-foundation", - "version": "5.0.44", + "version": "5.0.48-beta.0", "description": "ui reactjs components for openstack marketing site", "main": "lib/openstack-uicore-foundation.js", "scripts": { diff --git a/src/components/index.js b/src/components/index.js index b77daffd..ec9e08ce 100644 --- a/src/components/index.js +++ b/src/components/index.js @@ -68,7 +68,7 @@ export {default as MuiMenuButton} from './mui/menu-button' export {default as MuiSearchInput} from './mui/search-input' export {default as MuiShowConfirmDialog} from './mui/showConfirmDialog' export {default as MuiSponsorAddonSelect} from './mui/sponsor-addon-select' -export {default as MuiSummitAddonSelect} from './mui/summit-addon-select' +export {default as AddonTypeSelect} from './mui/addon-type-select' export {default as MuiSummitsDropdown} from './mui/summits-dropdown' export {default as MuiFormItemTable, getCurrentApplicableRate, isItemAvailable, GlobalQuantityField, ItemTableField, UnderlyingAlertNote, ExpandedRowContent} from './mui/FormItemTable' export {default as MuiItemSettingsModal} from './mui/ItemSettingsModal' @@ -96,7 +96,7 @@ export {default as MuiFormikRadioGroup} from './mui/formik-inputs/mui-formik-rad export {default as MuiFormikSelectGroup} from './mui/formik-inputs/mui-formik-select-group' export {default as MuiFormikSelect} from './mui/formik-inputs/mui-formik-select' export {default as MuiFormikSelectV2} from './mui/formik-inputs/mui-formik-select-v2' -export {default as MuiFormikSummitAddonSelect} from './mui/formik-inputs/mui-formik-summit-addon-select' +export {default as MuiFormikAddonTypeSelect} from './mui/formik-inputs/mui-formik-addon-type-select' export {default as MuiFormikSwitch} from './mui/formik-inputs/mui-formik-switch' export {default as MuiFormikTextField} from './mui/formik-inputs/mui-formik-textfield' export {default as MuiFormikTextEditor} from './mui/formik-inputs/mui-formik-text-editor' diff --git a/src/components/mui/__tests__/summit-addon-select.test.js b/src/components/mui/__tests__/addon-type-select.test.js similarity index 82% rename from src/components/mui/__tests__/summit-addon-select.test.js rename to src/components/mui/__tests__/addon-type-select.test.js index fa1a415e..4927f2cd 100644 --- a/src/components/mui/__tests__/summit-addon-select.test.js +++ b/src/components/mui/__tests__/addon-type-select.test.js @@ -13,16 +13,19 @@ jest.mock("../../../utils/query-actions", () => ({ querySummitAddons: jest.fn((summitId, callback) => { - callback(["Addon Alpha", "Addon Beta"]); + callback([ + { id: 1, name: "Addon Alpha" }, + { id: 2, name: "Addon Beta" } + ]); }) })); import React from "react"; import { render, screen, waitFor } from "@testing-library/react"; import "@testing-library/jest-dom"; -import SummitAddonSelect from "../summit-addon-select"; +import AddonTypeSelect from "../addon-type-select"; -describe("SummitAddonSelect", () => { +describe("AddonTypeSelect", () => { const defaultProps = { value: "", summitId: 5, @@ -33,12 +36,12 @@ describe("SummitAddonSelect", () => { beforeEach(() => jest.clearAllMocks()); test("renders a select combobox", () => { - const { container } = render(); + const { container } = render(); expect(container.querySelector("[role='combobox']")).toBeInTheDocument(); }); test("calls querySummitAddons on mount with summitId", async () => { - render(); + render(); await waitFor(() => { expect( require("../../../utils/query-actions").querySummitAddons @@ -47,7 +50,7 @@ describe("SummitAddonSelect", () => { }); test("renders options returned by querySummitAddons", async () => { - render(); + render(); // Options are rendered inside the Select's listbox - click to open // Just verify the component renders without errors after options load await waitFor(() => { diff --git a/src/components/mui/__tests__/mui-formik-summit-addon-select.test.js b/src/components/mui/__tests__/mui-formik-addon-type-select.test.js similarity index 73% rename from src/components/mui/__tests__/mui-formik-summit-addon-select.test.js rename to src/components/mui/__tests__/mui-formik-addon-type-select.test.js index d610fc4c..4c63f73f 100644 --- a/src/components/mui/__tests__/mui-formik-summit-addon-select.test.js +++ b/src/components/mui/__tests__/mui-formik-addon-type-select.test.js @@ -11,13 +11,13 @@ * limitations under the License. * */ -jest.mock("../summit-addon-select", () => { +jest.mock("../addon-type-select", () => { const React = require("react"); return { __esModule: true, default: ({ value, placeholder, inputProps }) => (
render(
- +
); -describe("MuiFormikSummitAddonSelect", () => { - test("renders the SummitAddonSelect", () => { +describe("MuiFormikAddonTypeSelect", () => { + test("renders the AddonTypeSelect", () => { renderWithFormik({}); - expect(screen.getByTestId("summit-addon-select")).toBeInTheDocument(); + expect(screen.getByTestId("addon-type-select")).toBeInTheDocument(); }); - test("passes placeholder to SummitAddonSelect", () => { + test("passes placeholder to AddonTypeSelect", () => { renderWithFormik({ placeholder: "Choose addon" }); expect(screen.getByText("Choose addon")).toBeInTheDocument(); }); @@ -63,11 +63,11 @@ describe("MuiFormikSummitAddonSelect", () => { onSubmit={jest.fn()} >
- + ); - expect(screen.getByTestId("summit-addon-select")).toHaveAttribute( + expect(screen.getByTestId("addon-type-select")).toHaveAttribute( "data-error", "true" ); @@ -75,7 +75,7 @@ describe("MuiFormikSummitAddonSelect", () => { test("passes false error when not touched", () => { renderWithFormik({}); - expect(screen.getByTestId("summit-addon-select")).toHaveAttribute( + expect(screen.getByTestId("addon-type-select")).toHaveAttribute( "data-error", "false" ); diff --git a/src/components/mui/summit-addon-select.js b/src/components/mui/addon-type-select.js similarity index 93% rename from src/components/mui/summit-addon-select.js rename to src/components/mui/addon-type-select.js index 92927685..f0ae4212 100644 --- a/src/components/mui/summit-addon-select.js +++ b/src/components/mui/addon-type-select.js @@ -16,7 +16,7 @@ import { MenuItem, Select } from "@mui/material"; import PropTypes from "prop-types"; import { querySummitAddons } from "../../utils/query-actions"; -const SummitAddonSelect = ({ +const AddonTypeSelect = ({ value, summitId, placeholder = "Select...", @@ -28,8 +28,8 @@ const SummitAddonSelect = ({ useEffect(() => { querySummitAddons(summitId, (results) => { const normalized = results.map((r) => ({ - value: r, - label: r + value: r.name, + label: r.name })); setOptions(normalized); }); @@ -64,11 +64,11 @@ const SummitAddonSelect = ({ ); }; -SummitAddonSelect.propTypes = { +AddonTypeSelect.propTypes = { value: PropTypes.string, summitId: PropTypes.number.isRequired, placeholder: PropTypes.string, onChange: PropTypes.func.isRequired }; -export default SummitAddonSelect; +export default AddonTypeSelect; diff --git a/src/components/mui/formik-inputs/mui-formik-summit-addon-select.js b/src/components/mui/formik-inputs/mui-formik-addon-type-select.js similarity index 86% rename from src/components/mui/formik-inputs/mui-formik-summit-addon-select.js rename to src/components/mui/formik-inputs/mui-formik-addon-type-select.js index 2216d9f8..965a7fad 100644 --- a/src/components/mui/formik-inputs/mui-formik-summit-addon-select.js +++ b/src/components/mui/formik-inputs/mui-formik-addon-type-select.js @@ -14,9 +14,9 @@ import React from "react"; import PropTypes from "prop-types"; import { useField } from "formik"; -import SummitAddonSelect from "../summit-addon-select"; +import AddonTypeSelect from "../addon-type-select"; -const MuiFormikSummitAddonSelect = ({ +const MuiFormikAddonTypeSelect = ({ name, summitId, placeholder = "Select...", @@ -25,7 +25,7 @@ const MuiFormikSummitAddonSelect = ({ const [field, meta, helpers] = useField(name); return ( - { const endpoint = URI( - `/api/v1/summits/${summitId}/add-ons/metadata` + `/api/v1/summits/all/add-on-types` ); endpoint.addQuery("page", 1); endpoint.addQuery("per_page", MAX_PER_PAGE); diff --git a/webpack.common.js b/webpack.common.js index b735486f..cd96e737 100644 --- a/webpack.common.js +++ b/webpack.common.js @@ -97,7 +97,7 @@ module.exports = { 'components/mui/search-input': './src/components/mui/search-input.js', 'components/mui/show-confirm-dialog': './src/components/mui/showConfirmDialog.js', 'components/mui/sponsor-addon-select': './src/components/mui/sponsor-addon-select.js', - 'components/mui/summit-addon-select': './src/components/mui/summit-addon-select.js', + 'components/mui/addon-type-select': './src/components/mui/addon-type-select.js', 'components/mui/summits-dropdown': './src/components/mui/summits-dropdown.js', 'components/mui/form-item-table': './src/components/mui/FormItemTable/index.js', 'components/mui/item-settings-modal': './src/components/mui/ItemSettingsModal/index.js', @@ -126,7 +126,7 @@ module.exports = { 'components/mui/formik-inputs/select-group': './src/components/mui/formik-inputs/mui-formik-select-group.js', 'components/mui/formik-inputs/select': './src/components/mui/formik-inputs/mui-formik-select.js', 'components/mui/formik-inputs/select-v2': './src/components/mui/formik-inputs/mui-formik-select-v2.js', - 'components/mui/formik-inputs/summit-addon-select': './src/components/mui/formik-inputs/mui-formik-summit-addon-select.js', + 'components/mui/formik-inputs/addon-type-select': './src/components/mui/formik-inputs/mui-formik-addon-type-select.js', 'components/mui/formik-inputs/switch': './src/components/mui/formik-inputs/mui-formik-switch.js', 'components/mui/formik-inputs/textfield': './src/components/mui/formik-inputs/mui-formik-textfield.js', 'components/mui/formik-inputs/texteditor': './src/components/mui/formik-inputs/mui-formik-text-editor.js',