aboutsummaryrefslogtreecommitdiff
path: root/integration/bunjs-only-snippets/transpiler.test.js
diff options
context:
space:
mode:
Diffstat (limited to 'integration/bunjs-only-snippets/transpiler.test.js')
-rw-r--r--integration/bunjs-only-snippets/transpiler.test.js51
1 files changed, 51 insertions, 0 deletions
diff --git a/integration/bunjs-only-snippets/transpiler.test.js b/integration/bunjs-only-snippets/transpiler.test.js
new file mode 100644
index 000000000..2c59c10b8
--- /dev/null
+++ b/integration/bunjs-only-snippets/transpiler.test.js
@@ -0,0 +1,51 @@
+import { expect, it, describe } from "bun:test";
+
+describe("Bun.Transpiler", () => {
+ const transpiler = new Bun.Transpiler({
+ loader: "tsx",
+ define: {
+ "process.env.NODE_ENV": JSON.stringify("development"),
+ },
+ platform: "browser",
+ });
+
+ const code = `import { useParams } from "remix";
+ import type { LoaderFunction, ActionFunction } from "remix";
+
+ export const loader: LoaderFunction = async ({
+ params
+ }) => {
+ console.log(params.postId);
+ };
+
+ export const action: ActionFunction = async ({
+ params
+ }) => {
+ console.log(params.postId);
+ };
+
+ export default function PostRoute() {
+ const params = useParams();
+ console.log(params.postId);
+ }
+
+ `;
+
+ describe("scanImports", () => {
+ it("reports import paths, excluding types", () => {
+ const imports = transpiler.scanImports(code);
+ expect(imports.filter(({ path }) => path === "remix")).toHaveLength(1);
+ });
+ });
+
+ describe("scan", () => {
+ it("reports all export names", () => {
+ const { imports, exports } = transpiler.scan(code);
+
+ expect(exports[0]).toBe("loader");
+ expect(exports[1]).toBe("action");
+ expect(exports[2]).toBe("default");
+ expect(exports).toHaveLength(3);
+ });
+ });
+});