one
Version:
One is a new React Framework that makes Vite serve both native and web.
90 lines (88 loc) • 4.93 kB
JavaScript
;
var import_path = require("path");
var import_url = require("url");
var import_vitest = require("vitest");
var import_vite = require("vite");
var import_toServerOutputPath = require("./toServerOutputPath.native.js");
(0, import_vitest.describe)("path.posix.join \u2014 forward-slash output on every platform", function () {
(0, import_vitest.it)("joins server-output paths", function () {
(0, import_vitest.expect)(import_path.posix.join("dist", "server", "foo.js")).toBe("dist/server/foo.js");
});
(0, import_vitest.it)("joins middleware-output paths", function () {
(0, import_vitest.expect)(import_path.posix.join("dist", "middlewares", "mw-hash.js")).toBe("dist/middlewares/mw-hash.js");
});
(0, import_vitest.it)("strips redundant `./` segments", function () {
(0, import_vitest.expect)(import_path.posix.join("./app", "./_layout.tsx")).toBe("app/_layout.tsx");
});
(0, import_vitest.it)("produces a bare filename for a `.` directory component", function () {
(0, import_vitest.expect)(import_path.posix.join(".", "foo-[hash].cjs")).toBe("foo-[hash].cjs");
});
(0, import_vitest.it)("preserves nested-chunk subdirectories", function () {
(0, import_vitest.expect)(import_path.posix.join("subdir", "foo-[hash].cjs")).toBe("subdir/foo-[hash].cjs");
});
});
(0, import_vitest.describe)("pathToFileURL \u2014 canonical file:// URL specifier", function () {
(0, import_vitest.it)("produces a forward-slash href on every platform", function () {
var href = (0, import_url.pathToFileURL)("/proj/src/setup.ts").href;
(0, import_vitest.expect)(href.startsWith("file://")).toBe(true);
(0, import_vitest.expect)(href.includes("\\")).toBe(false);
});
(0, import_vitest.it)("round-trips through JSON.stringify without backslashes leaking in", function () {
var href = (0, import_url.pathToFileURL)("/proj/src/setup.ts").href;
var stringified = JSON.stringify(href);
(0, import_vitest.expect)(stringified.includes("\\\\")).toBe(false);
});
});
(0, import_vitest.describe)("Vite normalizePath \u2014 converts on Windows, no-op on POSIX", function () {
(0, import_vitest.it)("preserves a forward-slash path unchanged", function () {
(0, import_vitest.expect)((0, import_vite.normalizePath)("/proj/src/foo.tsx")).toBe("/proj/src/foo.tsx");
});
(0, import_vitest.it)("converts backslashes (Windows-shaped input)", function () {
var input = String.raw`C:\proj\src\foo.tsx`;
var out = (0, import_vite.normalizePath)(input);
if (process.platform === "win32") {
(0, import_vitest.expect)(out).toBe("C:/proj/src/foo.tsx");
} else {
(0, import_vitest.expect)(out).toBe(input);
}
});
});
(0, import_vitest.describe)("toServerOutputPath \u2014 cross-platform parity", function () {
var cases = [["foo.js", "dist", "dist/server/foo.js"], ["subdir/bar.js", "dist", "dist/server/subdir/bar.js"], ["dist/server/foo.js", "dist", "dist/server/foo.js"], [String.raw`dist\server\foo.js`, "dist", "dist/server/foo.js"], [String.raw`subdir\bar.js`, "dist", "dist/server/subdir/bar.js"], ["foo/dist/server/bar.js", "dist", "dist/server/foo/dist/server/bar.js"], ["dist/server", "dist", "dist/server"], ["baz.js", "build", "build/server/baz.js"]];
var _iteratorNormalCompletion = true,
_didIteratorError = false,
_iteratorError = void 0;
try {
var _loop = function () {
var [input, outDir, expected] = _step.value;
(0, import_vitest.it)(`("${input}", "${outDir}") \u2192 "${expected}"`, function () {
(0, import_vitest.expect)((0, import_toServerOutputPath.toServerOutputPath)(input, outDir)).toBe(expected);
});
};
for (var _iterator = cases[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _loop();
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return != null) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
});
(0, import_vitest.describe)("seed bug regression \u2014 SSR loader path doubling on Windows", function () {
(0, import_vitest.it)("does not double-prefix backslash-shaped server-output input", function () {
var windowsShapedInput = String.raw`dist\server\assets\time_ssr-COqAsxju.js`;
(0, import_vitest.expect)((0, import_toServerOutputPath.toServerOutputPath)(windowsShapedInput, "dist")).toBe("dist/server/assets/time_ssr-COqAsxju.js");
});
(0, import_vitest.it)("does not double-prefix already-forward-slashed input", function () {
var posixInput = "dist/server/assets/time_ssr-COqAsxju.js";
(0, import_vitest.expect)((0, import_toServerOutputPath.toServerOutputPath)(posixInput, "dist")).toBe(posixInput);
});
});
//# sourceMappingURL=posixPathContract.test.native.js.map