aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/packages/turbo-codemod/__tests__/get-turbo-upgrade-command.test.ts
diff options
context:
space:
mode:
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.ts576
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();
- });
-});