Skip to content

Commit

Permalink
refactor test to read file
Browse files Browse the repository at this point in the history
  • Loading branch information
ddalpange committed Sep 6, 2021
1 parent be9be69 commit 1ce5e53
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 31 deletions.
14 changes: 14 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Deno test",
"type": "pwa-node",
"request": "launch",
"cwd": "${workspaceFolder}",
"runtimeExecutable": "deno",
"runtimeArgs": ["test", "--inspect-brk", "-A", "--unstable"],
"attachSimplePort": 9229
}
]
}
8 changes: 8 additions & 0 deletions www-snippet/__mocks__/react-component/LoremIpsum
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import React, { memo, PropsWithChildren } from "react";
export interface LoremIpsumProps {}

const LoremIpsum = (({}: PropsWithChildren<LoremIpsumProps>) => {
return <>LoremIpsum</>;
});

export default memo(LoremIpsum);
12 changes: 12 additions & 0 deletions www-snippet/__mocks__/react-component/LoremIpsumWithRef
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import React, { forwardRef, memo } from "react";
type TypeRef = any;

export interface LoremIpsumProps {}

const LoremIpsum = forwardRef<TypeRef, LoremIpsumProps>(({}, ref) => {
return <>LoremIpsum</>;
});

export default memo(LoremIpsum);

LoremIpsum.displayName = "LoremIpsum";
51 changes: 20 additions & 31 deletions www-snippet/react-component.test.ts
Original file line number Diff line number Diff line change
@@ -1,48 +1,37 @@
import { createReactComponentContent } from "./react-component.ts";
import { assertEquals } from "https://deno.land/[email protected]/testing/asserts.ts";
import * as log from "https://deno.land/[email protected]/log/mod.ts";
import * as path from "https://deno.land/[email protected]/path/mod.ts";

const readMockFile = async (
subPath: "react-component/LoremIpsum" | "react-component/LoremIpsumWithRef",
) => {
const url = new URL(import.meta.url);
const pathname = decodeURI(url.pathname);

return await Deno.readTextFile(
path.resolve(
pathname,
`../__mocks__/${subPath}`,
),
);
};

Deno.test(
`createReactComponentContent("LoremIpsum", {
forwardRef: false,
}`,
() => {
`should return correct react component.`,
async () => {
assertEquals(
createReactComponentContent("LoremIpsum", {
forwardRef: false,
}),
`import React, { PropsWithChildren, memo } from "react";
export interface LoremIpsumProps {}
const LoremIpsum = (({}: PropsWithChildren<LoremIpsumProps>) => {
return <>LoremIpsum</>;
});
export default memo(LoremIpsum);`,
await readMockFile("react-component/LoremIpsum"),
);
},
);

Deno.test(
`createReactComponentContent("LoremIpsum", {
forwardRef: true,
})`,
() => {
assertEquals(
createReactComponentContent("LoremIpsum", {
forwardRef: true,
}),
`import React, { forwardRef, memo } from "react";
type TypeRef = any;
export interface LoremIpsumProps {}
const LoremIpsum = forwardRef<TypeRef, LoremIpsumProps>(({}, ref) => {
return <>LoremIpsum</>;
});
export default memo(LoremIpsum);
LoremIpsum.displayName = "LoremIpsum";`,
await readMockFile("react-component/LoremIpsumWithRef"),
);
},
);

0 comments on commit 1ce5e53

Please sign in to comment.