UNPKG

frontity

Version:

Frontity cli and entry point to other packages

63 lines (53 loc) 1.93 kB
import build from "../build"; import * as utils from "../../utils"; import * as buildCmd from "../../commands/build"; import { EventPromised } from "../../utils/eventPromised"; jest.mock("../../commands/build"); const mockedUtils = utils as any; const mockedDev = buildCmd as jest.Mocked<typeof buildCmd>; describe("build", () => { beforeEach(() => { mockedUtils.isFrontityProjectRoot = jest.fn(); mockedUtils.errorLogger = jest.fn(() => { throw new Error("Process terminated"); }); mockedDev.default.mockReset(); mockedDev.default.mockReturnValue( new EventPromised((resolve) => resolve()) ); }); test("should receive default values", async () => { await build({}); expect(mockedDev.default.mock.calls).toMatchSnapshot(); }); test("should get values from ENV variables", async () => { process.env.FRONTITY_BUILD_TARGET = "es5"; process.env.FRONTITY_BUILD_DEVELOPMENT = "true"; process.env.FRONTITY_BUILD_PUBLIC_PATH = "/public/path"; process.env.FRONTITY_BUILD_ANALYZE = "true"; await build({}); expect(mockedDev.default.mock.calls).toMatchSnapshot(); }); test("should ignore ENV variables for passed arguments", async () => { process.env.FRONTITY_BUILD_TARGET = "es5"; process.env.FRONTITY_BUILD_DEVELOPMENT = "true"; process.env.FRONTITY_BUILD_PUBLIC_PATH = "/public/path"; process.env.FRONTITY_BUILD_ANALYZE = "true"; await build({ target: "module", development: false, publicPath: "/static", analyze: false, }); expect(mockedDev.default.mock.calls).toMatchSnapshot(); }); test("should fail if an invalid target is passed", async () => { try { await build({ target: "not-valid-target" }); } catch (error) { // Ignore error. } expect(mockedDev.default).not.toHaveBeenCalled(); expect(mockedUtils.errorLogger.mock.calls).toMatchSnapshot(); }); });