Skip to content

Commit 79dcf71

Browse files
committed
Inserting test script
1 parent 021d601 commit 79dcf71

File tree

5 files changed

+121
-1
lines changed

5 files changed

+121
-1
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
"use strict";
2+
3+
const babelJest = require("babel-jest");
4+
5+
module.exports = babelJest.createTransformer({
6+
presets: [
7+
[require.resolve("@babel/preset-env"), { modules: "commonjs" }],
8+
[require.resolve("@babel/preset-react"), { absoluteRuntime: false }]
9+
],
10+
plugins: [
11+
require.resolve("@babel/plugin-proposal-class-properties"),
12+
require.resolve("@babel/plugin-transform-runtime")
13+
],
14+
babelrc: false,
15+
configFile: false
16+
});
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// Copied from Create React APP
2+
3+
"use strict";
4+
5+
// This is a custom Jest transformer turning style imports into empty objects.
6+
// http://facebook.github.io/jest/docs/en/webpack.html
7+
8+
module.exports = {
9+
process() {
10+
return "module.exports = {};";
11+
},
12+
getCacheKey() {
13+
// The output is always the same.
14+
return "cssTransform";
15+
}
16+
};
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
// Copied from Create React APP
2+
3+
"use strict";
4+
5+
const path = require("path");
6+
const camelcase = require("camelcase");
7+
8+
// This is a custom Jest transformer turning file imports into filenames.
9+
// http://facebook.github.io/jest/docs/en/webpack.html
10+
11+
module.exports = {
12+
process(src, filename) {
13+
const assetFilename = JSON.stringify(path.basename(filename));
14+
15+
if (filename.match(/\.svg$/)) {
16+
// Based on how SVGR generates a component name:
17+
// https://github.com/smooth-code/svgr/blob/01b194cf967347d43d4cbe6b434404731b87cf27/packages/core/src/state.js#L6
18+
const pascalCaseFileName = camelcase(path.parse(filename).name, {
19+
pascalCase: true
20+
});
21+
const componentName = `Svg${pascalCaseFileName}`;
22+
return `const React = require('react');
23+
module.exports = {
24+
__esModule: true,
25+
default: ${assetFilename},
26+
ReactComponent: React.forwardRef(function ${componentName}(props, ref) {
27+
return {
28+
$$typeof: Symbol.for('react.element'),
29+
type: 'svg',
30+
ref: ref,
31+
key: null,
32+
props: Object.assign({}, props, {
33+
children: ${assetFilename}
34+
})
35+
};
36+
}),
37+
};`;
38+
}
39+
40+
return `module.exports = ${assetFilename};`;
41+
}
42+
};
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
"use strict";
2+
3+
const jestConfig = {
4+
collectCoverageFrom: ["<rootDir>/src/lib/**/*.{js,jsx}"],
5+
testPathIgnorePatterns: ["/node_modules/", "/dist/"],
6+
transform: {
7+
"^.+\\.(js|jsx|ts|tsx)$": `${__dirname}/jest/babelTransform.js`,
8+
"^.+\\.css$": `${__dirname}/jest/cssTransform.js`,
9+
"^(?!.*\\.(js|jsx|ts|tsx|css|json)$)": `${__dirname}/jest/fileTransform.js`
10+
},
11+
transformIgnorePatterns: [
12+
"[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$",
13+
"^.+\\.module\\.(css|sass|scss)$"
14+
],
15+
coverageThreshold: {
16+
global: {
17+
statements: 85,
18+
branches: 85,
19+
lines: 85,
20+
functions: 85
21+
}
22+
}
23+
};
24+
25+
module.exports = jestConfig;
Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,24 @@
11
"use strict";
22

3-
console.log("test");
3+
process.env.BABEL_ENV = "test";
4+
process.env.NODE_ENV = "test";
5+
process.env.PUBLIC_URL = "";
6+
7+
const jest = require("jest");
8+
const fs = require("fs");
9+
let jestConfig = require("../configs/jestConfig");
10+
11+
const packageJson = JSON.parse(fs.readFileSync("./package.json"));
12+
13+
if (fs.existsSync("./src/setupTest.js")) {
14+
jestConfig.setupFilesAfterEnv = ["<rootDir>/src/setupTest.js"];
15+
}
16+
17+
if (packageJson.jest) {
18+
jestConfig = { ...jestConfig, ...packageJson.jest };
19+
}
20+
21+
args.unshift("--ci");
22+
args.unshift("--config", JSON.stringify(jestConfig));
23+
24+
jest.run(process.argv.slice(2));

0 commit comments

Comments
 (0)