@@ -34,4 +34,86 @@ describe('memoize-one@5.0.0 transform', () => {
34
34
` ) ,
35
35
) ;
36
36
} ) ;
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
+ } ) ;
37
119
} ) ;
0 commit comments