From 5a9fa489d3868650e6af0dea2abe842c60642b45 Mon Sep 17 00:00:00 2001 From: Ash Wilson Date: Tue, 8 Jan 2019 14:30:54 -0500 Subject: [PATCH 1/4] :arrow_up: Relay and family --- package-lock.json | 205 ++++++++++++++++++++++++++-------------------- package.json | 8 +- 2 files changed, 119 insertions(+), 94 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6deb8786ee..a400756b8f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -186,9 +186,9 @@ } }, "@nodelib/fs.stat": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.2.tgz", - "integrity": "sha512-yprFYuno9FtNsSHVlSWd+nRlmGoAbqbeCwOryP6sC/zoCjhpArcRMYp19EvpSUSizJAlsXEwJv+wcWS9XaXdMw==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", "dev": true }, "@sinonjs/formatio": { @@ -370,7 +370,6 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, "requires": { "sprintf-js": "~1.0.2" } @@ -956,11 +955,21 @@ } } }, + "babel-plugin-macros": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.4.5.tgz", + "integrity": "sha512-+/9yteNQw3yuZ3krQUfjAeoT/f4EAdn3ELwhFfDj0rTMIaoHfIdrcLePOfIaL0qmFLpIcgPIL2Lzm58h+CGWaw==", + "requires": { + "cosmiconfig": "^5.0.5", + "resolve": "^1.8.1" + } + }, "babel-plugin-relay": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/babel-plugin-relay/-/babel-plugin-relay-1.6.0.tgz", - "integrity": "sha1-oiTaUkNi1pA6UkIUobhAUw/fvSg=", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/babel-plugin-relay/-/babel-plugin-relay-1.7.0.tgz", + "integrity": "sha512-4kDgElsQ3+m1YHGinm2CWu55XzpPqEzf42JuYWUAJWvTBcHkd/VGVftO9C6BjnssUU7fDH9izn3qMtp0XFWGKw==", "requires": { + "babel-plugin-macros": "^2.0.0", "babel-runtime": "^6.23.0", "babel-types": "^6.24.1" } @@ -1821,6 +1830,21 @@ "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", "dev": true }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "requires": { + "callsites": "^2.0.0" + }, + "dependencies": { + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" + } + } + }, "caller-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", @@ -2152,6 +2176,28 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, + "cosmiconfig": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.7.tgz", + "integrity": "sha512-PcLqxTKiDmNT6pSpy4N6KtuPwb53W+2tzNvwOZw0WH9N6O0vLIBq0x8aj8Oj75ere4YcGi48bDFCL+3fRJdlNA==", + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.9.0", + "parse-json": "^4.0.0" + }, + "dependencies": { + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + } + } + }, "cross-env": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz", @@ -2842,7 +2888,6 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", - "dev": true, "requires": { "is-arrayish": "^0.2.1" } @@ -3164,8 +3209,7 @@ "esprima": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha1-RJnt3NERDgshi6zy+n9/WfVcqAQ=", - "dev": true + "integrity": "sha1-RJnt3NERDgshi6zy+n9/WfVcqAQ=" }, "esquery": { "version": "1.0.1", @@ -3417,16 +3461,16 @@ "dev": true }, "fast-glob": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.3.tgz", - "integrity": "sha512-NiX+JXjnx43RzvVFwRWfPKo4U+1BrK5pJPsHQdKMlLoFHrrGktXglQhHliSihWAq+m1z6fHk3uwGHrtRbS9vLA==", + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.6.tgz", + "integrity": "sha512-0BvMaZc1k9F+MeWWMe8pL6YltFzZYcJsYU7D4JyDA6PAczaXvxqQQ/z+mDF7/4Mw01DeUc+i3CTKajnkANkV4w==", "dev": true, "requires": { "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.0.1", + "@nodelib/fs.stat": "^1.1.2", "glob-parent": "^3.1.0", "is-glob": "^4.0.0", - "merge2": "^1.2.1", + "merge2": "^1.2.3", "micromatch": "^3.1.10" } }, @@ -3451,9 +3495,9 @@ } }, "fbjs": { - "version": "0.8.16", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz", - "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", + "version": "0.8.17", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", + "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", "requires": { "core-js": "^1.0.0", "isomorphic-fetch": "^2.1.1", @@ -3461,22 +3505,13 @@ "object-assign": "^4.1.0", "promise": "^7.1.1", "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.9" + "ua-parser-js": "^0.7.18" }, "dependencies": { "core-js": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" - }, - "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "requires": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } } } }, @@ -4116,6 +4151,30 @@ "integrity": "sha1-E7TTyxK++hVIKib+Gy665kAHHks=", "dev": true }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "dependencies": { + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + } + } + }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -4260,8 +4319,7 @@ "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "is-boolean-object": { "version": "1.0.0", @@ -4334,6 +4392,11 @@ } } }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" + }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -4705,7 +4768,6 @@ "version": "3.11.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz", "integrity": "sha1-WXwai9VxUvJtYizkEXhRpR9euu8=", - "dev": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -4722,6 +4784,11 @@ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", @@ -6230,8 +6297,7 @@ "path-parse": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" }, "path-to-regexp": { "version": "1.7.0", @@ -6543,14 +6609,14 @@ "dev": true }, "react-relay": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/react-relay/-/react-relay-1.6.0.tgz", - "integrity": "sha512-8clmRHXNo96pcdkA8ZeiqF7xGjE+mjSbdX/INj5upRm2M8AprSrFk2Oz5nH084O+0hvXQhZtFyraXJWQO9ld3A==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/react-relay/-/react-relay-1.7.0.tgz", + "integrity": "sha512-vZOs1iK6LxqeaAelwSuD5eVXnQux5eVIrik/kxKt6Y3j6ylrjrdTadmgO6sapGc0TG61VtFK5CKPOtW+XSNotg==", "requires": { "babel-runtime": "^6.23.0", - "fbjs": "^0.8.14", + "fbjs": "0.8.17", "prop-types": "^15.5.8", - "relay-runtime": "1.6.0" + "relay-runtime": "1.7.0" } }, "react-select": { @@ -6843,33 +6909,10 @@ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", "dev": true }, - "fbjs": { - "version": "0.8.17", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", - "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", - "dev": true, - "requires": { - "core-js": "^1.0.0", - "isomorphic-fetch": "^2.1.1", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" - }, - "dependencies": { - "core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=", - "dev": true - } - } - }, "jsesc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz", - "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, "lodash": { @@ -6883,32 +6926,16 @@ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true - }, - "relay-runtime": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/relay-runtime/-/relay-runtime-1.7.0.tgz", - "integrity": "sha512-gvx01aRoLHdIMQoIjMQ79js4BR9JZVfF/SoSiLXvWOgDWEnD7RKb80zmCZTByCpka0GwFzkVwBWUy1gW6g0zlQ==", - "dev": true, - "requires": { - "babel-runtime": "^6.23.0", - "fbjs": "0.8.17" - } - }, - "ua-parser-js": { - "version": "0.7.19", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.19.tgz", - "integrity": "sha512-T3PVJ6uz8i0HzPxOF9SWzWAlfN/DavlpQqepn22xgve/5QecC+XMCAtmUNnY7C9StehaV6exjUCI801lOI7QlQ==", - "dev": true } } }, "relay-runtime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/relay-runtime/-/relay-runtime-1.6.0.tgz", - "integrity": "sha512-UJiEHp8CX2uFxXdM0nVLTCQ6yAT0GLmyMceXLISuW/l2a9jrS9a4MdZgdr/9UkkYno7Sj1hU/EUIQ0GaVkou8g==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/relay-runtime/-/relay-runtime-1.7.0.tgz", + "integrity": "sha512-gvx01aRoLHdIMQoIjMQ79js4BR9JZVfF/SoSiLXvWOgDWEnD7RKb80zmCZTByCpka0GwFzkVwBWUy1gW6g0zlQ==", "requires": { "babel-runtime": "^6.23.0", - "fbjs": "^0.8.14" + "fbjs": "0.8.17" } }, "repeat-element": { @@ -7001,7 +7028,6 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.9.0.tgz", "integrity": "sha512-TZNye00tI67lwYvzxCxHGjwTNlUV70io54/Ed4j6PscB8xVfuBJpRenI/o6dVk0cY0PYTY27AgCoGGxRnYuItQ==", - "dev": true, "requires": { "path-parse": "^1.0.6" } @@ -7484,8 +7510,7 @@ "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, "sshpk": { "version": "1.14.1", @@ -8101,9 +8126,9 @@ "dev": true }, "ua-parser-js": { - "version": "0.7.14", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.14.tgz", - "integrity": "sha1-EQ1T+kw/MmwSEpK76skE0uAzh8o=" + "version": "0.7.19", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.19.tgz", + "integrity": "sha512-T3PVJ6uz8i0HzPxOF9SWzWAlfN/DavlpQqepn22xgve/5QecC+XMCAtmUNnY7C9StehaV6exjUCI801lOI7QlQ==" }, "uglify-js": { "version": "2.8.29", diff --git a/package.json b/package.json index 7979e96b16..2a6656ad67 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "atom-babel6-transpiler": "1.2.0", "babel-generator": "6.26.1", "babel-plugin-chai-assert-async": "0.1.0", - "babel-plugin-relay": "1.6.0", + "babel-plugin-relay": "1.7.0", "babel-plugin-transform-class-properties": "6.24.1", "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", "babel-plugin-transform-object-rest-spread": "6.26.0", @@ -61,10 +61,10 @@ "prop-types": "15.6.2", "react": "16.7.0", "react-dom": "16.7.0", - "react-relay": "1.6.0", + "react-relay": "1.7.0", "react-select": "1.2.1", "react-tabs": "^3.0.0", - "relay-runtime": "1.6.0", + "relay-runtime": "1.7.0", "temp": "0.9.0", "tinycolor2": "1.4.1", "tree-kill": "1.2.1", @@ -75,10 +75,10 @@ }, "devDependencies": { "@smashwilson/atom-mocha-test-runner": "1.4.0", + "@smashwilson/codecov": "3.1.1-azure0.0", "babel-plugin-istanbul": "4.1.6", "chai": "4.1.2", "chai-as-promised": "7.1.1", - "@smashwilson/codecov": "3.1.1-azure0.0", "cross-env": "5.2.0", "cross-unzip": "0.2.1", "dedent-js": "1.0.1", From eed5b9d2714fcd506a817120d30d84f6f9f14272 Mon Sep 17 00:00:00 2001 From: Ash Wilson Date: Tue, 8 Jan 2019 15:18:14 -0500 Subject: [PATCH 2/4] Relay changed its generated component names --- .../issueish-detail-controller.test.js | 30 +++++++++---------- test/views/issue-detail-view.test.js | 6 ++-- test/views/issueish-timeline-view.test.js | 10 +++---- test/views/pr-detail-view.test.js | 29 +++++++++--------- test/views/pr-statuses-view.test.js | 2 +- .../commit-comment-thread-view.test.js | 2 +- .../cross-referenced-events-view.test.js | 2 +- 7 files changed, 41 insertions(+), 40 deletions(-) diff --git a/test/controllers/issueish-detail-controller.test.js b/test/controllers/issueish-detail-controller.test.js index 422b6b6aab..b3687ca7d2 100644 --- a/test/controllers/issueish-detail-controller.test.js +++ b/test/controllers/issueish-detail-controller.test.js @@ -105,29 +105,29 @@ describe('IssueishDetailController', function() { }); it('is disabled if the repository is loading or absent', function() { const wrapper = shallow(buildApp({}, {isAbsent: true})); - const op = wrapper.find('Relay(BarePullRequestDetailView)').prop('checkoutOp'); + const op = wrapper.find('ForwardRef(Relay(BarePullRequestDetailView))').prop('checkoutOp'); assert.isFalse(op.isEnabled()); assert.strictEqual(op.getMessage(), 'No repository found'); wrapper.setProps({isAbsent: false, isLoading: true}); - const op1 = wrapper.find('Relay(BarePullRequestDetailView)').prop('checkoutOp'); + const op1 = wrapper.find('ForwardRef(Relay(BarePullRequestDetailView))').prop('checkoutOp'); assert.isFalse(op1.isEnabled()); assert.strictEqual(op1.getMessage(), 'Loading'); wrapper.setProps({isAbsent: false, isLoading: false, isPresent: false}); - const op2 = wrapper.find('Relay(BarePullRequestDetailView)').prop('checkoutOp'); + const op2 = wrapper.find('ForwardRef(Relay(BarePullRequestDetailView))').prop('checkoutOp'); assert.isFalse(op2.isEnabled()); assert.strictEqual(op2.getMessage(), 'No repository found'); }); it('is disabled if the local repository is merging or rebasing', function() { const wrapper = shallow(buildApp({}, {isMerging: true})); - const op0 = wrapper.find('Relay(BarePullRequestDetailView)').prop('checkoutOp'); + const op0 = wrapper.find('ForwardRef(Relay(BarePullRequestDetailView))').prop('checkoutOp'); assert.isFalse(op0.isEnabled()); assert.strictEqual(op0.getMessage(), 'Merge in progress'); wrapper.setProps({isMerging: false, isRebasing: true}); - const op1 = wrapper.find('Relay(BarePullRequestDetailView)').prop('checkoutOp'); + const op1 = wrapper.find('ForwardRef(Relay(BarePullRequestDetailView))').prop('checkoutOp'); assert.isFalse(op1.isEnabled()); assert.strictEqual(op1.getMessage(), 'Rebase in progress'); }); @@ -135,7 +135,7 @@ describe('IssueishDetailController', function() { const props = issueishDetailControllerProps({}, {}); props.repository.pullRequest.headRepository = null; const wrapper = shallow(buildApp({}, {...props})); - const op = wrapper.find('Relay(BarePullRequestDetailView)').prop('checkoutOp'); + const op = wrapper.find('ForwardRef(Relay(BarePullRequestDetailView))').prop('checkoutOp'); assert.isFalse(op.isEnabled()); assert.strictEqual(op.getMessage(), 'Pull request head repository does not exist'); }); @@ -159,7 +159,7 @@ describe('IssueishDetailController', function() { remotes, })); - const op = wrapper.find('Relay(BarePullRequestDetailView)').prop('checkoutOp'); + const op = wrapper.find('ForwardRef(Relay(BarePullRequestDetailView))').prop('checkoutOp'); assert.isFalse(op.isEnabled()); assert.strictEqual(op.getMessage(), 'Current'); }); @@ -185,7 +185,7 @@ describe('IssueishDetailController', function() { remotes, })); - const op = wrapper.find('Relay(BarePullRequestDetailView)').prop('checkoutOp'); + const op = wrapper.find('ForwardRef(Relay(BarePullRequestDetailView))').prop('checkoutOp'); assert.isFalse(op.isEnabled()); assert.strictEqual(op.getMessage(), 'Current'); }); @@ -217,7 +217,7 @@ describe('IssueishDetailController', function() { })); sinon.spy(reporterProxy, 'incrementCounter'); - await wrapper.find('Relay(BarePullRequestDetailView)').prop('checkoutOp').run(); + await wrapper.find('ForwardRef(Relay(BarePullRequestDetailView))').prop('checkoutOp').run(); assert.isTrue(addRemote.calledWith('ccc', 'git@github.com:ccc/ddd.git')); assert.isTrue(fetch.calledWith('refs/heads/feature', {remoteName: 'ccc'})); @@ -255,7 +255,7 @@ describe('IssueishDetailController', function() { })); sinon.spy(reporterProxy, 'incrementCounter'); - await wrapper.find('Relay(BarePullRequestDetailView)').prop('checkoutOp').run(); + await wrapper.find('ForwardRef(Relay(BarePullRequestDetailView))').prop('checkoutOp').run(); assert.isTrue(fetch.calledWith('refs/heads/clever-name', {remoteName: 'existing'})); assert.isTrue(checkout.calledWith('pr-789/ccc/clever-name', { @@ -298,7 +298,7 @@ describe('IssueishDetailController', function() { })); sinon.spy(reporterProxy, 'incrementCounter'); - await wrapper.find('Relay(BarePullRequestDetailView)').prop('checkoutOp').run(); + await wrapper.find('ForwardRef(Relay(BarePullRequestDetailView))').prop('checkoutOp').run(); assert.isTrue(checkout.calledWith('existing')); assert.isTrue(pull.calledWith('refs/heads/yes', {remoteName: 'upstream', ffOnly: true})); @@ -310,7 +310,7 @@ describe('IssueishDetailController', function() { const wrapper = shallow(buildApp({}, {addRemote})); // Should not throw - await wrapper.find('Relay(BarePullRequestDetailView)').prop('checkoutOp').run(); + await wrapper.find('ForwardRef(Relay(BarePullRequestDetailView))').prop('checkoutOp').run(); assert.isTrue(addRemote.called); }); @@ -319,7 +319,7 @@ describe('IssueishDetailController', function() { const wrapper = shallow(buildApp({}, {addRemote})); await assert.isRejected( - wrapper.find('Relay(BarePullRequestDetailView)').prop('checkoutOp').run(), + wrapper.find('ForwardRef(Relay(BarePullRequestDetailView))').prop('checkoutOp').run(), /not handled by the pipeline/, ); assert.isTrue(addRemote.called); @@ -329,7 +329,7 @@ describe('IssueishDetailController', function() { describe('openCommit', function() { it('opens a CommitDetailItem in the workspace', async function() { const wrapper = shallow(buildApp({}, {workdirPath: __dirname})); - await wrapper.find('Relay(BarePullRequestDetailView)').prop('openCommit')({sha: '1234'}); + await wrapper.find('ForwardRef(Relay(BarePullRequestDetailView))').prop('openCommit')({sha: '1234'}); assert.include( atomEnv.workspace.getPaneItems().map(item => item.getURI()), @@ -341,7 +341,7 @@ describe('IssueishDetailController', function() { sinon.stub(reporterProxy, 'addEvent'); const wrapper = shallow(buildApp({}, {workdirPath: __dirname})); - await wrapper.find('Relay(BarePullRequestDetailView)').prop('openCommit')({sha: '1234'}); + await wrapper.find('ForwardRef(Relay(BarePullRequestDetailView))').prop('openCommit')({sha: '1234'}); assert.isTrue( reporterProxy.addEvent.calledWith( diff --git a/test/views/issue-detail-view.test.js b/test/views/issue-detail-view.test.js index ecf93724e1..9417b269c6 100644 --- a/test/views/issue-detail-view.test.js +++ b/test/views/issue-detail-view.test.js @@ -34,7 +34,7 @@ describe('IssueDetailView', function() { assert.strictEqual(link.text(), 'user1/repo#200'); assert.strictEqual(link.prop('href'), 'https://github.com/user1/repo/issues/200'); - assert.isFalse(wrapper.find('Relay(PrStatuses)').exists()); + assert.isFalse(wrapper.find('ForwardRef(Relay(PrStatuses))').exists()); assert.isFalse(wrapper.find('.github-IssueishDetailView-checkoutButton').exists()); const avatarLink = wrapper.find('.github-IssueishDetailView-avatar'); @@ -49,8 +49,8 @@ describe('IssueDetailView', function() { assert.lengthOf(wrapper.find(EmojiReactionsView), 1); - assert.isNotNull(wrapper.find('Relay(IssueishTimelineView)').prop('issue')); - assert.notOk(wrapper.find('Relay(IssueishTimelineView)').prop('pullRequest')); + assert.isNotNull(wrapper.find('ForwardRef(Relay(IssueishTimelineView))').prop('issue')); + assert.notOk(wrapper.find('ForwardRef(Relay(IssueishTimelineView))').prop('pullRequest')); }); it('renders a placeholder issue body', function() { diff --git a/test/views/issueish-timeline-view.test.js b/test/views/issueish-timeline-view.test.js index 9f3479bbe7..4135f9961c 100644 --- a/test/views/issueish-timeline-view.test.js +++ b/test/views/issueish-timeline-view.test.js @@ -71,19 +71,19 @@ describe('IssueishTimelineView', function() { ], })); - const commitGroup0 = wrapper.find('Relay(BareCommitsView)').filterWhere(c => c.prop('nodes').length === 2); + const commitGroup0 = wrapper.find('ForwardRef(Relay(BareCommitsView))').filterWhere(c => c.prop('nodes').length === 2); assert.deepEqual(commitGroup0.prop('nodes').map(n => n.id), [0, 1]); - const commentGroup0 = wrapper.find('Grouped(Relay(BareIssueCommentView))').filterWhere(c => c.prop('nodes').length === 1); + const commentGroup0 = wrapper.find('Grouped(ForwardRef(Relay(BareIssueCommentView)))').filterWhere(c => c.prop('nodes').length === 1); assert.deepEqual(commentGroup0.prop('nodes').map(n => n.id), [2]); - const mergedGroup = wrapper.find('Grouped(Relay(BareMergedEventView))').filterWhere(c => c.prop('nodes').length === 1); + const mergedGroup = wrapper.find('Grouped(ForwardRef(Relay(BareMergedEventView)))').filterWhere(c => c.prop('nodes').length === 1); assert.deepEqual(mergedGroup.prop('nodes').map(n => n.id), [3]); - const commitGroup1 = wrapper.find('Relay(BareCommitsView)').filterWhere(c => c.prop('nodes').length === 4); + const commitGroup1 = wrapper.find('ForwardRef(Relay(BareCommitsView))').filterWhere(c => c.prop('nodes').length === 4); assert.deepEqual(commitGroup1.prop('nodes').map(n => n.id), [4, 5, 6, 7]); - const commentGroup1 = wrapper.find('Grouped(Relay(BareIssueCommentView))').filterWhere(c => c.prop('nodes').length === 2); + const commentGroup1 = wrapper.find('Grouped(ForwardRef(Relay(BareIssueCommentView)))').filterWhere(c => c.prop('nodes').length === 2); assert.deepEqual(commentGroup1.prop('nodes').map(n => n.id), [8, 9]); }); diff --git a/test/views/pr-detail-view.test.js b/test/views/pr-detail-view.test.js index 33f3a0b55e..62364fe02d 100644 --- a/test/views/pr-detail-view.test.js +++ b/test/views/pr-detail-view.test.js @@ -42,7 +42,7 @@ describe('PullRequestDetailView', function() { assert.isTrue(wrapper.find('.github-IssueishDetailView-checkoutButton').exists()); - assert.isDefined(wrapper.find('Relay(BarePrStatusesView)[displayType="check"]').prop('pullRequest')); + assert.isDefined(wrapper.find('ForwardRef(Relay(BarePrStatusesView))[displayType="check"]').prop('pullRequest')); const avatarLink = wrapper.find('.github-IssueishDetailView-avatar'); assert.strictEqual(avatarLink.prop('href'), 'https://github.com/author0'); @@ -56,9 +56,9 @@ describe('PullRequestDetailView', function() { assert.lengthOf(wrapper.find(EmojiReactionsView), 1); - assert.notOk(wrapper.find('Relay(IssueishTimelineView)').prop('issue')); - assert.isNotNull(wrapper.find('Relay(IssueishTimelineView)').prop('pullRequest')); - assert.isNotNull(wrapper.find('Relay(BarePrStatusesView)[displayType="full"]').prop('pullRequest')); + assert.notOk(wrapper.find('ForwardRef(Relay(IssueishTimelineView))').prop('issue')); + assert.isNotNull(wrapper.find('ForwardRef(Relay(IssueishTimelineView))').prop('pullRequest')); + assert.isNotNull(wrapper.find('ForwardRef(Relay(BarePrStatusesView))[displayType="full"]').prop('pullRequest')); assert.strictEqual(wrapper.find('.github-IssueishDetailView-baseRefName').text(), baseRefName); assert.strictEqual(wrapper.find('.github-IssueishDetailView-headRefName').text(), headRefName); @@ -104,28 +104,29 @@ describe('PullRequestDetailView', function() { checkoutOp: new EnableableOperation(() => {}).disable(checkoutStates.CURRENT), })); - assert.isTrue(wrapper.find('Relay(IssueishTimelineView)').prop('onBranch')); - assert.isTrue(wrapper.find('Relay(PrCommitsView)').prop('onBranch')); + assert.isTrue(wrapper.find('ForwardRef(Relay(IssueishTimelineView))').prop('onBranch')); + assert.isTrue(wrapper.find('ForwardRef(Relay(IssueishTimelineView))').prop('onBranch')); + assert.isTrue(wrapper.find('ForwardRef(Relay(PrCommitsView))').prop('onBranch')); }); it('tells its tabs when the pull request is not checked out', function() { const checkoutOp = new EnableableOperation(() => {}); const wrapper = shallow(buildApp({}, {checkoutOp})); - assert.isFalse(wrapper.find('Relay(IssueishTimelineView)').prop('onBranch')); - assert.isFalse(wrapper.find('Relay(PrCommitsView)').prop('onBranch')); + assert.isFalse(wrapper.find('ForwardRef(Relay(IssueishTimelineView))').prop('onBranch')); + assert.isFalse(wrapper.find('ForwardRef(Relay(PrCommitsView))').prop('onBranch')); wrapper.setProps({checkoutOp: checkoutOp.disable(checkoutStates.HIDDEN, 'message')}); - assert.isFalse(wrapper.find('Relay(IssueishTimelineView)').prop('onBranch')); - assert.isFalse(wrapper.find('Relay(PrCommitsView)').prop('onBranch')); + assert.isFalse(wrapper.find('ForwardRef(Relay(IssueishTimelineView))').prop('onBranch')); + assert.isFalse(wrapper.find('ForwardRef(Relay(PrCommitsView))').prop('onBranch')); wrapper.setProps({checkoutOp: checkoutOp.disable(checkoutStates.DISABLED, 'message')}); - assert.isFalse(wrapper.find('Relay(IssueishTimelineView)').prop('onBranch')); - assert.isFalse(wrapper.find('Relay(PrCommitsView)').prop('onBranch')); + assert.isFalse(wrapper.find('ForwardRef(Relay(IssueishTimelineView))').prop('onBranch')); + assert.isFalse(wrapper.find('ForwardRef(Relay(PrCommitsView))').prop('onBranch')); wrapper.setProps({checkoutOp: checkoutOp.disable(checkoutStates.BUSY, 'message')}); - assert.isFalse(wrapper.find('Relay(IssueishTimelineView)').prop('onBranch')); - assert.isFalse(wrapper.find('Relay(PrCommitsView)').prop('onBranch')); + assert.isFalse(wrapper.find('ForwardRef(Relay(IssueishTimelineView))').prop('onBranch')); + assert.isFalse(wrapper.find('ForwardRef(Relay(PrCommitsView))').prop('onBranch')); }); it('renders pull request information for cross repository PR', function() { diff --git a/test/views/pr-statuses-view.test.js b/test/views/pr-statuses-view.test.js index 65dc150fad..5b6077291f 100644 --- a/test/views/pr-statuses-view.test.js +++ b/test/views/pr-statuses-view.test.js @@ -109,7 +109,7 @@ describe('PrStatusesView', function() { it('renders a context view for each status context', function() { const wrapper = shallow(buildApp({summaryState: 'FAILURE', states: ['SUCCESS', 'FAILURE', 'ERROR']})); - const contextViews = wrapper.find('Relay(BarePrStatusContextView)'); + const contextViews = wrapper.find('ForwardRef(Relay(BarePrStatusContextView))'); assert.deepEqual(contextViews.map(v => v.prop('context').state), ['SUCCESS', 'FAILURE', 'ERROR']); }); diff --git a/test/views/timeline-items/commit-comment-thread-view.test.js b/test/views/timeline-items/commit-comment-thread-view.test.js index b80c1942a4..7c1248288e 100644 --- a/test/views/timeline-items/commit-comment-thread-view.test.js +++ b/test/views/timeline-items/commit-comment-thread-view.test.js @@ -24,7 +24,7 @@ describe('CommitCommentThreadView', function() { ], })); - const commentViews = wrapper.find('Relay(BareCommitCommentView)'); + const commentViews = wrapper.find('ForwardRef(Relay(BareCommitCommentView))'); assert.deepEqual(commentViews.map(c => c.prop('item').author.login), ['user0', 'user1', 'user2']); diff --git a/test/views/timeline-items/cross-referenced-events-view.test.js b/test/views/timeline-items/cross-referenced-events-view.test.js index 4834306516..ed678e91e0 100644 --- a/test/views/timeline-items/cross-referenced-events-view.test.js +++ b/test/views/timeline-items/cross-referenced-events-view.test.js @@ -15,7 +15,7 @@ describe('CrossReferencedEventsView', function() { it('renders a child component for each grouped child event', function() { const wrapper = shallow(buildApp({nodeOpts: [{}, {}, {}]})); - assert.lengthOf(wrapper.find('Relay(BareCrossReferencedEventView)'), 3); + assert.lengthOf(wrapper.find('ForwardRef(Relay(BareCrossReferencedEventView))'), 3); }); it('generates a summary based on a single pull request cross-reference', function() { From fbb72f488244d1fe9a4c4d8e47c15f5c9207be0a Mon Sep 17 00:00:00 2001 From: Vanessa Yuen Date: Wed, 9 Jan 2019 14:46:07 +0100 Subject: [PATCH 3/4] relay changed where the displayname is stored --- lib/views/issueish-timeline-view.js | 2 +- test/views/issueish-timeline-view.test.js | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/views/issueish-timeline-view.js b/lib/views/issueish-timeline-view.js index 923f919abc..dcedf15d46 100644 --- a/lib/views/issueish-timeline-view.js +++ b/lib/views/issueish-timeline-view.js @@ -13,7 +13,7 @@ import CommitCommentThreadView from './timeline-items/commit-comment-thread-view export function collectionRenderer(Component, styleAsTimelineItem = true) { return class GroupedComponent extends React.Component { - static displayName = `Grouped(${Component.displayName})` + static displayName = `Grouped(${Component.render.displayName})` static propTypes = { nodes: PropTypes.array.isRequired, diff --git a/test/views/issueish-timeline-view.test.js b/test/views/issueish-timeline-view.test.js index 4135f9961c..90dfbe8e72 100644 --- a/test/views/issueish-timeline-view.test.js +++ b/test/views/issueish-timeline-view.test.js @@ -74,16 +74,16 @@ describe('IssueishTimelineView', function() { const commitGroup0 = wrapper.find('ForwardRef(Relay(BareCommitsView))').filterWhere(c => c.prop('nodes').length === 2); assert.deepEqual(commitGroup0.prop('nodes').map(n => n.id), [0, 1]); - const commentGroup0 = wrapper.find('Grouped(ForwardRef(Relay(BareIssueCommentView)))').filterWhere(c => c.prop('nodes').length === 1); + const commentGroup0 = wrapper.find('Grouped(Relay(BareIssueCommentView))').filterWhere(c => c.prop('nodes').length === 1); assert.deepEqual(commentGroup0.prop('nodes').map(n => n.id), [2]); - const mergedGroup = wrapper.find('Grouped(ForwardRef(Relay(BareMergedEventView)))').filterWhere(c => c.prop('nodes').length === 1); + const mergedGroup = wrapper.find('Grouped(Relay(BareMergedEventView))').filterWhere(c => c.prop('nodes').length === 1); assert.deepEqual(mergedGroup.prop('nodes').map(n => n.id), [3]); const commitGroup1 = wrapper.find('ForwardRef(Relay(BareCommitsView))').filterWhere(c => c.prop('nodes').length === 4); assert.deepEqual(commitGroup1.prop('nodes').map(n => n.id), [4, 5, 6, 7]); - const commentGroup1 = wrapper.find('Grouped(ForwardRef(Relay(BareIssueCommentView)))').filterWhere(c => c.prop('nodes').length === 2); + const commentGroup1 = wrapper.find('Grouped(Relay(BareIssueCommentView))').filterWhere(c => c.prop('nodes').length === 2); assert.deepEqual(commentGroup1.prop('nodes').map(n => n.id), [8, 9]); }); From 8699262ef71b6cc218cee3e913caba8908b17970 Mon Sep 17 00:00:00 2001 From: Vanessa Yuen Date: Wed, 9 Jan 2019 16:34:04 +0100 Subject: [PATCH 4/4] ok this should do it --- lib/views/issueish-timeline-view.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/views/issueish-timeline-view.js b/lib/views/issueish-timeline-view.js index dcedf15d46..286d3a5b7e 100644 --- a/lib/views/issueish-timeline-view.js +++ b/lib/views/issueish-timeline-view.js @@ -13,7 +13,7 @@ import CommitCommentThreadView from './timeline-items/commit-comment-thread-view export function collectionRenderer(Component, styleAsTimelineItem = true) { return class GroupedComponent extends React.Component { - static displayName = `Grouped(${Component.render.displayName})` + static displayName = `Grouped(${Component.render ? Component.render.displayName : Component.displayName})` static propTypes = { nodes: PropTypes.array.isRequired,