eduter / screeps-jest

Helper functions and environment for unit testing your Screeps code with Jest.
14 stars 4 forks source link

Include the function mockConstructor() #1

Open eduter opened 4 years ago

eduter commented 4 years ago
type Constructor<T> = new(...args: any[]) => T;

function mockConstructor<C extends Constructor<any>>(
  className: string,
  fn: (...args: ConstructorParameters<C>) => DeepPartial<InstanceType<C>> = (...args: any) => args
) {
  (global as any)[className] = jest.fn(
    (...args: ConstructorParameters<C>) => mockInstanceOf<InstanceType<C>>(fn(...args))
  );
}

mockConstructor<RoomPositionConstructor>('RoomPosition', (x: number, y: number, roomName: string) => ({ x, y, roomName }));