frontity
Version:
Frontity cli and entry point to other packages
82 lines (71 loc) • 2.55 kB
text/typescript
import dev from "../dev";
import * as utils from "../../utils";
import * as devCmd from "../../commands/dev";
import { EventPromised } from "../../utils/eventPromised";
jest.mock("../../commands/dev");
const mockedUtils = utils as any;
const mockedDev = devCmd as jest.Mocked<typeof devCmd>;
describe("dev", () => {
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 dev({});
expect(mockedDev.default.mock.calls).toMatchSnapshot();
});
test("should get values from ENV variables", async () => {
process.env.FRONTITY_DEV_TARGET = "es5";
process.env.FRONTITY_DEV_PORT = "3001";
process.env.FRONTITY_DEV_HTTPS = "true";
process.env.FRONTITY_DEV_PRODUCTION = "true";
process.env.FRONTITY_DEV_PUBLIC_PATH = "/public/path";
process.env.FRONTITY_DEV_DONT_OPEN_BROWSER = "true";
process.env.FRONTITY_DEV_ANALYZE = "true";
await dev({});
expect(mockedDev.default.mock.calls).toMatchSnapshot();
});
test("should ignore ENV variables for passed arguments", async () => {
process.env.FRONTITY_DEV_TARGET = "es5";
process.env.FRONTITY_DEV_PORT = "3001";
process.env.FRONTITY_DEV_HTTPS = "true";
process.env.FRONTITY_DEV_PRODUCTION = "true";
process.env.FRONTITY_DEV_PUBLIC_PATH = "/public/path";
process.env.FRONTITY_DEV_DONT_OPEN_BROWSER = "true";
process.env.FRONTITY_DEV_ANALYZE = "true";
await dev({
target: "module",
port: "4000",
https: false,
production: false,
publicPath: "/static",
dontOpenBrowser: false,
analyze: false,
});
expect(mockedDev.default.mock.calls).toMatchSnapshot();
});
test("should fail if an invalid target is passed", async () => {
try {
await dev({ target: "not-valid-target" });
} catch (error) {
// Ignore error.
}
expect(mockedDev.default).not.toHaveBeenCalled();
expect(mockedUtils.errorLogger.mock.calls).toMatchSnapshot();
});
test("should fail if an invalid port is passed", async () => {
try {
await dev({ port: "not-valid-port" });
} catch (error) {
// Ignore error.
}
expect(mockedDev.default).not.toHaveBeenCalled();
expect(mockedUtils.errorLogger.mock.calls).toMatchSnapshot();
});
});