Skip to content

Commit ba20c15

Browse files
authoredNov 8, 2022
refactor(jest-mock): clean up internal typings more (#13575)
1 parent a570638 commit ba20c15

File tree

1 file changed

+14
-15
lines changed

1 file changed

+14
-15
lines changed
 

‎packages/jest-mock/src/index.ts

+14-15
Original file line numberDiff line numberDiff line change
@@ -1089,12 +1089,11 @@ export class ModuleMocker {
10891089
methodKey: K,
10901090
): V extends ClassLike | FunctionLike ? Spied<V> : never;
10911091

1092-
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
1093-
spyOn<T extends object, K extends PropertyLikeKeys<T>>(
1092+
spyOn<T extends object>(
10941093
object: T,
1095-
methodKey: K,
1094+
methodKey: keyof T,
10961095
accessType?: 'get' | 'set',
1097-
) {
1096+
): MockInstance {
10981097
if (typeof object !== 'object' && typeof object !== 'function') {
10991098
throw new Error(
11001099
`Cannot spyOn on a primitive value; ${this._typeOf(object)} given`,
@@ -1168,16 +1167,16 @@ export class ModuleMocker {
11681167
});
11691168
}
11701169

1171-
return object[methodKey];
1170+
return object[methodKey] as Mock;
11721171
}
11731172

1174-
private _spyOnProperty<T extends object, K extends PropertyLikeKeys<T>>(
1175-
obj: T,
1176-
propertyKey: K,
1173+
private _spyOnProperty<T extends object>(
1174+
object: T,
1175+
propertyKey: keyof T,
11771176
accessType: 'get' | 'set',
1178-
): Mock<() => T> {
1179-
let descriptor = Object.getOwnPropertyDescriptor(obj, propertyKey);
1180-
let proto = Object.getPrototypeOf(obj);
1177+
): MockInstance {
1178+
let descriptor = Object.getOwnPropertyDescriptor(object, propertyKey);
1179+
let proto = Object.getPrototypeOf(object);
11811180

11821181
while (!descriptor && proto !== null) {
11831182
descriptor = Object.getOwnPropertyDescriptor(proto, propertyKey);
@@ -1216,19 +1215,19 @@ export class ModuleMocker {
12161215
descriptor[accessType] = this._makeComponent({type: 'function'}, () => {
12171216
// @ts-expect-error: mock is assignable
12181217
descriptor![accessType] = original;
1219-
Object.defineProperty(obj, propertyKey, descriptor!);
1218+
Object.defineProperty(object, propertyKey, descriptor!);
12201219
});
12211220

1222-
(descriptor[accessType] as Mock<() => T>).mockImplementation(function (
1221+
(descriptor[accessType] as Mock).mockImplementation(function (
12231222
this: unknown,
12241223
) {
12251224
// @ts-expect-error - wrong context
12261225
return original.apply(this, arguments);
12271226
});
12281227
}
12291228

1230-
Object.defineProperty(obj, propertyKey, descriptor);
1231-
return descriptor[accessType] as Mock<() => T>;
1229+
Object.defineProperty(object, propertyKey, descriptor);
1230+
return descriptor[accessType] as Mock;
12321231
}
12331232

12341233
clearAllMocks(): void {

0 commit comments

Comments
 (0)
Please sign in to comment.