mirror of https://github.com/jkjoy/sunpeiwen.git
27 lines
695 B
TypeScript
27 lines
695 B
TypeScript
|
import moize from '../src';
|
||
|
|
||
|
const method = jest.fn(function (one: string, two?: string) {
|
||
|
return { one, two };
|
||
|
});
|
||
|
|
||
|
function argMatcher(cacheKeyArg: string, keyArg: string) {
|
||
|
return cacheKeyArg === 'foo' || keyArg === 'foo';
|
||
|
}
|
||
|
|
||
|
const memoized = moize.matchesArg(argMatcher)(method);
|
||
|
|
||
|
const foo = 'foo';
|
||
|
const bar = 'bar';
|
||
|
|
||
|
describe('moize.matchesArg', () => {
|
||
|
it('performs a custom equality check of specific args in the key', () => {
|
||
|
const resultA = memoized(foo, bar);
|
||
|
const resultB = memoized(bar, foo);
|
||
|
|
||
|
expect(resultA).toEqual({ one: foo, two: bar });
|
||
|
expect(resultB).toBe(resultA);
|
||
|
|
||
|
expect(method).toHaveBeenCalledTimes(1);
|
||
|
});
|
||
|
});
|