Jest SpyOn choose the correct overload

Solution for Jest SpyOn choose the correct overload
is Given Below:

I do have a class that has 2 overloaded methods.

  public static create<M extends Model>(
    this: ModelStatic<M>,
    values?: M['_creationAttributes'],
    options?: CreateOptions<M['_attributes']>
  ): Promise<M>;
  public static create<M extends Model>(
    this: ModelStatic<M>,
    values: M['_creationAttributes'],
    options: CreateOptions<M['_attributes']> & { returning: false }
  ): Promise<void>;

in my unit test, I’m trying to use jest.spyOn to mock the first method however jest sees only the one that returns Promise<void>.

const mockInsightCreate = jest.spyOn(Insight, "create");
mockInsightCreate.mockReturnValue(Promise.resolve()); // here I need to return an object of type - Insight

Is there a way to instruct spyOn to pickup the first method that returns Promise<M> ?

import {
    Model,
} from "sequelize-typescript";

... 

export default class Insight extends Model<Insight> {