From e9d59dff405625289eb1378a7943d1cde1950125 Mon Sep 17 00:00:00 2001 From: Rhys Evans Date: Sun, 15 Sep 2024 18:23:32 +0100 Subject: [PATCH] feat: finished implementing reset method codemods --- .../src/__test__/method-codemods.test.js | 59 +++++-------------- packages/codemods/src/codemods/methods.js | 11 ++-- packages/codemods/try.js | 2 +- 3 files changed, 23 insertions(+), 49 deletions(-) diff --git a/packages/codemods/src/__test__/method-codemods.test.js b/packages/codemods/src/__test__/method-codemods.test.js index 18df3735..6705dbb5 100644 --- a/packages/codemods/src/__test__/method-codemods.test.js +++ b/packages/codemods/src/__test__/method-codemods.test.js @@ -69,75 +69,48 @@ describe('codemods operating on methods', () => { it('rewrites restore()', () => { expectCodemodResult( 'fetchMock.restore()', - ` - fetchMock.clearHistory(); - fetchMock.removeRoutes({ - includeFallback: true, - }); - fetchMock.unmockGlobal(); - `, + `fetchMock.clearHistory(); +fetchMock.removeRoutes(); +fetchMock.unmockGlobal();`, ); }); it('rewrites restore() with {sticky: true}', () => { expectCodemodResult( 'fetchMock.restore({sticky: true})', - ` - fetchMock.clearHistory(); - fetchMock.removeRoutes({ - includeSticky: true, - includeFallback: true, - }); - fetchMock.unmockGlobal(); - `, + `fetchMock.clearHistory(); +fetchMock.removeRoutes({includeSticky: true}); +fetchMock.unmockGlobal();`, ); }); it('rewrites reset()', () => { expectCodemodResult( 'fetchMock.reset()', - ` - fetchMock.clearHistory(); - fetchMock.removeRoutes({ - includeFallback: true, - }); - fetchMock.unmockGlobal(); - `, + `fetchMock.clearHistory(); +fetchMock.removeRoutes(); +fetchMock.unmockGlobal();`, ); }); it('rewrites reset() with {sticky: true}', () => { expectCodemodResult( 'fetchMock.reset({sticky: true})', - ` - fetchMock.clearHistory(); - fetchMock.removeRoutes({ - includeSticky: true, - includeFallback: true, - }); - fetchMock.unmockGlobal(); - `, + `fetchMock.clearHistory(); +fetchMock.removeRoutes({includeSticky: true}); +fetchMock.unmockGlobal();`, ); }); it('rewrites resetBehavior()', () => { expectCodemodResult( 'fetchMock.resetBehavior()', - ` - fetchMock.removeRoutes({ - includeFallback: true, - }); - fetchMock.unmockGlobal(); - `, + `fetchMock.removeRoutes(); +fetchMock.unmockGlobal();`, ); }); it('rewrites resetBehavior() with {sticky: true}', () => { expectCodemodResult( 'fetchMock.resetBehavior({sticky: true})', - ` - fetchMock.removeRoutes({ - includeSticky: true, - includeFallback: true, - }); - fetchMock.unmockGlobal(); - `, + `fetchMock.removeRoutes({includeSticky: true}); +fetchMock.unmockGlobal();`, ); }); it('rewrites resetHistory()', () => { diff --git a/packages/codemods/src/codemods/methods.js b/packages/codemods/src/codemods/methods.js index 8581894b..7de52f56 100644 --- a/packages/codemods/src/codemods/methods.js +++ b/packages/codemods/src/codemods/methods.js @@ -54,7 +54,7 @@ export function simpleMethods(fetchMockVariableName, root, j) { } }); }); - ['reset', 'restore'].forEach((methodName) => { + ['reset', 'restore', 'resetBehavior'].forEach((methodName) => { root .find(j.CallExpression, { callee: { @@ -68,11 +68,12 @@ export function simpleMethods(fetchMockVariableName, root, j) { }, }) .forEach((path) => { + const sticky = path?.value?.arguments[0]?.properties?.find( + (prop) => prop.key.name === 'sticky', + )?.value?.value; const newExpressions = j(` -fetchMock.clearHistory(); -fetchMock.removeRoutes({ - includeFallback: true, -}); +${methodName !== 'resetBehavior' ? 'fetchMock.clearHistory()' : ''}; +fetchMock.removeRoutes(${sticky ? '{includeSticky: true}' : ''}); fetchMock.unmockGlobal(); `) .find(j.ExpressionStatement) diff --git a/packages/codemods/try.js b/packages/codemods/try.js index 20b56079..08e1e84a 100644 --- a/packages/codemods/try.js +++ b/packages/codemods/try.js @@ -5,7 +5,7 @@ console.log( codemod( ` import fetchMock from 'fetch-mock'; -fetchMock.restore(); +fetchMock.resetBehavior(); `, jscodeshift, ),