Question: I have a list of objects which, depending on the condition that applies, has a variable type. However, I have not found a way to make this happen.

issue:
`cannot implicitly convert type List<TABLE_ONE> to type list<object>`

```
 List<object> listName;

    switch (sourceTableName)
    {
        case "TABLE_ONE":
            listName = m_api.Database.ExecuteQuery<TABLE_ONE>($"SELECT * FROM {sourceTableName}");
            break;
        case "TABLE_TWO":
            listName = m_api.Database.ExecuteQuery<TABLE_TWO>($"SELECT * FROM {sourceTableName}");
            break;
        case "TABLE_THREE":
            listName = m_api.Database.ExecuteQuery<TABLE_THREE>($"SELECT * FROM {sourceTableName}");
            break;
    }

foreach (var row in listName)
     {
        var dif3 = new DataInterfaceFactory(DatabaseTypes.SqlServer, row.DatabaseName, row.ServerName);
        do stuff...
     }

```

the variable `sourceTableName` is a string that contains the name of a class.

**Classes that are used as types:**

```
    public class TABLE_ONE
    {
        public int TableOneColumnUid;
        public string ServerName;
        public string DatabaseName;
        public DateTime LastCheckDate;
        public int IsRunning;
    }
    public class TABLE_TWO
    {
        public int TableTwoColumnUid;
        public string ServerName;
        public string DatabaseName;
        public DateTime LastCheckDate;
        public int IsRunning;
    }
    public class TABLE_THREE
    {
        public int TableThreeColumnUid;
        public string ServerName;
        public string DatabaseName;
        public DateTime LastCheckDate;
        public int IsRunning;
    }

```

Answer: 
I had to mock the implementation of my `onSubmit` function to clear the error, preventing the default submit behavior.

Give something like this a try:

```js
const onSubmit = jest.fn();

it("should invoke onSubmit when form is submitted", async () => {
      onSubmit.mockImplementation(event => {
        event.preventDefault();
      });

      const { getByText } = renderCard({ onSubmit });
      const button = getByText("Save").closest("button");
      if (button) {
        fireEvent.click(button);
      }
      await wait(() => expect(onSubmit).toHaveBeenCalled());
 });

```

You can read more about event.preventDefault in React [here](https://reactjs.org/docs/handling-events.html) and [here](https://www.robinwieruch.de/react-preventdefault).

Something else that worked for me was using RTL's `fireEvent.submit`, although you need to get a form element for that to work. Assuming your implementation of `Card` renders a form in a way that's recognizable by `getByRole`, you could also try something like this:

```js
fireEvent.submit(screen.getByRole('form'));

```

That would be in lieu of simulating the button click, which may be acceptable in your case since you seem to be testing form submission rather than the button's behavior.
Adding `type="button"` to the button element is also effective. This will dismiss that error.

Realised this because I had a save and cancel button. I tested the save first and this error didn't occur but when I tested the cancel the error occurred.

When I came to this answer, reading the first answer gave me a clue and as I was about to add the `event.preventDefault()` I realised `type="button"` was missing on the cancel button.

Both buttons are child elements of the form.