diff --git a/airflow-core/src/airflow/ui/src/components/FlexibleForm/FieldObject.test.tsx b/airflow-core/src/airflow/ui/src/components/FlexibleForm/FieldObject.test.tsx new file mode 100644 index 0000000000000..f8fa9fdd43245 --- /dev/null +++ b/airflow-core/src/airflow/ui/src/components/FlexibleForm/FieldObject.test.tsx @@ -0,0 +1,153 @@ +/*! + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ +import { render, screen } from "@testing-library/react"; +import type { Mock } from "vitest"; +import { describe, it, expect, vi, beforeEach } from "vitest"; +import * as ParamStore from "src/queries/useParamStore"; + +import { Wrapper } from "src/utils/Wrapper"; + +import { FieldObject } from "./FieldObject"; + +// Mock useParamStore +const mockSetParamsDict = vi.fn(); + +vi.mock("src/queries/useParamStore", () => { + const mockUseParamStore = vi.fn(); + + return { + // Keep paramPlaceholder first to satisfy object sort rules + paramPlaceholder: { + // eslint-disable-next-line unicorn/no-null + description: null, + schema: {}, + value: "", + }, + useParamStore: mockUseParamStore, + }; +}); + +// Mock JsonEditor +vi.mock("../JsonEditor", () => ({ + JsonEditor: ({ value }: Readonly<{ value: string }>) => ( +