diff options
Diffstat (limited to 'packages/turbo-codemod/__tests__/get-turbo-upgrade-command.test.ts')
| -rw-r--r-- | packages/turbo-codemod/__tests__/get-turbo-upgrade-command.test.ts | 576 |
1 files changed, 0 insertions, 576 deletions
diff --git a/packages/turbo-codemod/__tests__/get-turbo-upgrade-command.test.ts b/packages/turbo-codemod/__tests__/get-turbo-upgrade-command.test.ts deleted file mode 100644 index 1015589..0000000 --- a/packages/turbo-codemod/__tests__/get-turbo-upgrade-command.test.ts +++ /dev/null @@ -1,576 +0,0 @@ -import { setupTestFixtures } from "@turbo/test-utils"; -import getTurboUpgradeCommand from "../src/commands/migrate/steps/getTurboUpgradeCommand"; -import * as utils from "../src/commands/migrate/utils"; -import * as getPackageManager from "../src/utils/getPackageManager"; -import * as getPackageManagerVersion from "../src/utils/getPackageManagerVersion"; - -const LOCAL_INSTALL_COMMANDS = [ - // npm - workspaces - [ - "latest", - "npm", - "7.0.0", - "normal-workspaces-dev-install", - "npm install turbo@latest --save-dev", - ], - [ - "1.6.3", - "npm", - "7.0.0", - "normal-workspaces-dev-install", - "npm install turbo@1.6.3 --save-dev", - ], - [ - "canary", - "npm", - "7.0.0", - "normal-workspaces-dev-install", - "npm install turbo@canary --save-dev", - ], - ["latest", "npm", "7.0.0", "normal-workspaces", "npm install turbo@latest"], - // npm - single package - [ - "latest", - "npm", - "7.0.0", - "single-package-dev-install", - "npm install turbo@latest --save-dev", - ], - ["latest", "npm", "7.0.0", "single-package", "npm install turbo@latest"], - // pnpm - workspaces - [ - "latest", - "pnpm", - "7.0.0", - "pnpm-workspaces-dev-install", - "pnpm install turbo@latest --save-dev -w", - ], - [ - "1.6.3", - "pnpm", - "7.0.0", - "pnpm-workspaces-dev-install", - "pnpm install turbo@1.6.3 --save-dev -w", - ], - [ - "canary", - "pnpm", - "7.0.0", - "pnpm-workspaces-dev-install", - "pnpm install turbo@canary --save-dev -w", - ], - [ - "latest", - "pnpm", - "7.0.0", - "pnpm-workspaces", - "pnpm install turbo@latest -w", - ], - // pnpm - single package - [ - "latest", - "pnpm", - "7.0.0", - "single-package-dev-install", - "pnpm install turbo@latest --save-dev", - ], - ["latest", "pnpm", "7.0.0", "single-package", "pnpm install turbo@latest"], - // yarn 1.x - workspaces - [ - "latest", - "yarn", - "1.22.19", - "normal-workspaces-dev-install", - "yarn add turbo@latest --dev -W", - ], - [ - "latest", - "yarn", - "1.22.19", - "normal-workspaces", - "yarn add turbo@latest -W", - ], - [ - "1.6.3", - "yarn", - "1.22.19", - "normal-workspaces-dev-install", - "yarn add turbo@1.6.3 --dev -W", - ], - [ - "canary", - "yarn", - "1.22.19", - "normal-workspaces-dev-install", - "yarn add turbo@canary --dev -W", - ], - // yarn 1.x - single package - [ - "latest", - "yarn", - "1.22.19", - "single-package-dev-install", - "yarn add turbo@latest --dev", - ], - ["latest", "yarn", "1.22.19", "single-package", "yarn add turbo@latest"], - // yarn 2.x - workspaces - [ - "latest", - "yarn", - "2.3.4", - "normal-workspaces-dev-install", - "yarn add turbo@latest --dev", - ], - ["latest", "yarn", "2.3.4", "normal-workspaces", "yarn add turbo@latest"], - [ - "1.6.3", - "yarn", - "2.3.4", - "normal-workspaces-dev-install", - "yarn add turbo@1.6.3 --dev", - ], - [ - "canary", - "yarn", - "2.3.4", - "normal-workspaces-dev-install", - "yarn add turbo@canary --dev", - ], - // yarn 2.x - single package - [ - "latest", - "yarn", - "2.3.4", - "single-package-dev-install", - "yarn add turbo@latest --dev", - ], - ["latest", "yarn", "2.3.4", "single-package", "yarn add turbo@latest"], - // yarn 3.x - workspaces - [ - "latest", - "yarn", - "3.3.4", - "normal-workspaces-dev-install", - "yarn add turbo@latest --dev", - ], - ["latest", "yarn", "3.3.4", "normal-workspaces", "yarn add turbo@latest"], - [ - "1.6.3", - "yarn", - "3.3.4", - "normal-workspaces-dev-install", - "yarn add turbo@1.6.3 --dev", - ], - [ - "canary", - "yarn", - "3.3.4", - "normal-workspaces-dev-install", - "yarn add turbo@canary --dev", - ], - // yarn 3.x - single package - [ - "latest", - "yarn", - "3.3.4", - "single-package-dev-install", - "yarn add turbo@latest --dev", - ], - ["latest", "yarn", "3.3.4", "single-package", "yarn add turbo@latest"], -]; - -const GLOBAL_INSTALL_COMMANDS = [ - // npm - [ - "latest", - "npm", - "7.0.0", - "normal-workspaces-dev-install", - "npm install turbo@latest --global", - ], - [ - "1.6.3", - "npm", - "7.0.0", - "normal-workspaces-dev-install", - "npm install turbo@1.6.3 --global", - ], - [ - "latest", - "npm", - "7.0.0", - "normal-workspaces", - "npm install turbo@latest --global", - ], - [ - "latest", - "npm", - "7.0.0", - "single-package", - "npm install turbo@latest --global", - ], - [ - "latest", - "npm", - "7.0.0", - "single-package-dev-install", - "npm install turbo@latest --global", - ], - // pnpm - [ - "latest", - "pnpm", - "7.0.0", - "pnpm-workspaces-dev-install", - "pnpm install turbo@latest --global", - ], - [ - "1.6.3", - "pnpm", - "7.0.0", - "pnpm-workspaces-dev-install", - "pnpm install turbo@1.6.3 --global", - ], - [ - "latest", - "pnpm", - "7.0.0", - "pnpm-workspaces", - "pnpm install turbo@latest --global", - ], - [ - "latest", - "pnpm", - "7.0.0", - "single-package", - "pnpm install turbo@latest --global", - ], - [ - "latest", - "pnpm", - "7.0.0", - "single-package-dev-install", - "pnpm install turbo@latest --global", - ], - // yarn 1.x - [ - "latest", - "yarn", - "1.22.19", - "normal-workspaces-dev-install", - "yarn global add turbo@latest", - ], - [ - "latest", - "yarn", - "1.22.19", - "normal-workspaces", - "yarn global add turbo@latest", - ], - [ - "1.6.3", - "yarn", - "1.22.19", - "normal-workspaces-dev-install", - "yarn global add turbo@1.6.3", - ], - [ - "latest", - "yarn", - "1.22.19", - "single-package", - "yarn global add turbo@latest", - ], - [ - "latest", - "yarn", - "1.22.19", - "single-package-dev-install", - "yarn global add turbo@latest", - ], - // yarn 2.x - [ - "latest", - "yarn", - "2.3.4", - "normal-workspaces-dev-install", - "yarn global add turbo@latest", - ], - [ - "latest", - "yarn", - "2.3.4", - "normal-workspaces", - "yarn global add turbo@latest", - ], - [ - "1.6.3", - "yarn", - "2.3.4", - "normal-workspaces-dev-install", - "yarn global add turbo@1.6.3", - ], - ["latest", "yarn", "2.3.4", "single-package", "yarn global add turbo@latest"], - [ - "latest", - "yarn", - "2.3.4", - "single-package-dev-install", - "yarn global add turbo@latest", - ], - // yarn 3.x - [ - "latest", - "yarn", - "3.3.3", - "normal-workspaces-dev-install", - "yarn global add turbo@latest", - ], - [ - "latest", - "yarn", - "3.3.3", - "normal-workspaces", - "yarn global add turbo@latest", - ], - [ - "1.6.3", - "yarn", - "3.3.3", - "normal-workspaces-dev-install", - "yarn global add turbo@1.6.3", - ], - ["latest", "yarn", "3.3.4", "single-package", "yarn global add turbo@latest"], - [ - "latest", - "yarn", - "3.3.4", - "single-package-dev-install", - "yarn global add turbo@latest", - ], -]; - -describe("get-turbo-upgrade-command", () => { - const { useFixture } = setupTestFixtures({ - directory: __dirname, - test: "get-turbo-upgrade-command", - }); - - test.each(LOCAL_INSTALL_COMMANDS)( - "returns correct upgrade command for local install of turbo@%s using %s@%s (fixture: %s)", - ( - turboVersion, - packageManager, - packageManagerVersion, - fixture, - expectedUpgradeCommand - ) => { - const { root } = useFixture({ - fixture, - }); - - const mockedExec = jest - .spyOn(utils, "exec") - .mockImplementation((command: string) => { - // fail the check for the turbo, and package manager bins to force local - if (command.includes("bin")) { - return undefined; - } - }); - const mockedGetPackageManagerVersion = jest - .spyOn(getPackageManagerVersion, "default") - .mockReturnValue(packageManagerVersion); - const mockedGetPackageManager = jest - .spyOn(getPackageManager, "default") - .mockReturnValue(packageManager as getPackageManager.PackageManager); - - // get the command - const upgradeCommand = getTurboUpgradeCommand({ - directory: root, - to: turboVersion === "latest" ? undefined : turboVersion, - }); - - expect(upgradeCommand).toEqual(expectedUpgradeCommand); - - mockedExec.mockRestore(); - mockedGetPackageManager.mockRestore(); - mockedGetPackageManagerVersion.mockRestore(); - } - ); - - test.each(GLOBAL_INSTALL_COMMANDS)( - "returns correct upgrade command for global install of turbo@%s using %s@%s (fixture: %s)", - ( - turboVersion, - packageManager, - packageManagerVersion, - fixture, - expectedUpgradeCommand - ) => { - const { root } = useFixture({ - fixture, - }); - - const mockedExec = jest - .spyOn(utils, "exec") - .mockImplementation((command: string) => { - if (command === "turbo bin") { - return `/global/${packageManager}/bin/turbo`; - } - if (command.includes(packageManager)) { - return `/global/${packageManager}/bin`; - } - }); - const mockedGetPackageManagerVersion = jest - .spyOn(getPackageManagerVersion, "default") - .mockReturnValue(packageManagerVersion); - const mockedGetPackageManager = jest - .spyOn(getPackageManager, "default") - .mockReturnValue(packageManager as getPackageManager.PackageManager); - - // get the command - const upgradeCommand = getTurboUpgradeCommand({ - directory: root, - to: turboVersion === "latest" ? undefined : turboVersion, - }); - - expect(upgradeCommand).toEqual(expectedUpgradeCommand); - - mockedExec.mockRestore(); - mockedGetPackageManager.mockRestore(); - mockedGetPackageManagerVersion.mockRestore(); - } - ); - - test("fails gracefully if no package.json exists", () => { - const { root } = useFixture({ - fixture: "no-package", - }); - - const mockedExec = jest - .spyOn(utils, "exec") - .mockImplementation((command: string) => { - // fail the check for the turbo, and package manager bins to force local - if (command.includes("bin")) { - return undefined; - } - }); - - const mockedGetPackageManagerVersion = jest - .spyOn(getPackageManagerVersion, "default") - .mockReturnValue("8.0.0"); - const mockedGetPackageManager = jest - .spyOn(getPackageManager, "default") - .mockReturnValue("pnpm" as getPackageManager.PackageManager); - - // get the command - const upgradeCommand = getTurboUpgradeCommand({ - directory: root, - }); - - expect(upgradeCommand).toEqual(undefined); - - mockedExec.mockRestore(); - mockedGetPackageManager.mockRestore(); - mockedGetPackageManagerVersion.mockRestore(); - }); - - test("fails gracefully if turbo cannot be found in package.json", () => { - const { root } = useFixture({ - fixture: "no-turbo", - }); - - const mockedExec = jest - .spyOn(utils, "exec") - .mockImplementation((command: string) => { - // fail the check for the turbo, and package manager bins to force local - if (command.includes("bin")) { - return undefined; - } - }); - - const mockedGetPackageManagerVersion = jest - .spyOn(getPackageManagerVersion, "default") - .mockReturnValue("8.0.0"); - const mockedGetPackageManager = jest - .spyOn(getPackageManager, "default") - .mockReturnValue("pnpm" as getPackageManager.PackageManager); - - // get the command - const upgradeCommand = getTurboUpgradeCommand({ - directory: root, - }); - - expect(upgradeCommand).toEqual(undefined); - - mockedExec.mockRestore(); - mockedGetPackageManager.mockRestore(); - mockedGetPackageManagerVersion.mockRestore(); - }); - - test("fails gracefully if package.json has no deps or devDeps", () => { - const { root } = useFixture({ - fixture: "no-deps", - }); - - const mockedExec = jest - .spyOn(utils, "exec") - .mockImplementation((command: string) => { - // fail the check for the turbo, and package manager bins to force local - if (command.includes("bin")) { - return undefined; - } - }); - - const mockedGetPackageManagerVersion = jest - .spyOn(getPackageManagerVersion, "default") - .mockReturnValue("8.0.0"); - const mockedGetPackageManager = jest - .spyOn(getPackageManager, "default") - .mockReturnValue("pnpm" as getPackageManager.PackageManager); - - // get the command - const upgradeCommand = getTurboUpgradeCommand({ - directory: root, - }); - - expect(upgradeCommand).toEqual(undefined); - - mockedExec.mockRestore(); - mockedGetPackageManager.mockRestore(); - mockedGetPackageManagerVersion.mockRestore(); - }); - - test("fails gracefully if can't find packageManager", () => { - const { root } = useFixture({ - fixture: "no-deps", - }); - - const mockedExec = jest - .spyOn(utils, "exec") - .mockImplementation((command: string) => { - // fail the check for the turbo, and package manager bins to force local - if (command.includes("bin")) { - return undefined; - } - }); - - const mockedGetPackageManagerVersion = jest - .spyOn(getPackageManagerVersion, "default") - .mockReturnValue("8.0.0"); - const mockedGetPackageManager = jest - .spyOn(getPackageManager, "default") - .mockReturnValue("pnpm" as getPackageManager.PackageManager); - - // get the command - const upgradeCommand = getTurboUpgradeCommand({ - directory: root, - }); - - expect(upgradeCommand).toEqual(undefined); - - mockedExec.mockRestore(); - mockedGetPackageManager.mockRestore(); - mockedGetPackageManagerVersion.mockRestore(); - }); -}); |
