minimal integration tests for macros

This commit is contained in:
Jarred Sumner
2022-01-05 04:54:37 -08:00
parent c013ede227
commit 1004e924ff
4 changed files with 47 additions and 0 deletions

View File

@@ -0,0 +1,4 @@
// This logs the result at build time
export function unreachable(call) {
throw new Error(call.arguments[0].toString() || "unreachable");
}

View File

@@ -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} />;
}

View File

@@ -0,0 +1,5 @@
import { fetchSync } from "macro:./fetchSync.tsx";
const synchronousFetch = fetchSync(`https://example.com`);
console.log(synchronousFetch);

View File

@@ -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"],
},
],
},
};