2018-02-16 22:32:24 +00:00
|
|
|
{
|
|
|
|
"name": "sourcecred-explorer",
|
|
|
|
"version": "0.1.0",
|
|
|
|
"private": true,
|
|
|
|
"dependencies": {
|
2018-03-19 22:31:08 +00:00
|
|
|
"aphrodite": "^2.1.0",
|
2018-02-17 21:28:47 +00:00
|
|
|
"autoprefixer": "7.1.6",
|
|
|
|
"babel-core": "6.26.0",
|
|
|
|
"babel-eslint": "7.2.3",
|
|
|
|
"babel-jest": "20.0.3",
|
|
|
|
"babel-loader": "7.1.2",
|
|
|
|
"babel-preset-react-app": "^3.1.1",
|
|
|
|
"babel-runtime": "6.26.0",
|
|
|
|
"case-sensitive-paths-webpack-plugin": "2.1.1",
|
|
|
|
"chalk": "1.1.3",
|
|
|
|
"css-loader": "0.28.7",
|
|
|
|
"dotenv": "4.0.0",
|
|
|
|
"dotenv-expand": "4.0.1",
|
|
|
|
"eslint": "4.10.0",
|
|
|
|
"eslint-config-react-app": "^2.1.0",
|
|
|
|
"eslint-loader": "1.9.0",
|
|
|
|
"eslint-plugin-flowtype": "2.39.1",
|
|
|
|
"eslint-plugin-import": "2.8.0",
|
|
|
|
"eslint-plugin-jsx-a11y": "5.1.1",
|
|
|
|
"eslint-plugin-react": "7.4.0",
|
|
|
|
"extract-text-webpack-plugin": "3.0.2",
|
|
|
|
"file-loader": "1.1.5",
|
2018-02-16 22:32:24 +00:00
|
|
|
"flow-bin": "^0.65.0",
|
2018-02-17 21:28:47 +00:00
|
|
|
"fs-extra": "3.0.1",
|
|
|
|
"html-webpack-plugin": "2.29.0",
|
2018-02-18 09:59:28 +00:00
|
|
|
"husky": "^0.14.3",
|
2018-03-20 00:01:41 +00:00
|
|
|
"isomorphic-fetch": "^2.2.1",
|
2018-02-17 21:28:47 +00:00
|
|
|
"jest": "20.0.4",
|
2018-03-15 21:56:25 +00:00
|
|
|
"json-stable-stringify": "^1.0.1",
|
2018-02-18 09:59:28 +00:00
|
|
|
"lint-staged": "^6.1.1",
|
2018-03-03 05:13:30 +00:00
|
|
|
"lodash.isequal": "^4.5.0",
|
2018-02-17 21:28:47 +00:00
|
|
|
"object-assign": "4.1.1",
|
|
|
|
"postcss-flexbugs-fixes": "3.2.0",
|
|
|
|
"postcss-loader": "2.0.8",
|
2018-02-18 09:59:28 +00:00
|
|
|
"prettier": "^1.10.2",
|
2018-02-17 21:28:47 +00:00
|
|
|
"promise": "8.0.1",
|
|
|
|
"raf": "3.4.0",
|
2018-02-16 22:32:24 +00:00
|
|
|
"react": "^16.2.0",
|
2018-02-17 21:28:47 +00:00
|
|
|
"react-dev-utils": "^5.0.0",
|
2018-02-16 22:32:24 +00:00
|
|
|
"react-dom": "^16.2.0",
|
2018-02-17 21:28:47 +00:00
|
|
|
"style-loader": "0.19.0",
|
|
|
|
"sw-precache-webpack-plugin": "0.11.4",
|
|
|
|
"url-loader": "0.6.2",
|
|
|
|
"webpack": "3.8.1",
|
|
|
|
"webpack-dev-server": "2.9.4",
|
|
|
|
"webpack-manifest-plugin": "1.3.2",
|
|
|
|
"whatwg-fetch": "2.0.3"
|
2018-02-16 22:32:24 +00:00
|
|
|
},
|
|
|
|
"scripts": {
|
2018-02-18 09:59:28 +00:00
|
|
|
"precommit": "npm run lint-staged",
|
|
|
|
"lint-staged": "lint-staged",
|
|
|
|
"prettify": "prettier --write '**/*.js'",
|
2018-03-02 22:39:54 +00:00
|
|
|
"check-pretty": "prettier --list-different '**/*.js'",
|
2018-02-17 21:28:47 +00:00
|
|
|
"start": "node scripts/start.js",
|
|
|
|
"build": "node scripts/build.js",
|
2018-03-19 05:43:23 +00:00
|
|
|
"backend": "node scripts/backend.js",
|
2018-02-17 21:28:47 +00:00
|
|
|
"test": "node scripts/test.js --env=jsdom",
|
2018-03-02 22:39:54 +00:00
|
|
|
"flow": "flow",
|
|
|
|
"travis": "npm run check-pretty && npm run flow && CI=true npm run test"
|
2018-02-17 21:28:47 +00:00
|
|
|
},
|
2018-03-02 19:31:12 +00:00
|
|
|
"license": "MIT",
|
2018-02-18 09:59:28 +00:00
|
|
|
"lint-staged": {
|
|
|
|
"**/*.js": "prettier --list-different"
|
|
|
|
},
|
2018-02-17 21:28:47 +00:00
|
|
|
"jest": {
|
|
|
|
"collectCoverageFrom": [
|
|
|
|
"src/**/*.{js,jsx,mjs}"
|
|
|
|
],
|
|
|
|
"setupFiles": [
|
|
|
|
"<rootDir>/config/polyfills.js"
|
|
|
|
],
|
|
|
|
"testMatch": [
|
|
|
|
"<rootDir>/src/**/__tests__/**/*.{js,jsx,mjs}",
|
|
|
|
"<rootDir>/src/**/?(*.)(spec|test).{js,jsx,mjs}"
|
|
|
|
],
|
|
|
|
"testEnvironment": "node",
|
|
|
|
"testURL": "http://localhost",
|
|
|
|
"transform": {
|
|
|
|
"^.+\\.(js|jsx|mjs)$": "<rootDir>/node_modules/babel-jest",
|
|
|
|
"^.+\\.css$": "<rootDir>/config/jest/cssTransform.js",
|
|
|
|
"^(?!.*\\.(js|jsx|mjs|css|json)$)": "<rootDir>/config/jest/fileTransform.js"
|
|
|
|
},
|
|
|
|
"transformIgnorePatterns": [
|
|
|
|
"[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs)$"
|
|
|
|
],
|
|
|
|
"moduleNameMapper": {
|
|
|
|
"^react-native$": "react-native-web"
|
|
|
|
},
|
|
|
|
"moduleFileExtensions": [
|
|
|
|
"web.js",
|
|
|
|
"mjs",
|
|
|
|
"js",
|
|
|
|
"json",
|
|
|
|
"web.jsx",
|
|
|
|
"jsx",
|
|
|
|
"node"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"babel": {
|
2018-02-17 21:30:16 +00:00
|
|
|
"plugins": [
|
|
|
|
"flow-react-proptypes"
|
|
|
|
],
|
2018-02-17 21:28:47 +00:00
|
|
|
"presets": [
|
|
|
|
"react-app"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"eslintConfig": {
|
|
|
|
"extends": "react-app"
|
2018-02-17 21:30:16 +00:00
|
|
|
},
|
|
|
|
"devDependencies": {
|
Use Enzyme to test ContributionList dynamics (#102)
Summary:
This is our first dynamic test of a React component! Enzyme looks pretty
easy to use to me, for both snapshot tests and interaction simulation.
In doing so, we catch a minor bug in the edge case where a contribution
is not owned by any plugin (`colSpan`, not `colspan`). This edge case
does not appear in the sample data, but it does appear in the test data,
even prior to this commit. The previous renderer, `react-test-renderer`,
appears not to surface this error. Furthermore, this bug did not cause
any user-visible errors except a `console.error`.
Test Plan:
Inspect the snapshot file to make sure that it is reasonable. (The
existing test case has its snapshot regenerated due to formatting
differences between the two renderers.)
To test that the browser error is fixed, render a contribution list on a
GitHub graph but with an empty adapter set. One way to do this is to comment out line 7 of
`standardAdapterSet.js`; alternately, you can use the React Dev Tools to
select the `ContributionList` node, then run
```js
$r.props.adapters.adapters = {};
$r.forceUpdate();
```
Note subsequently that there is no console error and that the `<td>`s in
question span three columns.
wchargin-branch: contributionlist-dynamic-test
2018-03-22 00:35:17 +00:00
|
|
|
"babel-plugin-flow-react-proptypes": "^18.0.0",
|
|
|
|
"enzyme": "^3.3.0",
|
|
|
|
"enzyme-adapter-react-16": "^1.1.1",
|
|
|
|
"enzyme-to-json": "^3.3.3"
|
2018-02-16 22:32:24 +00:00
|
|
|
}
|
|
|
|
}
|