@@ -34,4 +34,86 @@ describe('memoize-one@5.0.0 transform', () => {
3434 ` ) ,
3535 ) ;
3636 } ) ;
37+
38+ it ( 'should wrap inline equality functions' , ( ) => {
39+ const result = applyTransform (
40+ transformer ,
41+ format ( `
42+ import memoize from 'memoize-one';
43+
44+ function add(a: number, b: number) {
45+ return a + b;
46+ }
47+
48+ const memoized = memoize(add, function isEqual(a, b) {
49+ return a === b;
50+ });
51+ ` ) ,
52+ { parser : 'tsx' } ,
53+ ) ;
54+
55+ expect ( result ) . toEqual (
56+ format ( `
57+ import memoize from 'memoize-one';
58+
59+ function add(a: number, b: number) {
60+ return a + b;
61+ }
62+
63+ const memoized = memoize(add, (newArgs, lastArgs) => {
64+ if (newArgs.length !== lastArgs.length) {
65+ return false;
66+ }
67+
68+ function isEqual(a, b) {
69+ return a === b;
70+ }
71+
72+ return newArgs.every((newArg, index) => isEqual(newArg, lastArgs[index]));
73+ });
74+ ` ) ,
75+ ) ;
76+ } ) ;
77+
78+ it ( 'should wrap references' , ( ) => {
79+ const result = applyTransform (
80+ transformer ,
81+ format ( `
82+ import memoize from 'memoize-one';
83+
84+ function isEqual(a, b) {
85+ return a === b;
86+ }
87+
88+ function add(a: number, b: number) {
89+ return a + b;
90+ }
91+
92+ const memoized = memoize(add, isEqual);
93+ ` ) ,
94+ { parser : 'tsx' } ,
95+ ) ;
96+
97+ expect ( result ) . toEqual (
98+ format ( `
99+ import memoize from "memoize-one";
100+
101+ function isEqual(a, b) {
102+ return a === b;
103+ }
104+
105+ function add(a: number, b: number) {
106+ return a + b;
107+ }
108+
109+ const memoized = memoize(add, (newArgs, lastArgs) => {
110+ if (newArgs.length !== lastArgs.length) {
111+ return false;
112+ }
113+
114+ return newArgs.every((newArg, index) => isEqual(newArg, lastArgs[index]));
115+ });
116+ ` ) ,
117+ ) ;
118+ } ) ;
37119} ) ;
0 commit comments