diff --git a/packages/@apphosting/common/src/index.spec.ts b/packages/@apphosting/common/src/index.spec.ts index 27bdbd57..3993469f 100644 --- a/packages/@apphosting/common/src/index.spec.ts +++ b/packages/@apphosting/common/src/index.spec.ts @@ -2,7 +2,56 @@ import assert from "assert"; import fs from "fs"; import path from "path"; import os from "os"; -import { updateOrCreateGitignore } from "./index"; +import { getBuildOptions, updateOrCreateGitignore } from "./index"; + +const originalCwd = process.cwd.bind(process); + +describe("get a set of build options", () => { + const mockCwd = "/fake/project/"; + beforeEach(() => { + process.cwd = () => mockCwd; + }); + + afterEach(() => { + process.cwd = originalCwd; + delete process.env.MONOREPO_COMMAND; + delete process.env.MONOREPO_BUILD_ARGS; + delete process.env.GOOGLE_BUILDABLE; + delete process.env.MONOREPO_PROJECT; + }); + + it("returns monorepo build options when MONOREPO_COMMAND is set", () => { + process.env.MONOREPO_COMMAND = "turbo"; + process.env.MONOREPO_BUILD_ARGS = "--filter=web,--env-mode=strict"; + process.env.GOOGLE_BUILDABLE = "/workspace/apps/web"; + process.env.MONOREPO_PROJECT = "web"; + + const expectedOptions = { + buildCommand: "turbo", + buildArgs: ["run", "build", "--filter=web", "--env-mode=strict"], + projectDirectory: "/workspace/apps/web", + projectName: "web", + }; + assert.deepStrictEqual( + getBuildOptions(), + expectedOptions, + "Monorepo build options are incorrect", + ); + }); + + it("returns standard build options when MONOREPO_COMMAND is not set", () => { + const expectedOptions = { + buildCommand: "npm", + buildArgs: ["run", "build"], + projectDirectory: process.cwd(), + }; + assert.deepStrictEqual( + getBuildOptions(), + expectedOptions, + "Standard build options are incorrect", + ); + }); +}); describe("update or create .gitignore", () => { let tmpDir: string; diff --git a/packages/@apphosting/common/src/index.ts b/packages/@apphosting/common/src/index.ts index f16d32db..7ad051de 100644 --- a/packages/@apphosting/common/src/index.ts +++ b/packages/@apphosting/common/src/index.ts @@ -130,7 +130,7 @@ export function getBuildOptions(): BuildOptions { if (process.env.MONOREPO_COMMAND) { return { buildCommand: process.env.MONOREPO_COMMAND, - buildArgs: ["run", "build"].concat(process.env.MONOREPO_BUILD_ARGS?.split(".") || []), + buildArgs: ["run", "build"].concat(process.env.MONOREPO_BUILD_ARGS?.split(",") || []), projectDirectory: process.env.GOOGLE_BUILDABLE || "", projectName: process.env.MONOREPO_PROJECT, };