From 49462669687f0eeacd854ff30bf17e00533b3273 Mon Sep 17 00:00:00 2001 From: lazpavel <85319655+lazpavel@users.noreply.github.com> Date: Fri, 28 Oct 2022 14:48:24 -0400 Subject: [PATCH 1/2] fix: trigger analytics migration on update/configure notifications --- .../src/__tests__/notifications.test.ts | 37 +++++++++++++++++++ .../src/migrations/index.ts | 2 +- 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 packages/amplify-category-notifications/src/__tests__/notifications.test.ts diff --git a/packages/amplify-category-notifications/src/__tests__/notifications.test.ts b/packages/amplify-category-notifications/src/__tests__/notifications.test.ts new file mode 100644 index 00000000000..c952e8c5693 --- /dev/null +++ b/packages/amplify-category-notifications/src/__tests__/notifications.test.ts @@ -0,0 +1,37 @@ +import { $TSContext } from 'amplify-cli-core'; +import { migrationCheck } from '../migrations/index'; +import * as apiAnalyticsClient from '../plugin-client-api-analytics'; + +const mockContext = { + input: { command: undefined }, +} as unknown as $TSContext; + +jest.mock('../plugin-client-api-analytics', () => ({ invokeAnalyticsMigrations: jest.fn() })); + +describe('notifications tests', () => { + beforeEach(() => { + jest.resetAllMocks(); + }); + + test('notification migrations calls analytics migration', async () => { + mockContext.input.command = 'add'; + await migrationCheck(mockContext); + expect(apiAnalyticsClient.invokeAnalyticsMigrations).toBeCalled(); + jest.resetAllMocks(); + + mockContext.input.command = 'configure'; + await migrationCheck(mockContext); + expect(apiAnalyticsClient.invokeAnalyticsMigrations).toBeCalled(); + jest.resetAllMocks(); + + mockContext.input.command = 'push'; + await migrationCheck(mockContext); + expect(apiAnalyticsClient.invokeAnalyticsMigrations).toBeCalled(); + jest.resetAllMocks(); + + mockContext.input.command = 'remove'; + await migrationCheck(mockContext); + expect(apiAnalyticsClient.invokeAnalyticsMigrations).not.toBeCalled(); + jest.resetAllMocks(); + }); +}); diff --git a/packages/amplify-category-notifications/src/migrations/index.ts b/packages/amplify-category-notifications/src/migrations/index.ts index 2a00e62bf20..c14b07ca139 100644 --- a/packages/amplify-category-notifications/src/migrations/index.ts +++ b/packages/amplify-category-notifications/src/migrations/index.ts @@ -5,7 +5,7 @@ import { invokeAnalyticsMigrations } from '../plugin-client-api-analytics'; * checks if the project has been migrated to the latest version */ export const migrationCheck = async (context: $TSContext): Promise => { - if (['add', 'update', 'push'].includes(context.input.command)) { + if (['add', 'configure', 'push'].includes(context.input.command)) { await invokeAnalyticsMigrations(context); } }; From cc56325db8ce4a5b144c6dc9e48e6f9c472b7414 Mon Sep 17 00:00:00 2001 From: lazpavel <85319655+lazpavel@users.noreply.github.com> Date: Fri, 28 Oct 2022 15:07:40 -0400 Subject: [PATCH 2/2] fix: PR feedback - keep update check to prevent future regressions --- .../src/__tests__/notifications.test.ts | 5 +++++ .../amplify-category-notifications/src/migrations/index.ts | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/amplify-category-notifications/src/__tests__/notifications.test.ts b/packages/amplify-category-notifications/src/__tests__/notifications.test.ts index c952e8c5693..c6276df04ed 100644 --- a/packages/amplify-category-notifications/src/__tests__/notifications.test.ts +++ b/packages/amplify-category-notifications/src/__tests__/notifications.test.ts @@ -24,6 +24,11 @@ describe('notifications tests', () => { expect(apiAnalyticsClient.invokeAnalyticsMigrations).toBeCalled(); jest.resetAllMocks(); + mockContext.input.command = 'update'; + await migrationCheck(mockContext); + expect(apiAnalyticsClient.invokeAnalyticsMigrations).toBeCalled(); + jest.resetAllMocks(); + mockContext.input.command = 'push'; await migrationCheck(mockContext); expect(apiAnalyticsClient.invokeAnalyticsMigrations).toBeCalled(); diff --git a/packages/amplify-category-notifications/src/migrations/index.ts b/packages/amplify-category-notifications/src/migrations/index.ts index c14b07ca139..ba8d4b3f65a 100644 --- a/packages/amplify-category-notifications/src/migrations/index.ts +++ b/packages/amplify-category-notifications/src/migrations/index.ts @@ -5,7 +5,7 @@ import { invokeAnalyticsMigrations } from '../plugin-client-api-analytics'; * checks if the project has been migrated to the latest version */ export const migrationCheck = async (context: $TSContext): Promise => { - if (['add', 'configure', 'push'].includes(context.input.command)) { + if (['add', 'configure', 'update', 'push'].includes(context.input.command)) { await invokeAnalyticsMigrations(context); } };