scorechain-sdk
Version:
SDK for the Scorechain API
67 lines (62 loc) • 2.41 kB
JavaScript
const fs = require("fs");
try {
process.env.SCORECHAIN_API_KEY = JSON.parse(fs.readFileSync("./config.json"))?.apiKey ?? "";
} catch (error) {
throw new Error("config.json file not found or invalid");
}
/** @type {Partial<import('@jest/types').Config.ProjectConfig>} */
const commonProjectsConfig = {
moduleDirectories: ["node_modules"],
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "mjs", "cjs", "node"],
moduleNameMapper: fs.readdirSync("./src/", { withFileTypes: true }).reduce((map, file) => {
if (file.isDirectory()) {
map[`^${file.name}/(.*)$`] = `<rootDir>/src/${file.name}/$1`;
} else if (["ts", "tsx", "js", "jsx", "json", "mjs", "cjs", "node"].find(item => file.name.endsWith(`.${item}`))) {
const fileName = file.name.slice(0, file.name.lastIndexOf("."));
map[`^${fileName}$`] = `<rootDir>/src/${fileName}`;
}
return map;
}, Object.create(null)),
rootDir: "./",
roots: ["<rootDir>/", "<rootDir>/src/"],
testEnvironment: "node",
testPathIgnorePatterns: [".husky/", ".vscode/", "dist/", "coverage/", "node_modules/"],
transformIgnorePatterns: [],
};
/** @type {Omit<import('@jest/types').Config.GlobalConfig, "projects"> & { projects: Array<import('@jest/types').Config.ProjectConfig> }} */
module.exports = {
maxWorkers: 3,
projects: [
{
displayName: "unit",
testMatch: [
"<rootDir>/src/**/__tests__/**/unit/**/*.(spec|test).[tj]s?(x)",
"<rootDir>/src/**/__tests__/**/unit/**/*.(spec|test).[tj]s?(x)",
],
},
{
displayName: "integration",
testMatch: [
"<rootDir>/src/**/__tests__/**/integration/**/*.(spec|test).[tj]s?(x)",
"<rootDir>/src/**/__tests__/**/integration/**/*.(spec|test).[tj]s?(x)",
],
},
].map(obj => ({ ...commonProjectsConfig, ...obj })),
cache: false,
forceExit: true,
passWithNoTests: true,
collectCoverage: true,
collectCoverageFrom: [
"**/*.{js,jsx,ts,tsx}",
"!**/node_modules/**",
"!**/.husky/**",
"!**/.vscode/**",
"!**/dist/**",
"!**/coverage/**",
"!**/__tests__/**",
"!**/__mocks__/**",
"!jest.config.js",
],
coverageDirectory: "<rootDir>/coverage",
verbose: true,
};