Skip to content

Commit

Permalink
Tests for extending ESlint (facebook#7519)
Browse files Browse the repository at this point in the history
  • Loading branch information
kartik-budhiraja committed Aug 22, 2020
1 parent 7763737 commit 20bb526
Show file tree
Hide file tree
Showing 10 changed files with 119 additions and 0 deletions.
1 change: 1 addition & 0 deletions test/fixtures/extending-eslint-javscript/.env
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
EXTEND_ESLINT=true
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module.exports = {
rules: {
'no-useless-constructor': 'error',
},
};
11 changes: 11 additions & 0 deletions test/fixtures/extending-eslint-javscript/index.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
const testSetup = require('../__shared__/test-setup');

test('extended eslint error should break the development', async () => {
const { fulfilled } = await testSetup.scripts.start({ smoke: true });
expect(fulfilled).toBe(false);
});

test('extended eslint error should break the build in production', async () => {
const { fulfilled } = await testSetup.scripts.build();
expect(fulfilled).toBe(false);
});
22 changes: 22 additions & 0 deletions test/fixtures/extending-eslint-javscript/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"eslintConfig": {
"extends": [
"react-app",
"./extend-eslint-config.js"
]
},
"dependencies": {
"react": "latest",
"react-dom": "latest",
"eslint-config-react-app": "latest",
"@typescript-eslint/eslint-plugin": "2.x",
"@typescript-eslint/parser": "2.x",
"babel-eslint": "10.x",
"eslint": "6.x",
"eslint-plugin-flowtype": "3.x",
"eslint-plugin-import": "2.x",
"eslint-plugin-jsx-a11y": "6.x",
"eslint-plugin-react": "7.x",
"eslint-plugin-react-hooks": "1.x"
}
}
14 changes: 14 additions & 0 deletions test/fixtures/extending-eslint-javscript/src/App.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import React, { Component } from 'react';

class App extends Component {
// Should cause the build to fail due to extended eslint rule change
constructor(props) {
super(props);
}

render() {
return <div>Hello</div>;
}
}

export default App;
5 changes: 5 additions & 0 deletions test/fixtures/extending-eslint-javscript/src/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';

ReactDOM.render(<App />, document.getElementById('root'));
10 changes: 10 additions & 0 deletions test/fixtures/extending-eslint-typescript/index.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
const testSetup = require('../__shared__/test-setup');

test('extending eslint typescript in development', async () => {
const { fulfilled } = await testSetup.scripts.start({ smoke: true });
expect(fulfilled).toBe(false);
});
test('extending eslint typescript in production', async () => {
const { fulfilled } = await testSetup.scripts.build();
expect(fulfilled).toBe(false);
});
32 changes: 32 additions & 0 deletions test/fixtures/extending-eslint-typescript/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"eslintConfig": {
"overrides": [
{
"files": [
"**/*.ts?(x)"
],
"rules": {
"@typescript-eslint/no-useless-constructor'": "error"
}
}
]
},
"dependencies": {
"typescript": "3.1.3",
"@types/react": "*",
"@types/react-dom": "*",
"@types/jest": "*",
"react": "*",
"react-dom": "*",
"eslint-config-react-app": "latest",
"@typescript-eslint/eslint-plugin": "2.x",
"@typescript-eslint/parser": "2.x",
"babel-eslint": "10.x",
"eslint": "6.x",
"eslint-plugin-flowtype": "3.x",
"eslint-plugin-import": "2.x",
"eslint-plugin-jsx-a11y": "6.x",
"eslint-plugin-react": "7.x",
"eslint-plugin-react-hooks": "1.x"
}
}
14 changes: 14 additions & 0 deletions test/fixtures/extending-eslint-typescript/src/App.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import * as React from 'react';


class App extends React.Component {
constructor(props:any) {
super(props)
}

render() {
return <div />;
}
}

export default App;
5 changes: 5 additions & 0 deletions test/fixtures/extending-eslint-typescript/src/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import App from './App';

ReactDOM.render(<App />, document.getElementById('root'));

0 comments on commit 20bb526

Please sign in to comment.