From 62c18165b6b1354b2b58af6cf53e8f931f340e1d Mon Sep 17 00:00:00 2001 From: Ari Perkkio Date: Wed, 30 Dec 2020 08:27:27 +0200 Subject: [PATCH] test(no-unstable-nested-components): add test setup, yannickcr#2750 --- .gitignore | 3 + eslint-remote-tester.config.js | 621 +++++++++++++++++++++++++++++++++ package.json | 2 + 3 files changed, 626 insertions(+) create mode 100644 eslint-remote-tester.config.js diff --git a/.gitignore b/.gitignore index a7d00f359e..f73a7417b7 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,6 @@ sftp-config.json # Only apps should have lockfiles yarn.lock package-lock.json + +.cache-eslint-remote-tester +eslint-remote-tester-results \ No newline at end of file diff --git a/eslint-remote-tester.config.js b/eslint-remote-tester.config.js new file mode 100644 index 0000000000..c2495ded4e --- /dev/null +++ b/eslint-remote-tester.config.js @@ -0,0 +1,621 @@ +/* eslint-disable */ + +module.exports = { + extensions: ['js', 'jsx', 'ts', 'tsx'], + pathIgnorePattern: `(${[ + 'node_modules', + '\\/\\.', // Any file or directory starting with dot, e.g. ".git" + '/dist/', + '/build/', + + // Minified JS committed to remote + 'codesandbox-client/packages/app/static/js', + 'codesandbox-client/standalone-packages', + 'dockunit/platform/assets', + 'hyper/bin', + 'react-solitaire/lib/index\\.js', + 'babel\\.js', + 'chunk\\.js', + 'bundle\\.js', + 'react-dom\\.development\\.js', + 'vendor\\.min\\.js', + '\\.min\\.js', // Any *.min.js + '/public/', + + 'Khan/perseus/lib', + 'glortho/react-keydown/example/public', + 'reach/reach-ui/packages/combobox/examples/cities\\.ts', + 'reach/reach-ui/website/src/components/cities\\.js', + 'reach/reach-ui/website/static/router/static', + 'Automattic/wp-calypso/client/components/phone-input/data\\.js', + 'test262-main\\.ts', + 'sample_vis\\.test\\.mocks\\.ts', + 'flow-typed', + ].join('|')})`, + rulesUnderTesting: ['react/no-unstable-nested-components'], + resultParser: 'markdown', + concurrentTasks: 3, + eslintrc: { + root: true, + env: { + es6: true, + }, + parserOptions: { + ecmaVersion: 2020, + sourceType: 'module', + ecmaFeatures: { + jsx: true, + }, + }, + settings: { + react: { + version: '16.13.1', + }, + }, + plugins: ['react'], + rules: { + 'react/no-unstable-nested-components': ['error'], + }, + }, + repositories: [ + "AriPerkkio/js-framework-playground", + "oldboyxx/jira_clone", + "reach/reach-ui", + "react-bootstrap/react-bootstrap", + "StreakYC/react-smooth-collapse", + "pmndrs/react-spring", + "AriPerkkio/scrpr", + "AriPerkkio/state-mgmt-examples", + "AriPerkkio/suspense-examples", + "reactjs/reactjs.org", + "kentcdodds/kentcdodds.com", + "kentcdodds/react-fundamentals", + "kentcdodds/testing-react-apps", + "kentcdodds/react-suspense", + "kentcdodds/react-hooks", + "kentcdodds/react-performance", + "kentcdodds/advanced-react-hooks", + "kentcdodds/advanced-react-patterns", + "kentcdodds/bookshelf", + "kentcdodds/react-testing-library-examples", + "kentcdodds/learn-react", + "kentcdodds/react-testing-library-course", + "kentcdodds/concurrent-react", + "zesty-io/accounts-ui", + "zesty-io/design-system", + "mui-org/material-ui", + "ant-design/ant-design", + "withspectrum/spectrum", + "codesandbox/codesandbox-client", + "Automattic/wp-calypso", + "artsy/force", + "segmentio/evergreen", + "segmentio/ui-box", + "project-bobon/bobonroastprofile", + "gothinkster/react-redux-realworld-example-app", + "1ven/do", + "dockunit/platform", + "afghl/dribbble-demo", + "DevAlien/dripr-ui", + "ismaelgt/english-accents-map", + "rwieruch/favesound-mobx", + "rwieruch/favesound-redux", + "feednext/feednext", + "skidding/flatris", + "limichange/flex-editor", + "pearofducks/foodprocessor", + "HVF/franchise", + "getguesstimate/guesstimate-app", + "vercel/hyper", + "stevenhauser/i-have-to-return-some-videotapes", + "skidding/illustrated-algorithms", + "bebraw/invoice-frontend", + "gpbl/isomorphic500", + "WebbyLab/itsquiz-wall", + "docker/kitematic", + "KrateLabs/KrateLabs-App", + "afghl/dribble-demo", + "zeit/hyper", + "koodilehto/invoice-frontend", + "insin/lifequote", + "paulhoughton/mortgage", + "paulhoughton/mortgage-mobx", + "browniefed/pdxlivebus", + "Khan/perseus", + "benoitvallon/react-native-nw-react-calculator", + "insin/react-hn", + "LeoAJ/react-iTunes-search", + "FormidableLabs/react-music", + "echenley/react-news", + "lkazberova/react-photo-feed", + "afonsopacifer/react-pomodoro", + "pl12133/react-solitaire", + "chvin/react-tetris", + "fcsonline/react-transmission", + "web-pal/react-trello-board", + "fullstackreact/react-yelp-clone", + "SKempin/reactjs-tmdb-app", + "hoppula/refire-forum", + "antoinejaussoin/retro-board", + "ritoplz/ritoplz", + "andrewngu/sound-redux", + "FormidableLabs/spectacle", + "sprintly/sprintly-ui", + "torontojs/torontojs.com", + "captbaritone/winamp2-js", + "marmelab/react-admin", + "palantir/blueprint", + "microsoft/fluentui", + "reactstrap/reactstrap", + "Semantic-Org/Semantic-UI-React", + "grommet/grommet", + "chakra-ui/chakra-ui", + "rebassjs/rebass", + "FortAwesome/react-fontawesome", + "reakit/reakit", + "rsuite/rsuite", + "uber/baseweb", + "primefaces/primereact", + "couds/react-bulma-components", + "kulakowka/react-bulma", + "dfee/rbx", + "fibo/trunx", + "emortlock/tailwind-react-ui", + "knipferrc/tails-ui", + "geist-org/react", + "elastic/eui", + "brillout/awesome-react-components", + "JedWatson/react-select", + "atlassian/react-beautiful-dnd", + "react-dnd/react-dnd", + "strml/react-grid-layout", + "tannerlinsley/react-table", + "adazzle/react-data-grid", + "mzabriskie/react-draggable", + "bokuweb/react-resizable-and-movable", + "strml/react-resizable", + "bokuweb/react-resizable-box", + "axmz/react-searchbox-awesome", + "bokuweb/react-sortable-pane", + "aeagle/react-spaces", + "airbnb/react-dates", + "intljusticemission/react-big-calendar", + "Hacker0x01/react-datepicker", + "yahoo/react-intl", + "i18next/react-i18next", + "davidtheclark/react-aria-modal", + "greena13/react-hotkeys", + "glortho/react-keydown", + "gilbarbara/react-joyride", + "bvaughn/react-virtualized", + "bvaughn/react-window", + "text-mask/text-mask", + "dvtng/react-loading-skeleton", + "KyleAMathews/react-spinkit", + "airbnb/rheostat", + "zpao/qrcode.react", + "pierpo/react-archer", + "phuoc-ng/react-pdf-viewer", + "mkosir/react-parallax-tilt", + "matteobruni/tsparticles", + "rackt/react-autocomplete", + "moroshko/react-autosuggest", + "eliseumds/react-autocomplete", + "prometheusresearch/react-autocomplete", + "gragland/instatype", + "paypal/downshift", + "ericgio/react-bootstrap-typeahead", + "facebook/react-art", + "Flipboard/react-canvas", + "pilwon/react-famous", + "freiksenet/react-kinetic", + "gorangajic/react-svg-morph", + "kmkzt/react-hooks-svgdrawing", + "chrvadala/react-svg-pan-zoom", + "clintonwoo/hackernews-react-graphql", + "reduction-admin/react-reduction", + "jeffersonRibeiro/react-shopping-cart", + "elastic/kibana", + "firefox-devtools/debugger", + "mattermost/mattermost-webapp", + "gaearon/overreacted.io", + "dnote/dnote", + "socketio/socket.io", + "emotion-js/emotion", + "necolas/react-native-web", + "primer/css", + "react-dropzone/react-dropzone", + "influxdata/influxdb", + "styleguidist/react-styleguidist", + "downshift-js/downshift", + "final-form/react-final-form", + "gregberge/loadable-components", + "gpbl/react-day-picker", + "Andarist/react-textarea-autosize", + "davidkpiano/xstate", + "reactivestack/cookies", + "openzipkin/zipkin", + "styled-components/jest-styled-components", + "testing-library/user-event", + "tinacms/tinacms", + "nrwl/nx", + "mlaursen/react-md", + "mobxjs/mobx-react-lite", + "async-library/react-async", + "tjallingt/react-youtube", + "yjose/reactjs-popup", + "glennreyes/react-countup", + "pradel/react-responsive-modal", + "pluralsight/design-system", + "apollographql/react-apollo", + "react-cosmos/react-cosmos", + "pmndrs/zustand", + "alibaba/formily", + "diegohaz/constate", + "ReactTraining/react-media", + "dubzzz/fast-check", + "thebuilder/react-intersection-observer", + "smooth-code/xstyled", + "react-cropper/react-cropper", + "ankeetmaini/react-infinite-scroll-component", + "atomiks/tippyjs-react", + "mbrevda/react-image", + "rpearce/image-zoom", + "springload/react-accessible-accordion", + "storybookjs/marksy", + "imodeljs/imodeljs", + "Graylog2/graylog2-server", + "FormidableLabs/urql", + "pmndrs/react-use-gesture", + "prescottprue/react-redux-firebase", + "buildo/react-placeholder", + "imbhargav5/rooks", + "JustFly1984/react-google-maps-api", + "nickcolley/jest-axe", + "paularmstrong/build-tracker", + "final-form/react-final-form-arrays", + "AxaGuilDEv/react-toolkit", + "atlasmap/atlasmap", + "welldone-software/why-did-you-render", + "adobe/react-spectrum", + "FirebaseExtended/reactfire", + "CharlesStover/reactn", + "tannerlinsley/react-charts", + "remirror/remirror", + "LouisBarranqueiro/reapop", + "schiehll/react-alert", + "kentcdodds/stop-runaway-react-effects", + "bbc/psammead", + "timhagn/gatsby-background-image", + "zendeskgarden/react-containers", + "SpareBank1/designsystem", + "snakesilk/react-fullscreen", + "Availity/availity-react", + "STORIS/react-scrollbar-size", + "effector/effector", + "RisingStack/react-easy-state", + "kitze/react-hanger", + "nearform/graphql-hooks", + "coinbase/rest-hooks", + "pbeshai/use-query-params", + "amplitude/redux-query", + "tameemsafi/typewriterjs", + "primer/components", + "ice-lab/icestark", + "inlet/react-pixi", + "gokcan/react-shimmer", + "wix/wix-style-react", + "mikecousins/react-pdf-js", + "cloudinary/cloudinary-react", + "jannikbuschke/formik-antd", + "suren-atoyan/monaco-react", + "danieldelcore/trousers", + "braposo/react-text-loop", + "jaredLunde/react-hook", + "toomuchdesign/react-minimal-pie-chart", + "TouK/nussknacker", + "coston/react-super-responsive-table", + "umijs/plugins", + "contentful/field-editors", + "romgain/jest-websocket-mock", + "cashapp/misk-web", + "fremtind/jokul", + "pismo/bolt", + "liferay/liferay-frontend-projects", + "microsoft/nni", + "facebook/flipper", + "prevwong/craft.js", + "ava/use-http", + "loic-sharma/BaGet", + "yahoo/athenz", + "artalar/reatom", + "tdeekens/flopflip", + "neo4j/neo4j-browser", + "alitajs/alita", + "cashapp/misk", + "ZeeCoder/use-resize-observer", + "thebuilder/react-scroll-percentage", + "iamraphson/react-paystack", + "Countly/countly-sdk-web", + "JamesBrill/react-speech-recognition", + "charlie-tango/hooks", + "VirgilSecurity/virgil-e3kit-js", + "wyze/bs-react-testing-library", + "smollweide/dash4", + "WestpacGEL/GEL", + "querycap/webappkit", + "brick-design/react-visual-editor", + "molefrog/wouter", + "acidb/mobiscroll", + "pmmmwh/react-refresh-webpack-plugin", + "quiltdata/quilt", + "ant-design/ant-design-pro-layout", + "kitze/mobx-router", + "Kiarash-Z/react-modern-calendar-datepicker", + "sandiiarov/use-events", + "seek-oss/sku", + "IBMa/equal-access", + "atlassian-labs/storybook-addon-performance", + "worr/node-imdb-api", + "devansh289/ReStartup", + "zobzn/zobzn.com", + "Taching/V2-Portfolio", + "chloe-mc/portfolio", + "Sharma-Ritu/gatsby-shopify", + "Pkpratik/pratik-blog", + "gmfe/gm-react-app", + "BiosBoy/images-set-to-webp-converter", + "sxnb/singulier", + "brianmcallister/react-highlight-text", + "murshidazher/bestil", + "Carlos4ndresh/carlosaherrera.com", + "ladies-that-ux-boston/ladiesthatuxboston", + "3box/eslint-config-3box", + "gfazioli/react-animatecss", + "fourjuaneight/fourjuaneight", + "RvenkataRamanan/gatsby-starter-default", + "mmkari/react-verdict", + "sholladay/eslint-config-tidy-react", + "jeremd41/webizySite", + "jgierer12/website", + "mattfwood/gatsby-dev-blog", + "cs19-build-week-1-mud/frontend", + "joshwa-moellenkamp/401k-calculator", + "MrWhiteNerdy/spacex-launch-stats", + "gridsuite/commons-ui", + "maxjowett/oakland-eats", + "gonnzalo/crypto-news", + "Peckwater-Technologies/enders-game", + "tukangdev/tukang.dev", + "atomic-reactor-cloud/Reactium-UI", + "zacanger/zacanger", + "davidosomething/20.davidosomething.com", + "rrnassab/intro-react", + "verdipratama/qoutes", + "lambda-mud/frontend", + "nvimai/my-portfolio-client-gatsby", + "Knochenmark/pomodoro", + "Ryan-Ouyang/personal-site", + "zacanger/koa-lowercase", + "seruminar/VERSUS", + "JJRMOpSpark/3rdWheel", + "chintan9/react-plyr-demo", + "jonyonson/jonathantaylor.io", + "mcbrooks95/netlifytest", + "steinarb/oldalbum", + "ddeschenes/lsb-website", + "Pike96/pike96-site", + "numToStr/listrrr", + "GinoLlerena/react-spreadsheet", + "showbie/showbie-eslint-config", + "metalcanine/futch", + "Alexrubiolv/Wordpress", + "thebrengun/bmcv.codes", + "reactioncommerce/api-plugin-files", + "InkoHX/blog", + "davidharting/personal-site", + "ckinan/ckinan.com", + "vic2019/portfolio-v2", + "DGEs2018/Project-building", + "reactioncommerce/api-plugin-tags", + "ashokcherukuri/intro-react", + "woohyeok-choi/woohyeok-choi.github.io", + "moshedeitsch/React-apt-search", + "4Ply/lefido-orange-react", + "mateusfg7/portifolio", + "santosrai/dev-notebook", + "AustinBH/The-Final-FM-frontend", + "ntnyq/configs", + "s1seven/verification-service", + "djD-REK/ien", + "ArturJS/react-modal-bridge", + "brunosabot/tools-for-front", + "marlomgirardi/eslint-config", + "thisconnect/desktop", + "bylapidist/components", + "weahead/eslint-config-react", + "CharmedSatyr-freeCodeCamp/game_of_life", + "miaawong/portfolio1.0", + "jackhutu/qilin", + "kairaluchi/kairaluchi.com", + "Daniel0liver/race-time", + "gleyconxavier/portfolio", + "ajosedev/home", + "GeorgeChou173/intro-react", + "arthurmdros/JScript_Tutorial", + "nstylo/homerow.dev", + "saiichihashimoto/use-event-emitter", + "oliverpagephd/intro-react", + "codefordesign/codefordesign", + "instantrahmen/youareallnerds.com", + "mapequation/alluvial-generator", + "RunningCoderLee/sprint-scripts", + "collectionspace/cspace-ui-plugin-profile-publicart.js", + "zacanger/get-open-pull-requests", + "D1no/fightback", + "vogelino/vogelui", + "zacanger/hsimp-cli", + "Greenheart/swipeforfuture.com", + "reactioncommerce/api-plugin-email-smtp", + "semaphore8/devblog", + "travi/shell-scaffolder", + "reactioncommerce/api-plugin-settings", + "skazka-kz/podarki-temp", + "electricmagnetic/keadatabase-map", + "xdmorgan/personal-site", + "dof-dss/nicsdru_unity_theme", + "frank-26/gatsby-starter-hello-world", + "signavio/kraken", + "gtg7784/SunrinVoca", + "tiddler/gatsby-theme-novela-tiddler", + "edx/frontend-component-footer-edx", + "goodhood-eu/nebenan-map", + "joellesenne/joellesenne.dev", + "readypress/looparch_contentful", + "alexkearns/alexkearns.co.uk", + "mcalus3/rtrm-starter", + "uttori/uttori-plugin-generator-sitemap", + "duylnguyen/Gatsby-Porfolio", + "asucis/website", + "AerialWombat/portfolio-site", + "phirannodesigns/gatsby-website-template", + "xiaoleibi/intro-react", + "CTMobi/Wubtitle-Wordpress-Plugin", + "dsyncerek/gatsby-example", + "digital-asset/dablchat", + "mpezzi/prettyradbar.com", + "torsteinf/regionskampen", + "mlbaquerizo/ComboChat", + "GannettDigital/simulato-test-site", + "project-openubl/xml-builder-ui", + "aferreira44/andreferreira.me", + "Mcat12/pihole-web", + "alanli2001/alanli2001.github.io", + "rakuten-rex/radio-button", + "palatech/generator-pala", + "edward93/three-js-example", + "slk333/aweb33", + "none23/eslint-config-none23", + "RoisinLocke/gatsby-casper-chris", + "tknieza/tadasknieza.com", + "bifrost-finance/bifrost.js", + "h-a-n-a/react-in-depth", + "Jeremy-Walton/home-tab", + "marxanweb/www.marxanweb.org", + "moorem1906/Dtour", + "alexey-lapin/alexey-lapin.github.io", + "elfinsanjaya12/Material-UI-Dashboard", + "rgrove/eslint-config", + "blesswinsamuel/react-form-hooks", + "DalkMania/dalkmania.github.io", + "kee43093/Ecommerce-PWA", + "klgh/yogaposies", + "navikt/arbeidsforhold", + "FrontendRangers/platoon", + "SabrinaFZ/portfolio", + "Leon31/gallereact", + "JBallin/ballin-library", + "patractlabs/dev", + "LinYenCheng/thsr-app", + "heysoypaez/heysoypaez-website", + "CUBETIQ/opensource.cubetiqs.com", + "hpcc-systems/REAL-BI", + "WayneLambert/portfolio", + "ManfredRichthofen/react-nalcka", + "keithnull/blog", + "rx-ts/tslint-config-eslint", + "Kwili/Website", + "chrisbmar/yelp-api", + "loginov-rocks/Portfolio", + "Gabsii/gabsii", + "ChilliBits/particulate-matter-app-web", + "DanielNeris/Rocketfy", + "careofvitamins/eslint-config-careof", + "mohitsinghs/eslint-config", + "1e3/eslint-config-1e3", + "DanielNeris/tindev-frontend", + "wKovacs64/eslint-config-react", + "paulgaumer/care_before_the_call", + "megos/ash-collection", + "Jahia/jahia-ui-root", + "mthmulders/enterprise-beers", + "dimitrisraptis96/personal-website", + "martin2844/gatsby-cv-site", + "spirosikmd/google-airlines", + "tohjustin/chronos", + "alexbabalau/intro-react", + "36node/bus-core-sdk-js", + "agwells/talk-like-a", + "thijskrooswijk/dot-com", + "goodhood-eu/nebenan-form", + "paulbrittain/paulbrittain.net", + "MarkusTryban/dev-connector", + "at19/color-game", + "36node/bus-chart-sdk-js", + "clarin-eric/discovery-service-frontend", + "christophehurpeau/ynnub", + "johnwalley/svg-rowing-blades", + "RexStrider/Civic-Initiative", + "untra/naiveasync", + "waves-exchange/provider-web", + "pdaigneault/intro-react", + "phbomfim/mypage", + "prpwien/prp.wien", + "kevinli23/me", + "dabrady/site", + "qiwi/nexus", + "grendel-consulting/corporate-frontend", + "pekkis/broilerplate", + "3scava1i3r/gatsby-starter-default", + "ffmemes/ffmemes.github.io", + "Alethio/explorer-ui", + "n350071/gatsby-starter-netlify-cms", + "hiberbee/hiberbee.github.io", + "gusma/malamud.dev", + "architchoudhury/fluentup-blog-cms", + "StanisicS/pbt-material", + "niclaslovdahl/niclaslovdahl.com", + "paulbertil/blogsite", + "ozitag/tager-admin-services", + "zzh1991/movie-helper-front", + "hakobe/poketype-site", + "Rednaxela700/blog", + "aqkj/reactLearn", + "fourjuaneight/cleverlaziness", + "alexleekt/gatsby-octoprint-status", + "princessMary/gatsby-DrSnow", + "kylemh/loven", + "dejurin/format-money-js", + "sespert/translation-tickets", + "magicxor/ReactReduxTodo", + "moonwalker/jetpack", + "DanielaRocha6/Visualizacion-datos.gov.co", + "jonhue/plaain", + "hiddeottens/elcano", + "jeferson-sb/aircnc", + "tanem/use-document-title", + "sureshmangs/my-voting-app", + "liketurbo/set-immediate-interval", + "flubbid/project-4", + "gentksb/blog", + "ceva24/ceva24.dev", + "dsmjs/eslint-config-react", + "harmony-one/swoop-utils", + "akx/nicen", + "lacti/lacti-blog", + "harvardadvocate/main-website", + "konnectors/cozy-konnector-mgen", + "jerryfishzz/handy-test", + "zacanger/putenv", + "FaridBenmebarek/coffee-shop", + "manusa/presentations", + "rakuten-rex/icons", + "ota-meshi/eslint-config-vue-preset", + "PREDICT-19/launchpage", + "NewOrbit/eslint-config", + "ofuen/BeginWithRedux", + "awave1/notes", + "commercelayer/commercelayer-react", + "vizeat/storybook-addon-responsive-views", + ], +}; diff --git a/package.json b/package.json index 2870cbedb3..6a20890b85 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "scripts": { "coveralls": "cat ./coverage/lcov.info | coveralls", "lint": "eslint ./", + "lint:remote": "eslint-remote-tester", "postlint": "npm run type-check", "pretest": "npm run lint", "test": "npm run unit-test", @@ -53,6 +54,7 @@ "eslint-config-airbnb-base": "^14.2.0", "eslint-plugin-eslint-plugin": "^2.3.0", "eslint-plugin-import": "^2.22.1", + "eslint-remote-tester": "^0.4.0", "espree": "^3.5.4", "istanbul": "^0.4.5", "markdown-magic": "^1.0.0",