From bd0ef4570328a738f5fe544b1ff79867065036bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?MJ=E2=98=94?= Date: Tue, 2 Jan 2024 10:39:53 -0800 Subject: [PATCH 01/22] chore: change trigger --- .github/workflows/poc-e2e-flow-test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/poc-e2e-flow-test.yml b/.github/workflows/poc-e2e-flow-test.yml index 41ee16f2f7..4f313440a1 100644 --- a/.github/workflows/poc-e2e-flow-test.yml +++ b/.github/workflows/poc-e2e-flow-test.yml @@ -6,6 +6,7 @@ on: # TODO: need to change the trigger push: branches: - poc/package-manager-support + - poc/pms-deploy pull_request: branches: - poc/package-manager-support From 247e17b58d5526a460e45d76b580e75eaccb6da3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?MJ=E2=98=94?= Date: Tue, 2 Jan 2024 13:19:24 -0800 Subject: [PATCH 02/22] chore: setup AWS credentials --- .github/workflows/poc-e2e-flow-test.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/poc-e2e-flow-test.yml b/.github/workflows/poc-e2e-flow-test.yml index 4f313440a1..cf7567278e 100644 --- a/.github/workflows/poc-e2e-flow-test.yml +++ b/.github/workflows/poc-e2e-flow-test.yml @@ -62,6 +62,17 @@ jobs: node-version: ${{ matrix.node-version }} - name: Restore Build Cache uses: ./.github/actions/restore_build_cache + - name: Configure test tooling credentials + uses: ./.github/actions/setup_profile + with: + role-to-assume: ${{ secrets.E2E_TOOLING_ROLE_ARN }} + aws-region: us-west-2 + profile-name: e2e-tooling + - name: Configure test execution credentials + uses: aws-actions/configure-aws-credentials@04b98b3f9e85f563fb061be8751a0352327246b0 # version 3.0.1 + with: + role-to-assume: ${{ secrets.E2E_RUNNER_ROLE_ARN }} + aws-region: us-west-2 - name: Run E2E tests with ${{ matrix.pkg-manager }} shell: bash run: | From 52d0f6a020d4ef156b05ee4ca13fea82def65760 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?MJ=E2=98=94?= Date: Tue, 2 Jan 2024 13:42:06 -0800 Subject: [PATCH 03/22] chore: enable e2e deployment --- .github/workflows/poc-e2e-flow-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/poc-e2e-flow-test.yml b/.github/workflows/poc-e2e-flow-test.yml index cf7567278e..2b46487495 100644 --- a/.github/workflows/poc-e2e-flow-test.yml +++ b/.github/workflows/poc-e2e-flow-test.yml @@ -76,4 +76,4 @@ jobs: - name: Run E2E tests with ${{ matrix.pkg-manager }} shell: bash run: | - PACKAGE_MANAGER_EXECUTABLE=${{matrix.pkg-manager}} npm run test:dir packages/integration-tests/src/test-e2e/create_amplify.test.ts + PACKAGE_MANAGER_EXECUTABLE=${{matrix.pkg-manager}} npm run e2e From c4be31e6647a0c9ff01be32d3fae969cbc742713 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?MJ=E2=98=94?= Date: Wed, 3 Jan 2024 11:47:49 -0800 Subject: [PATCH 04/22] chore: change test order --- .github/workflows/poc-e2e-flow-test.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/poc-e2e-flow-test.yml b/.github/workflows/poc-e2e-flow-test.yml index 2b46487495..cc3b962814 100644 --- a/.github/workflows/poc-e2e-flow-test.yml +++ b/.github/workflows/poc-e2e-flow-test.yml @@ -76,4 +76,5 @@ jobs: - name: Run E2E tests with ${{ matrix.pkg-manager }} shell: bash run: | - PACKAGE_MANAGER_EXECUTABLE=${{matrix.pkg-manager}} npm run e2e + PACKAGE_MANAGER_EXECUTABLE=${{matrix.pkg-manager}} npm run test:dir packages/integration-tests/src/test-e2e/create_amplify.test.ts + PACKAGE_MANAGER_EXECUTABLE=${{matrix.pkg-manager}} npm run test:dir packages/integration-tests/src/test-e2e/deployment.test.ts From 2be6ae7386ad39a44968ffda0bd773c17139cf3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?MJ=E2=98=94?= Date: Wed, 3 Jan 2024 13:21:00 -0800 Subject: [PATCH 05/22] fix: change rootTestDir --- packages/integration-tests/src/setup_test_directory.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/integration-tests/src/setup_test_directory.ts b/packages/integration-tests/src/setup_test_directory.ts index 353fe329cd..42d9df4a1e 100644 --- a/packages/integration-tests/src/setup_test_directory.ts +++ b/packages/integration-tests/src/setup_test_directory.ts @@ -1,12 +1,13 @@ import { existsSync } from 'fs'; import fs from 'fs/promises'; import { fileURLToPath } from 'url'; +import * as os from 'os'; /** * Root test directory. */ export const rootTestDir = fileURLToPath( - new URL('./e2e-tests', import.meta.url) + new URL(`${os.tmpdir()}/e2e-tests`, import.meta.url) ); /** From d3e936ffab7753ebf95634f0ba24b31988e7c815 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?MJ=E2=98=94?= Date: Wed, 3 Jan 2024 13:42:58 -0800 Subject: [PATCH 06/22] fix: install typescript --- .../src/test-project-setup/setup_dir_as_esm_module.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/integration-tests/src/test-project-setup/setup_dir_as_esm_module.ts b/packages/integration-tests/src/test-project-setup/setup_dir_as_esm_module.ts index c0032396e2..35a9d8d042 100644 --- a/packages/integration-tests/src/test-project-setup/setup_dir_as_esm_module.ts +++ b/packages/integration-tests/src/test-project-setup/setup_dir_as_esm_module.ts @@ -25,6 +25,11 @@ export const setupDirAsEsmModule = async (absoluteDirPath: string) => { 'es2022', ]; + await execa('npm', ['install', 'typescript'], { + stdio: 'inherit', + cwd: absoluteDirPath, + }); + await execa('npx', tscArgs, { stdio: 'inherit', cwd: absoluteDirPath, From 67e73825d8aa26c8295c9e37d83f1b4fe1ae88dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?MJ=E2=98=94?= Date: Wed, 3 Jan 2024 14:22:00 -0800 Subject: [PATCH 07/22] fix: install @aws-amplify/backend --- .../src/test-project-setup/create_empty_amplify_project.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/integration-tests/src/test-project-setup/create_empty_amplify_project.ts b/packages/integration-tests/src/test-project-setup/create_empty_amplify_project.ts index 7c26772903..7de1fdca4b 100644 --- a/packages/integration-tests/src/test-project-setup/create_empty_amplify_project.ts +++ b/packages/integration-tests/src/test-project-setup/create_empty_amplify_project.ts @@ -1,5 +1,6 @@ import fs from 'fs/promises'; import path from 'path'; +import { execa } from 'execa'; import { shortUuid } from '../short_uuid.js'; import { setupDirAsEsmModule } from './setup_dir_as_esm_module.js'; @@ -29,5 +30,10 @@ export const createEmptyAmplifyProject = async ( await setupDirAsEsmModule(projectAmplifyDir); + await execa('npm', ['install', '@aws-amplify/backend'], { + stdio: 'inherit', + cwd: projectRoot, + }); + return { projectName, projectRoot, projectAmplifyDir }; }; From 2e343efc233197b3173549bcc2bba04244ec21c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?MJ=E2=98=94?= Date: Wed, 3 Jan 2024 15:17:44 -0800 Subject: [PATCH 08/22] fix: install @aws-amplify/backend-cli --- .../create_empty_amplify_project.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/integration-tests/src/test-project-setup/create_empty_amplify_project.ts b/packages/integration-tests/src/test-project-setup/create_empty_amplify_project.ts index 7de1fdca4b..6149b28d82 100644 --- a/packages/integration-tests/src/test-project-setup/create_empty_amplify_project.ts +++ b/packages/integration-tests/src/test-project-setup/create_empty_amplify_project.ts @@ -30,10 +30,14 @@ export const createEmptyAmplifyProject = async ( await setupDirAsEsmModule(projectAmplifyDir); - await execa('npm', ['install', '@aws-amplify/backend'], { - stdio: 'inherit', - cwd: projectRoot, - }); + await execa( + 'npm', + ['install', '-D', '@aws-amplify/backend', '@aws-amplify/backend-cli'], + { + stdio: 'inherit', + cwd: projectRoot, + } + ); return { projectName, projectRoot, projectAmplifyDir }; }; From e83b172515aeaa01b3f3545cfbc2ba81f4b0cf1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?MJ=E2=98=94?= Date: Wed, 3 Jan 2024 15:38:41 -0800 Subject: [PATCH 09/22] fix: install @aws-amplify/auth-construct-alpha and deployer --- .../test-project-setup/create_empty_amplify_project.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/integration-tests/src/test-project-setup/create_empty_amplify_project.ts b/packages/integration-tests/src/test-project-setup/create_empty_amplify_project.ts index 6149b28d82..bfcd7b8810 100644 --- a/packages/integration-tests/src/test-project-setup/create_empty_amplify_project.ts +++ b/packages/integration-tests/src/test-project-setup/create_empty_amplify_project.ts @@ -32,7 +32,14 @@ export const createEmptyAmplifyProject = async ( await execa( 'npm', - ['install', '-D', '@aws-amplify/backend', '@aws-amplify/backend-cli'], + [ + 'install', + '-D', + '@aws-amplify/backend', + '@aws-amplify/backend-cli', + '@aws-amplify/auth-construct-alpha', + '@aws-amplify/backend-deployer', + ], { stdio: 'inherit', cwd: projectRoot, From 8bed4d7f1fa610b2acf5f453fc0192a23c762eea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?MJ=E2=98=94?= Date: Wed, 3 Jan 2024 16:52:07 -0800 Subject: [PATCH 10/22] chore: ignore logs --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 89ff13277e..659d3a4be9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +*.log +logs coverage docs lib From 339c4e5e64759d9a4fdced23f255aafafc6215fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?MJ=E2=98=94?= Date: Wed, 3 Jan 2024 19:39:30 -0800 Subject: [PATCH 11/22] fix: install uuid for data-storage-auth --- .../src/test-project-setup/create_empty_amplify_project.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/integration-tests/src/test-project-setup/create_empty_amplify_project.ts b/packages/integration-tests/src/test-project-setup/create_empty_amplify_project.ts index bfcd7b8810..c6e68b284e 100644 --- a/packages/integration-tests/src/test-project-setup/create_empty_amplify_project.ts +++ b/packages/integration-tests/src/test-project-setup/create_empty_amplify_project.ts @@ -39,6 +39,9 @@ export const createEmptyAmplifyProject = async ( '@aws-amplify/backend-cli', '@aws-amplify/auth-construct-alpha', '@aws-amplify/backend-deployer', + ...(projectDirName === 'data-storage-auth' + ? ['uuid', '@types/uuid'] + : []), ], { stdio: 'inherit', From e1c22c073c561de8e6d98a51fb316462c91b5a4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?MJ=E2=98=94?= Date: Wed, 3 Jan 2024 20:37:26 -0800 Subject: [PATCH 12/22] temp: comment out cdk deploys --- .../src/test-e2e/deployment.test.ts | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/packages/integration-tests/src/test-e2e/deployment.test.ts b/packages/integration-tests/src/test-e2e/deployment.test.ts index 8a59a2c869..5047c0a521 100644 --- a/packages/integration-tests/src/test-e2e/deployment.test.ts +++ b/packages/integration-tests/src/test-e2e/deployment.test.ts @@ -217,26 +217,26 @@ void describe('deployment tests', { concurrency: testConcurrencyLevel }, () => { }); }); - void describe('cdk deploys', () => { - testCdkProjectCreators.forEach((testCdkProjectCreator) => { - void describe(`${testCdkProjectCreator.name}`, () => { - let testCdkProject: TestCdkProjectBase; - - beforeEach(async () => { - testCdkProject = await testCdkProjectCreator.createProject( - rootTestDir - ); - }); - - afterEach(async () => { - await testCdkProject.tearDown(); - }); - - void it(`deploys`, async () => { - await testCdkProject.deploy(); - await testCdkProject.assertPostDeployment(); - }); - }); - }); - }); + // void describe('cdk deploys', () => { + // testCdkProjectCreators.forEach((testCdkProjectCreator) => { + // void describe(`${testCdkProjectCreator.name}`, () => { + // let testCdkProject: TestCdkProjectBase; + + // beforeEach(async () => { + // testCdkProject = await testCdkProjectCreator.createProject( + // rootTestDir + // ); + // }); + + // afterEach(async () => { + // await testCdkProject.tearDown(); + // }); + + // void it(`deploys`, async () => { + // await testCdkProject.deploy(); + // await testCdkProject.assertPostDeployment(); + // }); + // }); + // }); + // }); }); From 214681df7129194aa713c7b64ce31371875df03c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?MJ=E2=98=94?= Date: Wed, 3 Jan 2024 21:09:53 -0800 Subject: [PATCH 13/22] fix: auth-cdk projects --- .../src/test-e2e/deployment.test.ts | 44 +++++++++---------- .../cdk/create_empty_cdk_project.ts | 6 +++ 2 files changed, 28 insertions(+), 22 deletions(-) diff --git a/packages/integration-tests/src/test-e2e/deployment.test.ts b/packages/integration-tests/src/test-e2e/deployment.test.ts index 5047c0a521..8a59a2c869 100644 --- a/packages/integration-tests/src/test-e2e/deployment.test.ts +++ b/packages/integration-tests/src/test-e2e/deployment.test.ts @@ -217,26 +217,26 @@ void describe('deployment tests', { concurrency: testConcurrencyLevel }, () => { }); }); - // void describe('cdk deploys', () => { - // testCdkProjectCreators.forEach((testCdkProjectCreator) => { - // void describe(`${testCdkProjectCreator.name}`, () => { - // let testCdkProject: TestCdkProjectBase; - - // beforeEach(async () => { - // testCdkProject = await testCdkProjectCreator.createProject( - // rootTestDir - // ); - // }); - - // afterEach(async () => { - // await testCdkProject.tearDown(); - // }); - - // void it(`deploys`, async () => { - // await testCdkProject.deploy(); - // await testCdkProject.assertPostDeployment(); - // }); - // }); - // }); - // }); + void describe('cdk deploys', () => { + testCdkProjectCreators.forEach((testCdkProjectCreator) => { + void describe(`${testCdkProjectCreator.name}`, () => { + let testCdkProject: TestCdkProjectBase; + + beforeEach(async () => { + testCdkProject = await testCdkProjectCreator.createProject( + rootTestDir + ); + }); + + afterEach(async () => { + await testCdkProject.tearDown(); + }); + + void it(`deploys`, async () => { + await testCdkProject.deploy(); + await testCdkProject.assertPostDeployment(); + }); + }); + }); + }); }); diff --git a/packages/integration-tests/src/test-project-setup/cdk/create_empty_cdk_project.ts b/packages/integration-tests/src/test-project-setup/cdk/create_empty_cdk_project.ts index 67d3b67758..de808ff534 100644 --- a/packages/integration-tests/src/test-project-setup/cdk/create_empty_cdk_project.ts +++ b/packages/integration-tests/src/test-project-setup/cdk/create_empty_cdk_project.ts @@ -1,5 +1,6 @@ import fsp from 'fs/promises'; import path from 'path'; +import { execa } from 'execa'; import { cdkCli } from '../../process-controller/process_controller.js'; import { existsSync } from 'fs'; @@ -24,5 +25,10 @@ export const createEmptyCdkProject = async ( await cdkCli(['init', 'app', '--language', 'typescript'], projectRoot).run(); + await execa('npm', ['install', '-D', '@aws-amplify/auth-construct-alpha'], { + stdio: 'inherit', + cwd: projectRoot, + }); + return { projectName, projectRoot }; }; From 3d15a4d728ea24827e1c511220e4b6f508dbb97e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?MJ=E2=98=94?= Date: Thu, 4 Jan 2024 09:23:43 -0800 Subject: [PATCH 14/22] fix: fileURLToPath error --- packages/integration-tests/src/setup_test_directory.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/integration-tests/src/setup_test_directory.ts b/packages/integration-tests/src/setup_test_directory.ts index 42d9df4a1e..40ad4a9960 100644 --- a/packages/integration-tests/src/setup_test_directory.ts +++ b/packages/integration-tests/src/setup_test_directory.ts @@ -1,13 +1,15 @@ import { existsSync } from 'fs'; import fs from 'fs/promises'; +import path from 'path'; import { fileURLToPath } from 'url'; import * as os from 'os'; /** * Root test directory. */ -export const rootTestDir = fileURLToPath( - new URL(`${os.tmpdir()}/e2e-tests`, import.meta.url) +export const rootTestDir = path.resolve( + `${os.tmpdir()}/e2e-tests`, + fileURLToPath(new URL(import.meta.url)) ); /** From ba1ee8b83e30440f42a500922325ad6af5d190c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?MJ=E2=98=94?= Date: Thu, 4 Jan 2024 09:43:10 -0800 Subject: [PATCH 15/22] fix: fix fileURLToPath error --- packages/integration-tests/src/setup_test_directory.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/integration-tests/src/setup_test_directory.ts b/packages/integration-tests/src/setup_test_directory.ts index 40ad4a9960..091118b874 100644 --- a/packages/integration-tests/src/setup_test_directory.ts +++ b/packages/integration-tests/src/setup_test_directory.ts @@ -8,8 +8,7 @@ import * as os from 'os'; * Root test directory. */ export const rootTestDir = path.resolve( - `${os.tmpdir()}/e2e-tests`, - fileURLToPath(new URL(import.meta.url)) + fileURLToPath(new URL(`${os.tmpdir()}/e2e-tests`, import.meta.url)) ); /** From 41803e6d0f28ae5bda7793f3f490077d1484e131 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?MJ=E2=98=94?= Date: Thu, 4 Jan 2024 10:07:24 -0800 Subject: [PATCH 16/22] fix: fix fileURLToPath error again --- .../integration-tests/src/setup_test_directory.ts | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/packages/integration-tests/src/setup_test_directory.ts b/packages/integration-tests/src/setup_test_directory.ts index 091118b874..c99a75a2bd 100644 --- a/packages/integration-tests/src/setup_test_directory.ts +++ b/packages/integration-tests/src/setup_test_directory.ts @@ -1,22 +1,19 @@ import { existsSync } from 'fs'; -import fs from 'fs/promises'; +import fsp from 'fs/promises'; import path from 'path'; -import { fileURLToPath } from 'url'; import * as os from 'os'; /** * Root test directory. */ -export const rootTestDir = path.resolve( - fileURLToPath(new URL(`${os.tmpdir()}/e2e-tests`, import.meta.url)) -); +export const rootTestDir = path.join(os.tmpdir(), 'e2e-tests'); /** * Creates a test directory. */ export const createTestDirectory = async (pathName: string | URL) => { if (!existsSync(pathName)) { - await fs.mkdir(pathName, { recursive: true }); + await fsp.mkdir(pathName, { recursive: true }); } }; @@ -25,6 +22,6 @@ export const createTestDirectory = async (pathName: string | URL) => { */ export const deleteTestDirectory = async (pathName: string | URL) => { if (existsSync(pathName)) { - await fs.rm(pathName, { recursive: true, force: true }); + await fsp.rm(pathName, { recursive: true, force: true }); } }; From c52a65be50120ef6e0e3b6105064d0a437afd3c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?MJ=E2=98=94?= Date: Thu, 4 Jan 2024 19:22:12 -0800 Subject: [PATCH 17/22] publish locally --- packages/integration-tests/src/test-e2e/deployment.test.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/integration-tests/src/test-e2e/deployment.test.ts b/packages/integration-tests/src/test-e2e/deployment.test.ts index 8a59a2c869..0bbe2b0c35 100644 --- a/packages/integration-tests/src/test-e2e/deployment.test.ts +++ b/packages/integration-tests/src/test-e2e/deployment.test.ts @@ -1,4 +1,5 @@ import { after, afterEach, before, beforeEach, describe, it } from 'node:test'; +import { execa } from 'execa'; import { createTestDirectory, deleteTestDirectory, @@ -8,7 +9,7 @@ import fs from 'fs/promises'; import { shortUuid } from '../short_uuid.js'; import { getTestProjectCreators } from '../test-project-setup/test_project_creator.js'; import { TestProjectBase } from '../test-project-setup/test_project_base.js'; -import { userInfo } from 'os'; +import { homedir, userInfo } from 'os'; import { PredicatedActionBuilder } from '../process-controller/predicated_action_queue_builder.js'; import { amplifyCli } from '../process-controller/process_controller.js'; import path from 'path'; @@ -30,9 +31,13 @@ const testProjectCreators = getTestProjectCreators(); const testCdkProjectCreators = getTestCdkProjectCreators(); void describe('deployment tests', { concurrency: testConcurrencyLevel }, () => { before(async () => { + // start a local npm proxy and publish the current codebase to the proxy + await execa('npm', ['run', 'clean:npm-proxy'], { stdio: 'inherit' }); + await execa('npm', ['run', 'vend'], { stdio: 'inherit' }); await createTestDirectory(rootTestDir); }); after(async () => { + await execa('npm', ['run', 'stop:npm-proxy'], { stdio: 'inherit' }); await deleteTestDirectory(rootTestDir); }); From 7ff5e9e9ec4046d8166e7dad013234b8b79e34c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?MJ=E2=98=94?= Date: Thu, 4 Jan 2024 20:31:29 -0800 Subject: [PATCH 18/22] remove stop:npm-proxy --- .../integration-tests/src/test-e2e/create_amplify.test.ts | 5 ----- packages/integration-tests/src/test-e2e/deployment.test.ts | 4 ---- 2 files changed, 9 deletions(-) diff --git a/packages/integration-tests/src/test-e2e/create_amplify.test.ts b/packages/integration-tests/src/test-e2e/create_amplify.test.ts index b030c25dc5..826004409f 100644 --- a/packages/integration-tests/src/test-e2e/create_amplify.test.ts +++ b/packages/integration-tests/src/test-e2e/create_amplify.test.ts @@ -115,11 +115,6 @@ void describe('create-amplify script', { concurrency: concurrency }, () => { ); }); - after(async () => { - // stop the npm proxy - await execa('npm', ['run', 'stop:npm-proxy'], { stdio: 'inherit' }); - }); - const initialStates = ['empty', 'module', 'commonjs'] as const; initialStates.forEach((initialState) => { diff --git a/packages/integration-tests/src/test-e2e/deployment.test.ts b/packages/integration-tests/src/test-e2e/deployment.test.ts index 0bbe2b0c35..de5a7c483f 100644 --- a/packages/integration-tests/src/test-e2e/deployment.test.ts +++ b/packages/integration-tests/src/test-e2e/deployment.test.ts @@ -31,13 +31,9 @@ const testProjectCreators = getTestProjectCreators(); const testCdkProjectCreators = getTestCdkProjectCreators(); void describe('deployment tests', { concurrency: testConcurrencyLevel }, () => { before(async () => { - // start a local npm proxy and publish the current codebase to the proxy - await execa('npm', ['run', 'clean:npm-proxy'], { stdio: 'inherit' }); - await execa('npm', ['run', 'vend'], { stdio: 'inherit' }); await createTestDirectory(rootTestDir); }); after(async () => { - await execa('npm', ['run', 'stop:npm-proxy'], { stdio: 'inherit' }); await deleteTestDirectory(rootTestDir); }); From 436bb17d7ba5296d3a4f2022d64e3bdfa4950343 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?MJ=E2=98=94?= Date: Fri, 5 Jan 2024 13:48:56 -0800 Subject: [PATCH 19/22] chore: update package.lock --- package-lock.json | 160 +++++++++++++++++++++++----------------------- 1 file changed, 80 insertions(+), 80 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0627220ac8..a8d3273d69 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21375,12 +21375,12 @@ }, "packages/auth-construct": { "name": "@aws-amplify/auth-construct-alpha", - "version": "0.4.4", + "version": "0.5.0", "license": "Apache-2.0", "dependencies": { - "@aws-amplify/backend-output-schemas": "^0.4.0", - "@aws-amplify/backend-output-storage": "^0.2.6", - "@aws-amplify/plugin-types": "^0.6.0", + "@aws-amplify/backend-output-schemas": "^0.5.0", + "@aws-amplify/backend-output-storage": "^0.2.7", + "@aws-amplify/plugin-types": "^0.7.0", "@aws-sdk/util-arn-parser": "^3.465.0" }, "peerDependencies": { @@ -21401,19 +21401,19 @@ }, "packages/backend": { "name": "@aws-amplify/backend", - "version": "0.7.0", + "version": "0.8.0", "license": "Apache-2.0", "dependencies": { - "@aws-amplify/backend-auth": "^0.3.7", - "@aws-amplify/backend-data": "^0.9.0", - "@aws-amplify/backend-function": "^0.4.0", - "@aws-amplify/backend-output-schemas": "^0.4.0", - "@aws-amplify/backend-output-storage": "^0.2.6", - "@aws-amplify/backend-secret": "^0.3.3", - "@aws-amplify/backend-storage": "^0.4.0", + "@aws-amplify/backend-auth": "^0.4.0", + "@aws-amplify/backend-data": "^0.9.1", + "@aws-amplify/backend-function": "^0.5.0", + "@aws-amplify/backend-output-schemas": "^0.5.0", + "@aws-amplify/backend-output-storage": "^0.2.7", + "@aws-amplify/backend-secret": "^0.3.4", + "@aws-amplify/backend-storage": "^0.4.1", "@aws-amplify/data-schema": "^0.12.9", - "@aws-amplify/platform-core": "^0.3.3", - "@aws-amplify/plugin-types": "^0.6.0", + "@aws-amplify/platform-core": "^0.3.4", + "@aws-amplify/plugin-types": "^0.7.0", "@aws-sdk/client-amplify": "^3.440.0" }, "devDependencies": { @@ -21427,16 +21427,16 @@ }, "packages/backend-auth": { "name": "@aws-amplify/backend-auth", - "version": "0.3.7", + "version": "0.4.0", "license": "Apache-2.0", "dependencies": { - "@aws-amplify/auth-construct-alpha": "^0.4.4", - "@aws-amplify/backend-output-storage": "0.2.6", - "@aws-amplify/plugin-types": "^0.6.0" + "@aws-amplify/auth-construct-alpha": "^0.5.0", + "@aws-amplify/backend-output-storage": "0.2.7", + "@aws-amplify/plugin-types": "^0.7.0" }, "devDependencies": { "@aws-amplify/backend-platform-test-stubs": "^0.3.1", - "@aws-amplify/platform-core": "^0.3.3" + "@aws-amplify/platform-core": "^0.3.4" }, "peerDependencies": { "aws-cdk-lib": "^2.110.1", @@ -21445,19 +21445,19 @@ }, "packages/backend-data": { "name": "@aws-amplify/backend-data", - "version": "0.9.0", + "version": "0.9.1", "license": "Apache-2.0", "dependencies": { - "@aws-amplify/backend-output-schemas": "^0.4.0", - "@aws-amplify/backend-output-storage": "0.2.6", + "@aws-amplify/backend-output-schemas": "^0.5.0", + "@aws-amplify/backend-output-storage": "0.2.7", "@aws-amplify/data-construct": "^1.4.1", "@aws-amplify/data-schema-types": "^0.6.6", - "@aws-amplify/plugin-types": "^0.6.0" + "@aws-amplify/plugin-types": "^0.7.0" }, "devDependencies": { "@aws-amplify/backend-platform-test-stubs": "^0.3.1", "@aws-amplify/data-schema": "^0.12.9", - "@aws-amplify/platform-core": "^0.3.3" + "@aws-amplify/platform-core": "^0.3.4" }, "peerDependencies": { "aws-cdk-lib": "^2.110.1", @@ -21466,11 +21466,11 @@ }, "packages/backend-deployer": { "name": "@aws-amplify/backend-deployer", - "version": "0.4.2", + "version": "0.4.3", "license": "Apache-2.0", "dependencies": { - "@aws-amplify/platform-core": "^0.3.3", - "@aws-amplify/plugin-types": "^0.6.0", + "@aws-amplify/platform-core": "^0.3.4", + "@aws-amplify/plugin-types": "^0.7.0", "execa": "^7.2.0", "tsx": "^4.6.1" }, @@ -21481,16 +21481,16 @@ }, "packages/backend-function": { "name": "@aws-amplify/backend-function", - "version": "0.4.0", + "version": "0.5.0", "license": "Apache-2.0", "dependencies": { - "@aws-amplify/backend-output-storage": "0.2.6", - "@aws-amplify/plugin-types": "^0.6.0", + "@aws-amplify/backend-output-storage": "0.2.7", + "@aws-amplify/plugin-types": "^0.7.0", "execa": "^7.1.1" }, "devDependencies": { "@aws-amplify/backend-platform-test-stubs": "^0.3.1", - "@aws-amplify/platform-core": "^0.3.3", + "@aws-amplify/platform-core": "^0.3.4", "@aws-sdk/client-ssm": "^3.398.0", "uuid": "^9.0.1" }, @@ -21514,10 +21514,10 @@ }, "packages/backend-output-schemas": { "name": "@aws-amplify/backend-output-schemas", - "version": "0.4.0", + "version": "0.5.0", "license": "Apache-2.0", "devDependencies": { - "@aws-amplify/plugin-types": "0.6.0" + "@aws-amplify/plugin-types": "0.7.0" }, "peerDependencies": { "zod": "^3.21.4" @@ -21525,11 +21525,11 @@ }, "packages/backend-output-storage": { "name": "@aws-amplify/backend-output-storage", - "version": "0.2.6", + "version": "0.2.7", "license": "Apache-2.0", "dependencies": { - "@aws-amplify/backend-output-schemas": "^0.4.0", - "@aws-amplify/platform-core": "^0.3.1" + "@aws-amplify/backend-output-schemas": "^0.5.0", + "@aws-amplify/platform-core": "^0.3.4" }, "peerDependencies": { "aws-cdk-lib": "^2.110.1" @@ -21546,11 +21546,11 @@ }, "packages/backend-secret": { "name": "@aws-amplify/backend-secret", - "version": "0.3.3", + "version": "0.3.4", "license": "Apache-2.0", "dependencies": { - "@aws-amplify/platform-core": "^0.3.3", - "@aws-amplify/plugin-types": "^0.6.0", + "@aws-amplify/platform-core": "^0.3.4", + "@aws-amplify/plugin-types": "^0.7.0", "@aws-sdk/client-ssm": "^3.398.0" }, "devDependencies": { @@ -21559,16 +21559,16 @@ }, "packages/backend-storage": { "name": "@aws-amplify/backend-storage", - "version": "0.4.0", + "version": "0.4.1", "license": "Apache-2.0", "dependencies": { - "@aws-amplify/backend-output-schemas": "^0.4.0", - "@aws-amplify/backend-output-storage": "^0.2.6", - "@aws-amplify/plugin-types": "^0.6.0" + "@aws-amplify/backend-output-schemas": "^0.5.0", + "@aws-amplify/backend-output-storage": "^0.2.7", + "@aws-amplify/plugin-types": "^0.7.0" }, "devDependencies": { "@aws-amplify/backend-platform-test-stubs": "^0.3.1", - "@aws-amplify/platform-core": "^0.3.3" + "@aws-amplify/platform-core": "^0.3.4" }, "peerDependencies": { "aws-cdk-lib": "^2.110.1", @@ -21577,18 +21577,18 @@ }, "packages/cli": { "name": "@aws-amplify/backend-cli", - "version": "0.9.2", + "version": "0.9.3", "license": "Apache-2.0", "dependencies": { - "@aws-amplify/backend-output-schemas": "^0.4.0", - "@aws-amplify/backend-secret": "^0.3.2", + "@aws-amplify/backend-output-schemas": "^0.5.0", + "@aws-amplify/backend-secret": "^0.3.4", "@aws-amplify/cli-core": "^0.2.0", - "@aws-amplify/client-config": "^0.4.2", - "@aws-amplify/deployed-backend-client": "^0.3.4", + "@aws-amplify/client-config": "^0.5.0", + "@aws-amplify/deployed-backend-client": "^0.3.5", "@aws-amplify/form-generator": "^0.6.0", - "@aws-amplify/model-generator": "^0.2.3", - "@aws-amplify/platform-core": "^0.3.2", - "@aws-amplify/sandbox": "^0.3.7", + "@aws-amplify/model-generator": "^0.2.4", + "@aws-amplify/platform-core": "^0.3.4", + "@aws-amplify/sandbox": "^0.3.10", "@aws-sdk/credential-provider-ini": "^3.360.0", "@aws-sdk/credential-providers": "^3.360.0", "@aws-sdk/region-config-resolver": "^3.433.0", @@ -21733,12 +21733,12 @@ }, "packages/client-config": { "name": "@aws-amplify/client-config", - "version": "0.4.2", + "version": "0.5.0", "license": "Apache-2.0", "dependencies": { - "@aws-amplify/backend-output-schemas": "^0.4.0", - "@aws-amplify/deployed-backend-client": "^0.3.3", - "@aws-amplify/model-generator": "^0.2.3", + "@aws-amplify/backend-output-schemas": "^0.5.0", + "@aws-amplify/deployed-backend-client": "^0.3.5", + "@aws-amplify/model-generator": "^0.2.4", "@aws-sdk/client-amplify": "^3.376.0", "@aws-sdk/client-cloudformation": "^3.376.0", "@aws-sdk/client-ssm": "^3.398.0", @@ -21746,16 +21746,16 @@ "zod": "^3.21.4" }, "devDependencies": { - "@aws-amplify/platform-core": "^0.3.0", + "@aws-amplify/platform-core": "^0.3.4", "@aws-sdk/types": "^3.370.0" } }, "packages/create-amplify": { - "version": "0.3.10", + "version": "0.4.0", "license": "Apache-2.0", "dependencies": { "@aws-amplify/cli-core": "^0.2.0", - "@aws-amplify/platform-core": "0.3.3", + "@aws-amplify/platform-core": "0.3.4", "execa": "^7.2.0", "yargs": "^17.7.2" }, @@ -21878,11 +21878,11 @@ }, "packages/deployed-backend-client": { "name": "@aws-amplify/deployed-backend-client", - "version": "0.3.4", + "version": "0.3.5", "license": "Apache-2.0", "dependencies": { - "@aws-amplify/backend-output-schemas": "^0.4.0", - "@aws-amplify/platform-core": "^0.3.2", + "@aws-amplify/backend-output-schemas": "^0.5.0", + "@aws-amplify/platform-core": "^0.3.4", "@aws-sdk/client-amplify": "^3.329.0", "@aws-sdk/client-cloudformation": "^3.329.0", "@aws-sdk/client-s3": "^3.329.0", @@ -21924,15 +21924,15 @@ }, "packages/integration-tests": { "name": "@aws-amplify/integration-tests", - "version": "0.3.8", + "version": "0.4.0", "license": "Apache-2.0", "devDependencies": { - "@aws-amplify/auth-construct-alpha": "^0.4.4", - "@aws-amplify/backend": "^0.7.0", - "@aws-amplify/backend-secret": "^0.3.3", - "@aws-amplify/client-config": "^0.4.0", + "@aws-amplify/auth-construct-alpha": "^0.5.0", + "@aws-amplify/backend": "^0.8.0", + "@aws-amplify/backend-secret": "^0.3.4", + "@aws-amplify/client-config": "^0.5.0", "@aws-amplify/data-schema": "^0.12.9", - "@aws-amplify/platform-core": "^0.3.3", + "@aws-amplify/platform-core": "^0.3.4", "@aws-sdk/client-amplify": "^3.440.0", "@aws-sdk/client-cloudformation": "^3.421.0", "@aws-sdk/client-lambda": "^3.460.0", @@ -22392,11 +22392,11 @@ }, "packages/model-generator": { "name": "@aws-amplify/model-generator", - "version": "0.2.3", + "version": "0.2.4", "license": "Apache-2.0", "dependencies": { - "@aws-amplify/backend-output-schemas": "^0.4.0", - "@aws-amplify/deployed-backend-client": "^0.3.3", + "@aws-amplify/backend-output-schemas": "^0.5.0", + "@aws-amplify/deployed-backend-client": "^0.3.5", "@aws-amplify/graphql-generator": "^0.1.3", "@aws-amplify/graphql-types-generator": "^3.4.4", "@aws-sdk/client-appsync": "^3.398.0", @@ -22412,10 +22412,10 @@ }, "packages/platform-core": { "name": "@aws-amplify/platform-core", - "version": "0.3.3", + "version": "0.3.4", "license": "Apache-2.0", "dependencies": { - "@aws-amplify/plugin-types": "^0.6.0", + "@aws-amplify/plugin-types": "^0.7.0", "@aws-sdk/client-sts": "3.445.0", "is-ci": "^3.0.1", "uuid": "9.0.1", @@ -22844,7 +22844,7 @@ }, "packages/plugin-types": { "name": "@aws-amplify/plugin-types", - "version": "0.6.0", + "version": "0.7.0", "license": "Apache-2.0", "peerDependencies": { "aws-cdk-lib": "^2.110.1", @@ -22853,15 +22853,15 @@ }, "packages/sandbox": { "name": "@aws-amplify/sandbox", - "version": "0.3.9", + "version": "0.3.10", "license": "Apache-2.0", "dependencies": { - "@aws-amplify/backend-deployer": "0.4.2", - "@aws-amplify/backend-secret": "^0.3.3", + "@aws-amplify/backend-deployer": "0.4.3", + "@aws-amplify/backend-secret": "^0.3.4", "@aws-amplify/cli-core": "^0.2.0", - "@aws-amplify/client-config": "0.4.2", - "@aws-amplify/deployed-backend-client": "^0.3.4", - "@aws-amplify/platform-core": "^0.3.3", + "@aws-amplify/client-config": "0.5.0", + "@aws-amplify/deployed-backend-client": "^0.3.5", + "@aws-amplify/platform-core": "^0.3.4", "@aws-sdk/client-cloudformation": "^3.421.0", "@aws-sdk/credential-providers": "^3.382.0", "@aws-sdk/types": "^3.378.0", From 5744032e33848f7e35e67e94b6899635c75da33f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?MJ=E2=98=94?= Date: Fri, 5 Jan 2024 14:25:26 -0800 Subject: [PATCH 20/22] feat: test different package managers --- .../create_empty_amplify_project.ts | 11 ++++-- .../data_storage_auth_with_triggers.ts | 13 +++++-- .../test-project-setup/get_package_manager.ts | 34 +++++++++++++++++++ .../minimal_with_typescript_idioms.ts | 15 ++++++-- .../test_project_creator.ts | 10 ++++-- 5 files changed, 74 insertions(+), 9 deletions(-) create mode 100644 packages/integration-tests/src/test-project-setup/get_package_manager.ts diff --git a/packages/integration-tests/src/test-project-setup/create_empty_amplify_project.ts b/packages/integration-tests/src/test-project-setup/create_empty_amplify_project.ts index c6e68b284e..2c4fb3bebe 100644 --- a/packages/integration-tests/src/test-project-setup/create_empty_amplify_project.ts +++ b/packages/integration-tests/src/test-project-setup/create_empty_amplify_project.ts @@ -12,7 +12,12 @@ const TEST_PROJECT_PREFIX = 'test-project'; */ export const createEmptyAmplifyProject = async ( projectDirName: string, - parentDir: string + parentDir: string, + packageManagerProps: { + executable: string; + installCommand: string; + name: string; + } ): Promise<{ projectName: string; projectRoot: string; @@ -31,9 +36,9 @@ export const createEmptyAmplifyProject = async ( await setupDirAsEsmModule(projectAmplifyDir); await execa( - 'npm', + packageManagerProps?.executable ?? 'npm', [ - 'install', + packageManagerProps?.installCommand ?? 'install', '-D', '@aws-amplify/backend', '@aws-amplify/backend-cli', diff --git a/packages/integration-tests/src/test-project-setup/data_storage_auth_with_triggers.ts b/packages/integration-tests/src/test-project-setup/data_storage_auth_with_triggers.ts index 3ba3d589d9..5ae23a283f 100644 --- a/packages/integration-tests/src/test-project-setup/data_storage_auth_with_triggers.ts +++ b/packages/integration-tests/src/test-project-setup/data_storage_auth_with_triggers.ts @@ -26,12 +26,21 @@ export class DataStorageAuthWithTriggerTestProjectCreator private readonly cfnClient: CloudFormationClient, private readonly secretClient: SecretClient, private readonly lambdaClient: LambdaClient, - private readonly resourceFinder: DeployedResourcesFinder + private readonly resourceFinder: DeployedResourcesFinder, + private readonly packageManagerProps: { + executable: string; + installCommand: string; + name: string; + } ) {} createProject = async (e2eProjectDir: string): Promise => { const { projectName, projectRoot, projectAmplifyDir } = - await createEmptyAmplifyProject(this.name, e2eProjectDir); + await createEmptyAmplifyProject( + this.name, + e2eProjectDir, + this.packageManagerProps + ); const project = new DataStorageAuthWithTriggerTestProject( projectName, diff --git a/packages/integration-tests/src/test-project-setup/get_package_manager.ts b/packages/integration-tests/src/test-project-setup/get_package_manager.ts new file mode 100644 index 0000000000..8b9bada1d4 --- /dev/null +++ b/packages/integration-tests/src/test-project-setup/get_package_manager.ts @@ -0,0 +1,34 @@ +/** + * getPackageManagerProps - returns the package manager properties + */ +export const getPackageManagerProps = () => { + const { PACKAGE_MANAGER_EXECUTABLE = 'npm' } = process.env; + switch (PACKAGE_MANAGER_EXECUTABLE) { + case 'npm': + return { + name: 'npm', + executable: 'npm', + installCommand: 'install', + binaryRunner: 'npx', + }; + case 'yarn-classic': + case 'yarn-modern': + return { + name: 'yarn', + executable: 'yarn', + installCommand: 'add', + binaryRunner: 'yarn', + }; + case 'pnpm': + return { + name: 'pnpm', + executable: 'pnpm', + installCommand: 'add', + binaryRunner: 'pnpm', + }; + default: + throw new Error( + `Unknown package manager executable: ${PACKAGE_MANAGER_EXECUTABLE}` + ); + } +}; diff --git a/packages/integration-tests/src/test-project-setup/minimal_with_typescript_idioms.ts b/packages/integration-tests/src/test-project-setup/minimal_with_typescript_idioms.ts index da051c9785..83ed48cc05 100644 --- a/packages/integration-tests/src/test-project-setup/minimal_with_typescript_idioms.ts +++ b/packages/integration-tests/src/test-project-setup/minimal_with_typescript_idioms.ts @@ -15,11 +15,22 @@ export class MinimalWithTypescriptIdiomTestProjectCreator /** * Creates project creator. */ - constructor(private readonly cfnClient: CloudFormationClient) {} + constructor( + private readonly cfnClient: CloudFormationClient, + private readonly packageManagerProps: { + executable: string; + installCommand: string; + name: string; + } + ) {} createProject = async (e2eProjectDir: string): Promise => { const { projectName, projectRoot, projectAmplifyDir } = - await createEmptyAmplifyProject(this.name, e2eProjectDir); + await createEmptyAmplifyProject( + this.name, + e2eProjectDir, + this.packageManagerProps + ); const project = new MinimalWithTypescriptIdiomTestProject( projectName, diff --git a/packages/integration-tests/src/test-project-setup/test_project_creator.ts b/packages/integration-tests/src/test-project-setup/test_project_creator.ts index 58538384e7..8279718c54 100644 --- a/packages/integration-tests/src/test-project-setup/test_project_creator.ts +++ b/packages/integration-tests/src/test-project-setup/test_project_creator.ts @@ -6,6 +6,7 @@ import { MinimalWithTypescriptIdiomTestProjectCreator } from './minimal_with_typ import { LambdaClient } from '@aws-sdk/client-lambda'; import { DeployedResourcesFinder } from '../find_deployed_resource.js'; import { e2eToolingClientConfig } from '../e2e_tooling_client_config.js'; +import { getPackageManagerProps } from './get_package_manager.js'; export type TestProjectCreator = { readonly name: string; @@ -22,14 +23,19 @@ export const getTestProjectCreators = (): TestProjectCreator[] => { const lambdaClient = new LambdaClient(e2eToolingClientConfig); const resourceFinder = new DeployedResourcesFinder(cfnClient); const secretClient = getSecretClient(e2eToolingClientConfig); + const packageManagerProps = getPackageManagerProps(); testProjectCreators.push( new DataStorageAuthWithTriggerTestProjectCreator( cfnClient, secretClient, lambdaClient, - resourceFinder + resourceFinder, + packageManagerProps ), - new MinimalWithTypescriptIdiomTestProjectCreator(cfnClient) + new MinimalWithTypescriptIdiomTestProjectCreator( + cfnClient, + packageManagerProps + ) ); return testProjectCreators; }; From 7aadedd5e47f3c177094277887c64186474f3d5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?MJ=E2=98=94?= Date: Fri, 5 Jan 2024 15:09:05 -0800 Subject: [PATCH 21/22] chore: cleanup --- .github/workflows/poc-e2e-flow-test.yml | 1 - packages/integration-tests/src/test-e2e/deployment.test.ts | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/poc-e2e-flow-test.yml b/.github/workflows/poc-e2e-flow-test.yml index cc3b962814..f7ea08caa7 100644 --- a/.github/workflows/poc-e2e-flow-test.yml +++ b/.github/workflows/poc-e2e-flow-test.yml @@ -6,7 +6,6 @@ on: # TODO: need to change the trigger push: branches: - poc/package-manager-support - - poc/pms-deploy pull_request: branches: - poc/package-manager-support diff --git a/packages/integration-tests/src/test-e2e/deployment.test.ts b/packages/integration-tests/src/test-e2e/deployment.test.ts index de5a7c483f..8a59a2c869 100644 --- a/packages/integration-tests/src/test-e2e/deployment.test.ts +++ b/packages/integration-tests/src/test-e2e/deployment.test.ts @@ -1,5 +1,4 @@ import { after, afterEach, before, beforeEach, describe, it } from 'node:test'; -import { execa } from 'execa'; import { createTestDirectory, deleteTestDirectory, @@ -9,7 +8,7 @@ import fs from 'fs/promises'; import { shortUuid } from '../short_uuid.js'; import { getTestProjectCreators } from '../test-project-setup/test_project_creator.js'; import { TestProjectBase } from '../test-project-setup/test_project_base.js'; -import { homedir, userInfo } from 'os'; +import { userInfo } from 'os'; import { PredicatedActionBuilder } from '../process-controller/predicated_action_queue_builder.js'; import { amplifyCli } from '../process-controller/process_controller.js'; import path from 'path'; From 20f72cef52bd00a1990c44c10c18c0b07579e4e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?MJ=E2=98=94?= Date: Fri, 5 Jan 2024 15:13:23 -0800 Subject: [PATCH 22/22] chore: add readonly --- .../package_manager_controller.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/create-amplify/src/package-manager-controller/package_manager_controller.ts b/packages/create-amplify/src/package-manager-controller/package_manager_controller.ts index 7126c4cff6..ae3fd6879e 100644 --- a/packages/create-amplify/src/package-manager-controller/package_manager_controller.ts +++ b/packages/create-amplify/src/package-manager-controller/package_manager_controller.ts @@ -15,10 +15,10 @@ export abstract class PackageManagerController { */ constructor( readonly projectRoot: string, - protected executable: string, - protected binaryRunner: string, - protected initDefault: string[], - protected installCommand: string, + protected readonly executable: string, + protected readonly binaryRunner: string, + protected readonly initDefault: string[], + protected readonly installCommand: string, protected readonly fsp = _fsp, protected readonly path = _path, protected readonly execa = _execa,