Generate typed mocks for Contentlayer documents
npm install contentlayer-mockGenerate typed mocks for Contentlayer documents.
dummy generates a single mocked document. The argument properties must contain all required fields of the document type.
``ts
import { type Post } from "contentlayer/generated";
import { dummy } from "contentlayer-mock";
const dummyPost = dummy
title: "Dummy Post",
description: "This is a dummy post",
});
// equivalent to
const dummyPost: Post = {
_id: "dummy",
_raw: {
contentType: "mdx",
flattenedPath: "posts/dummy",
sourceFileDir: "posts",
sourceFileName: "dummy-post.mdx",
sourceFilePath: "posts/dummy-post.mdx",
},
body: {
code: "",
raw: "dummy document raw content",
},
type: "Post",
title: "Dummy Post",
description: "This is a dummy post",
};
`
properties can also be used to overwrite the default properties of the document.
`ts
const dummyPost = dummy
title: "Dummy Post",
description: "This is a dummy post",
_id: "custom-id",
body: {
raw: "custom raw content",
},
});
dummyPost._id; // "custom-id"
dummyPost.body.raw; // "custom raw content"
`
dummyArray generates an array of mocked documents. The first argument, length, is the number of documents to generate. The second argument, properties, must contain all required fields of the document type.
`ts
import { type Post } from "contentlayer/generated";
import { dummyArray } from "contentlayer-mock";
const dummyPosts = dummyArray
title: "Dummy Post",
description: "This is a dummy post",
});
`
properties can also be used to overwrite the default properties of the documents.
`ts`
const dummyPosts = dummyArray
title: "Dummy Post",
description: "This is a dummy post",
_id: "custom-id",
_raw: {
flattenedPath: "posts/custom-id",
},
});
You can also pass a function to properties to generate different values for each document.
`tsDummy Post ${index}
const dummyPosts = dummyArray
title: ,This is a dummy post ${index}
description: ,custom-id-${index}
_id: ,`
}));
Currently only supports mdx` documents.