one
Version:
One is a new React Framework that makes Vite serve both native and web.
64 lines (63 loc) • 1.81 kB
JavaScript
import { beforeEach, describe, expect, it, vi } from "vitest";
import { run } from "./patch.native.js";
var {
patchMock,
loadUserOneOptionsMock
} = vi.hoisted(function () {
return {
patchMock: vi.fn(),
loadUserOneOptionsMock: vi.fn()
};
});
vi.mock("vxrn", function () {
return {
patch: patchMock
};
});
vi.mock("../vite/loadConfig", function () {
return {
loadUserOneOptions: loadUserOneOptionsMock
};
});
describe("one patch", function () {
beforeEach(function () {
patchMock.mockReset();
loadUserOneOptionsMock.mockReset();
});
it("applies built-in patches when a native-only app has no vite config", async function () {
loadUserOneOptionsMock.mockRejectedValueOnce(new Error("No config config in /tmp/native-only-app. Is this the correct directory?"));
await run({});
expect(patchMock).toHaveBeenCalledWith({
root: process.cwd(),
deps: void 0,
force: void 0
});
});
it("passes configured user patches through to vxrn", async function () {
var patches = {
"example-package": {
version: "1",
"index.js": "export default 1"
}
};
loadUserOneOptionsMock.mockResolvedValueOnce({
oneOptions: {
patches
}
});
await run({
force: true
});
expect(patchMock).toHaveBeenCalledWith({
root: process.cwd(),
deps: patches,
force: true
});
});
it("keeps failing when a vite config exists but does not load one", async function () {
loadUserOneOptionsMock.mockRejectedValueOnce(new Error("One not loaded properly, is the one() plugin in your vite.config.ts?"));
await expect(run({})).rejects.toThrow("One not loaded properly");
expect(patchMock).not.toHaveBeenCalled();
});
});
//# sourceMappingURL=patch.test.native.js.map