diff options
author | 2022-01-05 04:54:37 -0800 | |
---|---|---|
committer | 2022-01-05 13:12:11 -0800 | |
commit | 1004e924ff2d53b14cb2e3a5c32ed0e4135fd89a (patch) | |
tree | 373067cb2af44668c7df2de936c066f6b94ca0b2 /integration/macro | |
parent | c013ede2270d6a07c2f895ac57e0f657b904feb2 (diff) | |
download | bun-1004e924ff2d53b14cb2e3a5c32ed0e4135fd89a.tar.gz bun-1004e924ff2d53b14cb2e3a5c32ed0e4135fd89a.tar.zst bun-1004e924ff2d53b14cb2e3a5c32ed0e4135fd89a.zip |
minimal integration tests for macros
Diffstat (limited to '')
-rw-r--r-- | integration/macro/assert.tsx | 4 | ||||
-rw-r--r-- | integration/macro/fetchSync.tsx | 8 | ||||
-rw-r--r-- | integration/macro/hello-fetch-macro.tsx | 5 | ||||
-rw-r--r-- | integration/macro/loadMocks.tsx | 30 |
4 files changed, 47 insertions, 0 deletions
diff --git a/integration/macro/assert.tsx b/integration/macro/assert.tsx new file mode 100644 index 000000000..8a6e4d822 --- /dev/null +++ b/integration/macro/assert.tsx @@ -0,0 +1,4 @@ +// This logs the result at build time +export function unreachable(call) { + throw new Error(call.arguments[0].toString() || "unreachable"); +} diff --git a/integration/macro/fetchSync.tsx b/integration/macro/fetchSync.tsx new file mode 100644 index 000000000..ebe1566e6 --- /dev/null +++ b/integration/macro/fetchSync.tsx @@ -0,0 +1,8 @@ +export async function fetchSync(ctx) { + const str = ctx.arguments[0].toString(); + + const response = await fetch(str); + const text = await response.text(); + + return <string value={text} />; +} diff --git a/integration/macro/hello-fetch-macro.tsx b/integration/macro/hello-fetch-macro.tsx new file mode 100644 index 000000000..fa0de4a9d --- /dev/null +++ b/integration/macro/hello-fetch-macro.tsx @@ -0,0 +1,5 @@ +import { fetchSync } from "macro:./fetchSync.tsx"; + +const synchronousFetch = fetchSync(`https://example.com`); + +console.log(synchronousFetch); diff --git a/integration/macro/loadMocks.tsx b/integration/macro/loadMocks.tsx new file mode 100644 index 000000000..4b7993c6d --- /dev/null +++ b/integration/macro/loadMocks.tsx @@ -0,0 +1,30 @@ +import { unreachable } from "macro:./assert"; + +if (process.env.NODE_ENV !== "test") + unreachable("This module should only be imported in tests"); + +export const mockData = { + Copilot: { + id: "Copilot", + name: "Copilot", + description: "Copilot", + icon: "https://s3.amazonaws.com/copilot-public/images/icons/Copilot.png", + color: "#00AEEF", + type: "service", + tags: ["copilot"], + categories: ["copilot"], + links: [ + { + id: "Copilot", + name: "Copilot", + url: "https://copilot.io", + description: "Copilot", + icon: "https://s3.amazonaws.com/copilot-public/images/icons/Copilot.png", + color: "#00AEEF", + type: "service", + tags: ["copilot"], + categories: ["copilot"], + }, + ], + }, +}; |