I have a function declaration that I would like to add to my jest.setup.js file for several projects.
How can I write a jscodeshift script to add this function declaration to the end of any specified file?
// Establish API mocking before all tests.
beforeAll(() => {
server.listen({
onUnhandledRequest: "bypass",
});
});
This is what I’ve attempted so far
export default (fileInfo, api) => {
const j = api.jscodeshift;
const root = j(fileInfo.source);
const codeToAdd = `
// Establish API mocking before all tests.
beforeAll(() => {
server.listen({
onUnhandledRequest: "bypass",
});
});
`;
// Convert the code string to AST nodes
const newCodeAst = j(codeToAdd);
// Find the end of the file and insert the new code
root.find(j.Program).forEach((path) => {
path.node.body.push(...newCodeAst.nodes());
});
return root.toSource();
};
but I’m getting this error when I try to use the script to append the function declaration to the end of a project’s jest.setup.js file
ERR ./jest-no-console/jest.setup.js Transformation error ({ type: File, start: 0, end: 408, loc: [object Object], errors: , program: [object Object], tokens: [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object] } does not match type string)
Error: { type: File, start: 0, end: 408, loc: [object Object], errors: , program: [object Object], tokens: [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object] } does not match type string
at PredicateType.BaseType.assert
What is wrong with my script?
Thank you