diff --git a/backend/package.json b/backend/package.json index 6e4a05c12..ff2f4d2f8 100644 --- a/backend/package.json +++ b/backend/package.json @@ -41,8 +41,8 @@ "@sentry/node": "^5.15.4", "apollo-cache-inmemory": "~1.6.5", "apollo-client": "~2.6.8", - "apollo-link-context": "~1.0.19", - "apollo-link-http": "~1.5.16", + "apollo-link-context": "~1.0.20", + "apollo-link-http": "~1.5.17", "apollo-server": "~2.11.0", "apollo-server-express": "^2.12.0", "aws-sdk": "^2.652.0", @@ -129,9 +129,9 @@ "eslint-plugin-prettier": "~3.1.2", "eslint-plugin-promise": "~4.2.1", "eslint-plugin-standard": "~4.0.1", - "jest": "~25.2.7", + "jest": "~25.3.0", "nodemon": "~2.0.2", - "prettier": "~2.0.2", + "prettier": "~2.0.4", "rosie": "^2.0.1", "supertest": "~4.0.2" }, diff --git a/backend/yarn.lock b/backend/yarn.lock index 19e716fd5..d53c6b169 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -422,13 +422,27 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-bigint@^7.0.0": +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.0.0", "@babel/plugin-syntax-bigint@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== dependencies: "@babel/helper-plugin-utils" "^7.8.0" +"@babel/plugin-syntax-class-properties@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.8.3.tgz#6cb933a8872c8d359bfde69bbeaae5162fd1e8f7" + integrity sha512-UcAyQWg2bAN647Q+O811tG9MrJ38Z10jjhQdKNAL8fsyPzE3cCN/uT+f55cFVY4aGO4jqJAvmqsuY3GQDwAoXg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-dynamic-import@^7.8.0": version "7.8.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.0.tgz#3a6c1cd36af923db602df83c5aa72e08bb14353a" @@ -443,6 +457,20 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.8.3.tgz#3995d7d7ffff432f6ddc742b47e730c054599897" + integrity sha512-Zpg2Sgc++37kuFl6ppq2Q7Awc6E6AIW671x5PY8E/f7MCIyPPGK/EoeZXvvY3P42exZ3Q4/t3YOzP/HiN79jDg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": version "7.8.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.0.tgz#5d8f24ecffa4ae74164e53264953c5ea8ba6d149" @@ -450,6 +478,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + "@babel/plugin-syntax-numeric-separator@^7.8.0", "@babel/plugin-syntax-numeric-separator@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz#0e3fb63e09bea1b11e96467271c8308007e7c41f" @@ -464,6 +499,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + "@babel/plugin-syntax-optional-catch-binding@^7.8.0": version "7.8.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.0.tgz#180c7bdd6b7fd81cc6d18269de12d5ddd60cabce" @@ -471,6 +513,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + "@babel/plugin-syntax-optional-chaining@^7.8.0": version "7.8.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.0.tgz#c40f4d4d6a4f5e71d2bfd949b0a7f1e1e6792fe0" @@ -478,6 +527,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + "@babel/plugin-syntax-throw-expressions@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-throw-expressions/-/plugin-syntax-throw-expressions-7.8.3.tgz#c763bcf26d202ddb65f1299a29d63aad312adb54" @@ -1008,43 +1064,43 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== -"@jest/console@^25.2.6": - version "25.2.6" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-25.2.6.tgz#f594847ec8aef3cf27f448abe97e76e491212e97" - integrity sha512-bGp+0PicZVCEhb+ifnW9wpKWONNdkhtJsRE7ap729hiAfTvCN6VhGx0s/l/V/skA2pnyqq+N/7xl9ZWfykDpsg== +"@jest/console@^25.3.0": + version "25.3.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-25.3.0.tgz#33b56b81238427bf3ebe3f7b3378d2f79cdbd409" + integrity sha512-LvSDNqpmZIZyweFaEQ6wKY7CbexPitlsLHGJtcooNECo0An/w49rFhjCJzu6efeb6+a3ee946xss1Jcd9r03UQ== dependencies: "@jest/source-map" "^25.2.6" chalk "^3.0.0" - jest-util "^25.2.6" + jest-util "^25.3.0" slash "^3.0.0" -"@jest/core@^25.2.7": - version "25.2.7" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-25.2.7.tgz#58d697687e94ee644273d15e4eed6a20e27187cd" - integrity sha512-Nd6ELJyR+j0zlwhzkfzY70m04hAur0VnMwJXVe4VmmD/SaQ6DEyal++ERQ1sgyKIKKEqRuui6k/R0wHLez4P+g== +"@jest/core@^25.3.0": + version "25.3.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-25.3.0.tgz#80f97a7a8b59dde741a24f30871cc26d0197d426" + integrity sha512-+D5a/tFf6pA/Gqft2DLBp/yeSRgXhlJ+Wpst0X/ZkfTRP54qDR3C61VfHwaex+GzZBiTcE9vQeoZ2v5T10+Mqw== dependencies: - "@jest/console" "^25.2.6" - "@jest/reporters" "^25.2.6" - "@jest/test-result" "^25.2.6" - "@jest/transform" "^25.2.6" - "@jest/types" "^25.2.6" + "@jest/console" "^25.3.0" + "@jest/reporters" "^25.3.0" + "@jest/test-result" "^25.3.0" + "@jest/transform" "^25.3.0" + "@jest/types" "^25.3.0" ansi-escapes "^4.2.1" chalk "^3.0.0" exit "^0.1.2" graceful-fs "^4.2.3" - jest-changed-files "^25.2.6" - jest-config "^25.2.7" - jest-haste-map "^25.2.6" - jest-message-util "^25.2.6" + jest-changed-files "^25.3.0" + jest-config "^25.3.0" + jest-haste-map "^25.3.0" + jest-message-util "^25.3.0" jest-regex-util "^25.2.6" - jest-resolve "^25.2.6" - jest-resolve-dependencies "^25.2.7" - jest-runner "^25.2.7" - jest-runtime "^25.2.7" - jest-snapshot "^25.2.7" - jest-util "^25.2.6" - jest-validate "^25.2.6" - jest-watcher "^25.2.7" + jest-resolve "^25.3.0" + jest-resolve-dependencies "^25.3.0" + jest-runner "^25.3.0" + jest-runtime "^25.3.0" + jest-snapshot "^25.3.0" + jest-util "^25.3.0" + jest-validate "^25.3.0" + jest-watcher "^25.3.0" micromatch "^4.0.2" p-each-series "^2.1.0" realpath-native "^2.0.0" @@ -1052,36 +1108,36 @@ slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^25.2.6": - version "25.2.6" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-25.2.6.tgz#8f7931e79abd81893ce88b7306f0cc4744835000" - integrity sha512-17WIw+wCb9drRNFw1hi8CHah38dXVdOk7ga9exThhGtXlZ9mK8xH4DjSB9uGDGXIWYSHmrxoyS6KJ7ywGr7bzg== +"@jest/environment@^25.3.0": + version "25.3.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-25.3.0.tgz#587f28ddb4b0dfe97404d3d4a4c9dbfa0245fb2e" + integrity sha512-vgooqwJTHLLak4fE+TaCGeYP7Tz1Y3CKOsNxR1sE0V3nx3KRUHn3NUnt+wbcfd5yQWKZQKAfW6wqbuwQLrXo3g== dependencies: - "@jest/fake-timers" "^25.2.6" - "@jest/types" "^25.2.6" - jest-mock "^25.2.6" + "@jest/fake-timers" "^25.3.0" + "@jest/types" "^25.3.0" + jest-mock "^25.3.0" -"@jest/fake-timers@^25.2.6": - version "25.2.6" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-25.2.6.tgz#239dbde3f56badf7d05bcf888f5d669296077cad" - integrity sha512-A6qtDIA2zg/hVgUJJYzQSHFBIp25vHdSxW/s4XmTJAYxER6eL0NQdQhe4+232uUSviKitubHGXXirt5M7blPiA== +"@jest/fake-timers@^25.3.0": + version "25.3.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-25.3.0.tgz#995aad36d5c8984165ca5db12e740ab8dbf7042a" + integrity sha512-NHAj7WbsyR3qBJPpBwSwqaq2WluIvUQsyzpJTN7XDVk7VnlC/y1BAnaYZL3vbPIP8Nhm0Ae5DJe0KExr/SdMJQ== dependencies: - "@jest/types" "^25.2.6" - jest-message-util "^25.2.6" - jest-mock "^25.2.6" - jest-util "^25.2.6" + "@jest/types" "^25.3.0" + jest-message-util "^25.3.0" + jest-mock "^25.3.0" + jest-util "^25.3.0" lolex "^5.0.0" -"@jest/reporters@^25.2.6": - version "25.2.6" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-25.2.6.tgz#6d87e40fb15adb69e22bb83aa02a4d88b2253b5f" - integrity sha512-DRMyjaxcd6ZKctiXNcuVObnPwB1eUs7xrUVu0J2V0p5/aZJei5UM9GL3s/bmN4hRV8Mt3zXh+/9X2o0Q4ClZIA== +"@jest/reporters@^25.3.0": + version "25.3.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-25.3.0.tgz#7f39f0e6911561cc5112a1b54656de18faee269b" + integrity sha512-1u0ZBygs0C9DhdYgLCrRfZfNKQa+9+J7Uo+Z9z0RWLHzgsxhoG32lrmMOtUw48yR6bLNELdvzormwUqSk4H4Vg== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^25.2.6" - "@jest/test-result" "^25.2.6" - "@jest/transform" "^25.2.6" - "@jest/types" "^25.2.6" + "@jest/console" "^25.3.0" + "@jest/test-result" "^25.3.0" + "@jest/transform" "^25.3.0" + "@jest/types" "^25.3.0" chalk "^3.0.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" @@ -1090,10 +1146,10 @@ istanbul-lib-instrument "^4.0.0" istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.0.0" - jest-haste-map "^25.2.6" - jest-resolve "^25.2.6" - jest-util "^25.2.6" + istanbul-reports "^3.0.2" + jest-haste-map "^25.3.0" + jest-resolve "^25.3.0" + jest-util "^25.3.0" jest-worker "^25.2.6" slash "^3.0.0" source-map "^0.6.0" @@ -1112,25 +1168,25 @@ graceful-fs "^4.2.3" source-map "^0.6.0" -"@jest/test-result@^25.2.6": - version "25.2.6" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-25.2.6.tgz#f6082954955313eb96f6cabf9fb14f8017826916" - integrity sha512-gmGgcF4qz/pkBzyfJuVHo2DA24kIgVQ5Pf/VpW4QbyMLSegi8z+9foSZABfIt5se6k0fFj/3p/vrQXdaOgit0w== +"@jest/test-result@^25.3.0": + version "25.3.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-25.3.0.tgz#137fab5e5c6fed36e5d40735d1eb029325e3bf06" + integrity sha512-mqrGuiiPXl1ap09Mydg4O782F3ouDQfsKqtQzIjitpwv3t1cHDwCto21jThw6WRRE+dKcWQvLG70GpyLJICfGw== dependencies: - "@jest/console" "^25.2.6" - "@jest/types" "^25.2.6" + "@jest/console" "^25.3.0" + "@jest/types" "^25.3.0" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^25.2.7": - version "25.2.7" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-25.2.7.tgz#e4331f7b4850e34289b9a5c8ec8a2c03b400da8f" - integrity sha512-s2uYGOXONDSTJQcZJ9A3Zkg3hwe53RlX1HjUNqjUy3HIqwgwCKJbnAKYsORPbhxXi3ARMKA7JNBi9arsTxXoYw== +"@jest/test-sequencer@^25.3.0": + version "25.3.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-25.3.0.tgz#271ad5f2b8f8137d092ccedc87e16a50f8676209" + integrity sha512-Xvns3xbji7JCvVcDGvqJ/pf4IpmohPODumoPEZJ0/VgC5gI4XaNVIBET2Dq5Czu6Gk3xFcmhtthh/MBOTljdNg== dependencies: - "@jest/test-result" "^25.2.6" - jest-haste-map "^25.2.6" - jest-runner "^25.2.7" - jest-runtime "^25.2.7" + "@jest/test-result" "^25.3.0" + jest-haste-map "^25.3.0" + jest-runner "^25.3.0" + jest-runtime "^25.3.0" "@jest/transform@^25.2.6": version "25.2.6" @@ -1154,6 +1210,28 @@ source-map "^0.6.1" write-file-atomic "^3.0.0" +"@jest/transform@^25.3.0": + version "25.3.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-25.3.0.tgz#083c5447d5307d9b9494d6968115b647460e71f1" + integrity sha512-W01p8kTDvvEX6kd0tJc7Y5VdYyFaKwNWy1HQz6Jqlhu48z/8Gxp+yFCDVj+H8Rc7ezl3Mg0hDaGuFVkmHOqirg== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^25.3.0" + babel-plugin-istanbul "^6.0.0" + chalk "^3.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.3" + jest-haste-map "^25.3.0" + jest-regex-util "^25.2.6" + jest-util "^25.3.0" + micromatch "^4.0.2" + pirates "^4.0.1" + realpath-native "^2.0.0" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + "@jest/types@^25.2.6": version "25.2.6" resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.2.6.tgz#c12f44af9bed444438091e4b59e7ed05f8659cb6" @@ -1164,6 +1242,16 @@ "@types/yargs" "^15.0.0" chalk "^3.0.0" +"@jest/types@^25.3.0": + version "25.3.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.3.0.tgz#88f94b277a1d028fd7117bc1f74451e0fc2131e7" + integrity sha512-UkaDNewdqXAmCDbN2GlUM6amDKS78eCqiw/UmF5nE0mmLTd6moJkiZJML/X52Ke3LH7Swhw883IRXq8o9nWjVw== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^1.1.1" + "@types/yargs" "^15.0.0" + chalk "^3.0.0" + "@metascraper/helpers@^4.10.2": version "4.10.2" resolved "https://registry.yarnpkg.com/@metascraper/helpers/-/helpers-4.10.2.tgz#864e49c71468548441f3a1ab68fdb2913855821b" @@ -1403,6 +1491,17 @@ "@types/babel__template" "*" "@types/babel__traverse" "*" +"@types/babel__core@^7.1.7": + version "7.1.7" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.7.tgz#1dacad8840364a57c98d0dd4855c6dd3752c6b89" + integrity sha512-RL62NqSFPCDK2FM1pSDH0scHpJvsXtZNiYlMB73DgPBaG1E38ZYVL+ei5EkWRbr+KC4YNiAUNBnRj+bgwpgjMw== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + "@types/babel__generator@*": version "7.0.2" resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.0.2.tgz#d2112a6b21fad600d7674274293c85dce0cb47fc" @@ -1917,41 +2016,41 @@ apollo-graphql@^0.4.0: apollo-env "^0.6.1" lodash.sortby "^4.7.0" -apollo-link-context@~1.0.19: - version "1.0.19" - resolved "https://registry.yarnpkg.com/apollo-link-context/-/apollo-link-context-1.0.19.tgz#3c9ba5bf75ed5428567ce057b8837ef874a58987" - integrity sha512-TUi5TyufU84hEiGkpt+5gdH5HkB3Gx46npNfoxR4of3DKBCMuItGERt36RCaryGcU/C3u2zsICU3tJ+Z9LjFoQ== +apollo-link-context@~1.0.20: + version "1.0.20" + resolved "https://registry.yarnpkg.com/apollo-link-context/-/apollo-link-context-1.0.20.tgz#1939ac5dc65d6dff0c855ee53521150053c24676" + integrity sha512-MLLPYvhzNb8AglNsk2NcL9AvhO/Vc9hn2ZZuegbhRHGet3oGr0YH9s30NS9+ieoM0sGT11p7oZ6oAILM/kiRBA== dependencies: - apollo-link "^1.2.13" + apollo-link "^1.2.14" tslib "^1.9.3" -apollo-link-http-common@^0.2.15: - version "0.2.15" - resolved "https://registry.yarnpkg.com/apollo-link-http-common/-/apollo-link-http-common-0.2.15.tgz#304e67705122bf69a9abaded4351b10bc5efd6d9" - integrity sha512-+Heey4S2IPsPyTf8Ag3PugUupASJMW894iVps6hXbvwtg1aHSNMXUYO5VG7iRHkPzqpuzT4HMBanCTXPjtGzxg== +apollo-link-http-common@^0.2.15, apollo-link-http-common@^0.2.16: + version "0.2.16" + resolved "https://registry.yarnpkg.com/apollo-link-http-common/-/apollo-link-http-common-0.2.16.tgz#756749dafc732792c8ca0923f9a40564b7c59ecc" + integrity sha512-2tIhOIrnaF4UbQHf7kjeQA/EmSorB7+HyJIIrUjJOKBgnXwuexi8aMecRlqTIDWcyVXCeqLhUnztMa6bOH/jTg== dependencies: - apollo-link "^1.2.13" + apollo-link "^1.2.14" ts-invariant "^0.4.0" tslib "^1.9.3" -apollo-link-http@~1.5.16: - version "1.5.16" - resolved "https://registry.yarnpkg.com/apollo-link-http/-/apollo-link-http-1.5.16.tgz#44fe760bcc2803b8a7f57fc9269173afb00f3814" - integrity sha512-IA3xA/OcrOzINRZEECI6IdhRp/Twom5X5L9jMehfzEo2AXdeRwAMlH5LuvTZHgKD8V1MBnXdM6YXawXkTDSmJw== +apollo-link-http@~1.5.17: + version "1.5.17" + resolved "https://registry.yarnpkg.com/apollo-link-http/-/apollo-link-http-1.5.17.tgz#499e9f1711bf694497f02c51af12d82de5d8d8ba" + integrity sha512-uWcqAotbwDEU/9+Dm9e1/clO7hTB2kQ/94JYcGouBVLjoKmTeJTUPQKcJGpPwUjZcSqgYicbFqQSoJIW0yrFvg== dependencies: - apollo-link "^1.2.13" - apollo-link-http-common "^0.2.15" + apollo-link "^1.2.14" + apollo-link-http-common "^0.2.16" tslib "^1.9.3" -apollo-link@^1.0.0, apollo-link@^1.2.13, apollo-link@^1.2.3: - version "1.2.13" - resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.13.tgz#dff00fbf19dfcd90fddbc14b6a3f9a771acac6c4" - integrity sha512-+iBMcYeevMm1JpYgwDEIDt/y0BB7VWyvlm/7x+TIPNLHCTCMgcEgDuW5kH86iQZWo0I7mNwQiTOz+/3ShPFmBw== +apollo-link@^1.0.0, apollo-link@^1.2.13, apollo-link@^1.2.14, apollo-link@^1.2.3: + version "1.2.14" + resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.14.tgz#3feda4b47f9ebba7f4160bef8b977ba725b684d9" + integrity sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg== dependencies: apollo-utilities "^1.3.0" ts-invariant "^0.4.0" tslib "^1.9.3" - zen-observable-ts "^0.8.20" + zen-observable-ts "^0.8.21" apollo-server-caching@^0.5.1: version "0.5.1" @@ -2290,7 +2389,20 @@ babel-eslint@~10.1.0: eslint-visitor-keys "^1.0.0" resolve "^1.12.0" -babel-jest@^25.2.6, babel-jest@~25.2.6: +babel-jest@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-25.3.0.tgz#999d0c19e8427f66b796bf9ea233eedf087b957c" + integrity sha512-qiXeX1Cmw4JZ5yQ4H57WpkO0MZ61Qj+YnsVUwAMnDV5ls+yHon11XjarDdgP7H8lTmiEi6biiZA8y3Tmvx6pCg== + dependencies: + "@jest/transform" "^25.3.0" + "@jest/types" "^25.3.0" + "@types/babel__core" "^7.1.7" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^25.3.0" + chalk "^3.0.0" + slash "^3.0.0" + +babel-jest@~25.2.6: version "25.2.6" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-25.2.6.tgz#fe67ff4d0db3626ca8082da8881dd5e84e07ae75" integrity sha512-MDJOAlwtIeIQiGshyX0d2PxTbV73xZMpNji40ivVTPQOm59OdRR9nYCkffqI7ugtsK4JR98HgNKbDbuVf4k5QQ== @@ -2335,6 +2447,22 @@ babel-plugin-transform-runtime@^6.23.0: dependencies: babel-runtime "^6.22.0" +babel-preset-current-node-syntax@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.2.tgz#fb4a4c51fe38ca60fede1dc74ab35eb843cb41d6" + integrity sha512-u/8cS+dEiK1SFILbOC8/rUI3ml9lboKuuMvZ/4aQnQmhecQAgPw5ew066C1ObnEAUmlx7dv/s2z52psWEtLNiw== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + babel-preset-jest@^25.2.6: version "25.2.6" resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-25.2.6.tgz#5d3f7c99e2a8508d61775c9d68506d143b7f71b5" @@ -2344,6 +2472,14 @@ babel-preset-jest@^25.2.6: "@babel/plugin-syntax-object-rest-spread" "^7.0.0" babel-plugin-jest-hoist "^25.2.6" +babel-preset-jest@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-25.3.0.tgz#9ab40aee52a19bdc52b8b1ec2403d5914ac3d86b" + integrity sha512-tjdvLKNMwDI9r+QWz9sZUQGTq1dpoxjUqFUpEasAc7MOtHg9XuLT2fx0udFG+k1nvMV0WvHHVAN7VmCZ+1Zxbw== + dependencies: + babel-plugin-jest-hoist "^25.2.6" + babel-preset-current-node-syntax "^0.1.2" + babel-runtime@^6.22.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" @@ -3974,16 +4110,16 @@ expect-ct@0.2.0: resolved "https://registry.yarnpkg.com/expect-ct/-/expect-ct-0.2.0.tgz#3a54741b6ed34cc7a93305c605f63cd268a54a62" integrity sha512-6SK3MG/Bbhm8MsgyJAylg+ucIOU71/FzyFalcfu5nY19dH8y/z0tBJU0wrNBXD4B27EoQtqPF/9wqH0iYAd04g== -expect@^25.2.7: - version "25.2.7" - resolved "https://registry.yarnpkg.com/expect/-/expect-25.2.7.tgz#509b79f47502835f4071ff3ecc401f2eaecca709" - integrity sha512-yA+U2Ph0MkMsJ9N8q5hs9WgWI6oJYfecdXta6LkP/alY/jZZL1MHlJ2wbLh60Ucqf3G+51ytbqV3mlGfmxkpNw== +expect@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-25.3.0.tgz#5fd36e51befd05afb7184bc954f8a4792d184c71" + integrity sha512-buboTXML2h/L0Kh44Ys2Cx49mX20ISc5KDirkxIs3Q9AJv0kazweUAbukegr+nHDOvFRKmxdojjIHCjqAceYfg== dependencies: - "@jest/types" "^25.2.6" + "@jest/types" "^25.3.0" ansi-styles "^4.0.0" jest-get-type "^25.2.6" - jest-matcher-utils "^25.2.7" - jest-message-util "^25.2.6" + jest-matcher-utils "^25.3.0" + jest-message-util "^25.3.0" jest-regex-util "^25.2.6" express@^4.0.0, express@^4.17.1: @@ -5479,10 +5615,10 @@ istanbul-lib-source-maps@^4.0.0: istanbul-lib-coverage "^3.0.0" source-map "^0.6.1" -istanbul-reports@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.0.tgz#d4d16d035db99581b6194e119bbf36c963c5eb70" - integrity sha512-2osTcC8zcOSUkImzN2EWQta3Vdi4WjjKw99P2yWx5mLnigAM0Rd5uYFn1cf2i/Ois45GkNjaoTqc5CxgMSX80A== +istanbul-reports@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" + integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== dependencies: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" @@ -5492,108 +5628,108 @@ iterall@^1.1.3, iterall@^1.2.1, iterall@^1.2.2, iterall@^1.3.0: resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== -jest-changed-files@^25.2.6: - version "25.2.6" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-25.2.6.tgz#7d569cd6b265b1a84db3914db345d9c452f26b71" - integrity sha512-F7l2m5n55jFnJj4ItB9XbAlgO+6umgvz/mdK76BfTd2NGkvGf9x96hUXP/15a1K0k14QtVOoutwpRKl360msvg== +jest-changed-files@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-25.3.0.tgz#85d8de6f4bd13dafda9d7f1e3f2565fc0e183c78" + integrity sha512-eqd5hyLbUjIVvLlJ3vQ/MoPxsxfESVXG9gvU19XXjKzxr+dXmZIqCXiY0OiYaibwlHZBJl2Vebkc0ADEMzCXew== dependencies: - "@jest/types" "^25.2.6" + "@jest/types" "^25.3.0" execa "^3.2.0" throat "^5.0.0" -jest-cli@^25.2.7: - version "25.2.7" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-25.2.7.tgz#515b61fee402c397ffa8d570532f7b039c3159f4" - integrity sha512-OOAZwY4Jkd3r5WhVM5L3JeLNFaylvHUczMLxQDVLrrVyb1Cy+DNJ6MVsb5TLh6iBklB42m5TOP+IbOgKGGOtMw== +jest-cli@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-25.3.0.tgz#d9e11f5700cc5946583cf0d01a9bdebceed448d2" + integrity sha512-XpNQPlW1tzpP7RGG8dxpkRegYDuLjzSiENu92+CYM87nEbmEPb3b4+yo8xcsHOnj0AG7DUt9b3uG8LuHI3MDzw== dependencies: - "@jest/core" "^25.2.7" - "@jest/test-result" "^25.2.6" - "@jest/types" "^25.2.6" + "@jest/core" "^25.3.0" + "@jest/test-result" "^25.3.0" + "@jest/types" "^25.3.0" chalk "^3.0.0" exit "^0.1.2" import-local "^3.0.2" is-ci "^2.0.0" - jest-config "^25.2.7" - jest-util "^25.2.6" - jest-validate "^25.2.6" + jest-config "^25.3.0" + jest-util "^25.3.0" + jest-validate "^25.3.0" prompts "^2.0.1" realpath-native "^2.0.0" yargs "^15.3.1" -jest-config@^25.2.7: - version "25.2.7" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-25.2.7.tgz#a14e5b96575987ce913dd9fc20ac8cd4b35a8c29" - integrity sha512-rIdPPXR6XUxi+7xO4CbmXXkE6YWprvlKc4kg1SrkCL2YV5m/8MkHstq9gBZJ19Qoa3iz/GP+0sTG/PcIwkFojg== +jest-config@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-25.3.0.tgz#112b5e2f2e57dec4501dd2fe979044c06fb1317e" + integrity sha512-CmF1JnNWFmoCSPC4tnU52wnVBpuxHjilA40qH/03IHxIevkjUInSMwaDeE6ACfxMPTLidBGBCO3EbxvzPbo8wA== dependencies: "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^25.2.7" - "@jest/types" "^25.2.6" - babel-jest "^25.2.6" + "@jest/test-sequencer" "^25.3.0" + "@jest/types" "^25.3.0" + babel-jest "^25.3.0" chalk "^3.0.0" deepmerge "^4.2.2" glob "^7.1.1" - jest-environment-jsdom "^25.2.6" - jest-environment-node "^25.2.6" + jest-environment-jsdom "^25.3.0" + jest-environment-node "^25.3.0" jest-get-type "^25.2.6" - jest-jasmine2 "^25.2.7" + jest-jasmine2 "^25.3.0" jest-regex-util "^25.2.6" - jest-resolve "^25.2.6" - jest-util "^25.2.6" - jest-validate "^25.2.6" + jest-resolve "^25.3.0" + jest-util "^25.3.0" + jest-validate "^25.3.0" micromatch "^4.0.2" - pretty-format "^25.2.6" + pretty-format "^25.3.0" realpath-native "^2.0.0" -jest-diff@^25.2.6: - version "25.2.6" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.2.6.tgz#a6d70a9ab74507715ea1092ac513d1ab81c1b5e7" - integrity sha512-KuadXImtRghTFga+/adnNrv9s61HudRMR7gVSbP35UKZdn4IK2/0N0PpGZIqtmllK9aUyye54I3nu28OYSnqOg== +jest-diff@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.3.0.tgz#0d7d6f5d6171e5dacde9e05be47b3615e147c26f" + integrity sha512-vyvs6RPoVdiwARwY4kqFWd4PirPLm2dmmkNzKqo38uZOzJvLee87yzDjIZLmY1SjM3XR5DwsUH+cdQ12vgqi1w== dependencies: chalk "^3.0.0" diff-sequences "^25.2.6" jest-get-type "^25.2.6" - pretty-format "^25.2.6" + pretty-format "^25.3.0" -jest-docblock@^25.2.6: - version "25.2.6" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-25.2.6.tgz#4b09f1e7b7d6b3f39242ef3647ac7106770f722b" - integrity sha512-VAYrljEq0upq0oERfIaaNf28gC6p9gORndhHstCYF8NWGNQJnzoaU//S475IxfWMk4UjjVmS9rJKLe5Jjjbixw== +jest-docblock@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-25.3.0.tgz#8b777a27e3477cd77a168c05290c471a575623ef" + integrity sha512-aktF0kCar8+zxRHxQZwxMy70stc9R1mOmrLsT5VO3pIT0uzGRSDAXxSlz4NqQWpuLjPpuMhPRl7H+5FRsvIQAg== dependencies: detect-newline "^3.0.0" -jest-each@^25.2.6: - version "25.2.6" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-25.2.6.tgz#026f6dea2ccc443c35cea793265620aab1b278b6" - integrity sha512-OgQ01VINaRD6idWJOhCYwUc5EcgHBiFlJuw+ON2VgYr7HLtMFyCcuo+3mmBvuLUH4QudREZN7cDCZviknzsaJQ== +jest-each@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-25.3.0.tgz#a319eecf1f6076164ab86f99ca166a55b96c0bd4" + integrity sha512-aBfS4VOf/Qs95yUlX6d6WBv0szvOcTkTTyCIaLuQGj4bSHsT+Wd9dDngVHrCe5uytxpN8VM+NAloI6nbPjXfXw== dependencies: - "@jest/types" "^25.2.6" + "@jest/types" "^25.3.0" chalk "^3.0.0" jest-get-type "^25.2.6" - jest-util "^25.2.6" - pretty-format "^25.2.6" + jest-util "^25.3.0" + pretty-format "^25.3.0" -jest-environment-jsdom@^25.2.6: - version "25.2.6" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-25.2.6.tgz#b7ae41c6035905b8e58d63a8f63cf8eaa00af279" - integrity sha512-/o7MZIhGmLGIEG5j7r5B5Az0umWLCHU+F5crwfbm0BzC4ybHTJZOQTFQWhohBg+kbTCNOuftMcqHlVkVduJCQQ== +jest-environment-jsdom@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-25.3.0.tgz#c493ab8c41f28001520c70ef67dd88b88be6af05" + integrity sha512-jdE4bQN+k2QEZ9sWOxsqDJvMzbdFSCN/4tw8X0TQaCqyzKz58PyEf41oIr4WO7ERdp7WaJGBSUKF7imR3UW1lg== dependencies: - "@jest/environment" "^25.2.6" - "@jest/fake-timers" "^25.2.6" - "@jest/types" "^25.2.6" - jest-mock "^25.2.6" - jest-util "^25.2.6" + "@jest/environment" "^25.3.0" + "@jest/fake-timers" "^25.3.0" + "@jest/types" "^25.3.0" + jest-mock "^25.3.0" + jest-util "^25.3.0" jsdom "^15.2.1" -jest-environment-node@^25.2.6: - version "25.2.6" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-25.2.6.tgz#ad4398432867113f474d94fe37b071ed04b30f3d" - integrity sha512-D1Ihj14fxZiMHGeTtU/LunhzSI+UeBvlr/rcXMTNyRMUMSz2PEhuqGbB78brBY6Dk3FhJDk7Ta+8reVaGjLWhA== +jest-environment-node@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-25.3.0.tgz#9845f0e63991e8498448cb0ae804935689533db9" + integrity sha512-XO09S29Nx1NU7TiMPHMoDIkxoGBuKSTbE+sHp0gXbeLDXhIdhysUI25kOqFFSD9AuDgvPvxWCXrvNqiFsOH33g== dependencies: - "@jest/environment" "^25.2.6" - "@jest/fake-timers" "^25.2.6" - "@jest/types" "^25.2.6" - jest-mock "^25.2.6" - jest-util "^25.2.6" + "@jest/environment" "^25.3.0" + "@jest/fake-timers" "^25.3.0" + "@jest/types" "^25.3.0" + jest-mock "^25.3.0" + jest-util "^25.3.0" semver "^6.3.0" jest-get-type@^25.2.6: @@ -5620,66 +5756,85 @@ jest-haste-map@^25.2.6: optionalDependencies: fsevents "^2.1.2" -jest-jasmine2@^25.2.7: - version "25.2.7" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-25.2.7.tgz#55ff87f8f462ef0e2f16fd19430b8be8bcebef0e" - integrity sha512-HeQxEbonp8fUvik9jF0lkU9ab1u5TQdIb7YSU9Fj7SxWtqHNDGyCpF6ZZ3r/5yuertxi+R95Ba9eA91GMQ38eA== +jest-haste-map@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-25.3.0.tgz#b7683031c9c9ddc0521d311564108b244b11e4c6" + integrity sha512-LjXaRa+F8wwtSxo9G+hHD/Cp63PPQzvaBL9XCVoJD2rrcJO0Zr2+YYzAFWWYJ5GlPUkoaJFJtOuk0sL6MJY80A== + dependencies: + "@jest/types" "^25.3.0" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.3" + jest-serializer "^25.2.6" + jest-util "^25.3.0" + jest-worker "^25.2.6" + micromatch "^4.0.2" + sane "^4.0.3" + walker "^1.0.7" + which "^2.0.2" + optionalDependencies: + fsevents "^2.1.2" + +jest-jasmine2@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-25.3.0.tgz#16ae4f68adef65fb45001b26c864bcbcbf972830" + integrity sha512-NCYOGE6+HNzYFSui52SefgpsnIzvxjn6KAgqw66BdRp37xpMD/4kujDHLNW5bS5i53os5TcMn6jYrzQRO8VPrQ== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^25.2.6" + "@jest/environment" "^25.3.0" "@jest/source-map" "^25.2.6" - "@jest/test-result" "^25.2.6" - "@jest/types" "^25.2.6" + "@jest/test-result" "^25.3.0" + "@jest/types" "^25.3.0" chalk "^3.0.0" co "^4.6.0" - expect "^25.2.7" + expect "^25.3.0" is-generator-fn "^2.0.0" - jest-each "^25.2.6" - jest-matcher-utils "^25.2.7" - jest-message-util "^25.2.6" - jest-runtime "^25.2.7" - jest-snapshot "^25.2.7" - jest-util "^25.2.6" - pretty-format "^25.2.6" + jest-each "^25.3.0" + jest-matcher-utils "^25.3.0" + jest-message-util "^25.3.0" + jest-runtime "^25.3.0" + jest-snapshot "^25.3.0" + jest-util "^25.3.0" + pretty-format "^25.3.0" throat "^5.0.0" -jest-leak-detector@^25.2.6: - version "25.2.6" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-25.2.6.tgz#68fbaf651142292b03e30641f33e15af9b8c62b1" - integrity sha512-n+aJUM+j/x1kIaPVxzerMqhAUuqTU1PL5kup46rXh+l9SP8H6LqECT/qD1GrnylE1L463/0StSPkH4fUpkuEjA== +jest-leak-detector@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-25.3.0.tgz#5b6bf04903b35be56038915a55f47291771f769f" + integrity sha512-jk7k24dMIfk8LUSQQGN8PyOy9+J0NAfHZWiDmUDYVMctY8FLJQ1eQ8+PjMoN8PgwhLIggUqgYJnyRFvUz3jLRw== dependencies: jest-get-type "^25.2.6" - pretty-format "^25.2.6" + pretty-format "^25.3.0" -jest-matcher-utils@^25.2.7: - version "25.2.7" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-25.2.7.tgz#53fad3c11fc42e92e374306df543026712c957a3" - integrity sha512-jNYmKQPRyPO3ny0KY1I4f0XW4XnpJ3Nx5ovT4ik0TYDOYzuXJW40axqOyS61l/voWbVT9y9nZ1THL1DlpaBVpA== +jest-matcher-utils@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-25.3.0.tgz#76765788a26edaa8bc5f0100aea52ae383559648" + integrity sha512-ZBUJ2fchNIZt+fyzkuCFBb8SKaU//Rln45augfUtbHaGyVxCO++ANARdBK9oPGXU3hEDgyy7UHnOP/qNOJXFUg== dependencies: chalk "^3.0.0" - jest-diff "^25.2.6" + jest-diff "^25.3.0" jest-get-type "^25.2.6" - pretty-format "^25.2.6" + pretty-format "^25.3.0" -jest-message-util@^25.2.6: - version "25.2.6" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-25.2.6.tgz#9d5523bebec8cd9cdef75f0f3069d6ec9a2252df" - integrity sha512-Hgg5HbOssSqOuj+xU1mi7m3Ti2nwSQJQf/kxEkrz2r2rp2ZLO1pMeKkz2WiDUWgSR+APstqz0uMFcE5yc0qdcg== +jest-message-util@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-25.3.0.tgz#e3836826fe5ca538a337b87d9bd2648190867f85" + integrity sha512-5QNy9Id4WxJbRITEbA1T1kem9bk7y2fD0updZMSTNHtbEDnYOGLDPAuFBhFgVmOZpv0n6OMdVkK+WhyXEPCcOw== dependencies: "@babel/code-frame" "^7.0.0" - "@jest/types" "^25.2.6" + "@jest/types" "^25.3.0" "@types/stack-utils" "^1.0.1" chalk "^3.0.0" micromatch "^4.0.2" slash "^3.0.0" stack-utils "^1.0.1" -jest-mock@^25.2.6: - version "25.2.6" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-25.2.6.tgz#8df66eaa55a713d0f2a7dfb4f14507289d24dfa3" - integrity sha512-vc4nibavi2RGPdj/MyZy/azuDjZhpYZLvpfgq1fxkhbyTpKVdG7CgmRVKJ7zgLpY5kuMjTzDYA6QnRwhsCU+tA== +jest-mock@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-25.3.0.tgz#d72644509e40987a732a9a2534a1054f4649402c" + integrity sha512-yRn6GbuqB4j3aYu+Z1ezwRiZfp0o9om5uOcBovVtkcRLeBCNP5mT0ysdenUsxAHnQUgGwPOE1wwhtQYe6NKirQ== dependencies: - "@jest/types" "^25.2.6" + "@jest/types" "^25.3.0" jest-pnp-resolver@^1.2.1: version "1.2.1" @@ -5691,78 +5846,78 @@ jest-regex-util@^25.2.6: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-25.2.6.tgz#d847d38ba15d2118d3b06390056028d0f2fd3964" integrity sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw== -jest-resolve-dependencies@^25.2.7: - version "25.2.7" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-25.2.7.tgz#9ca4c62d67cce031a27fa5d5705b4b5b5c029d23" - integrity sha512-IrnMzCAh11Xd2gAOJL+ThEW6QO8DyqNdvNkQcaCticDrOAr9wtKT7yT6QBFFjqKFgjjvaVKDs59WdgUhgYnHnQ== +jest-resolve-dependencies@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-25.3.0.tgz#b0e4ae053dd44ddacc18c6ee12b5b7c28e445a90" + integrity sha512-bDUlLYmHW+f7J7KgcY2lkq8EMRqKonRl0XoD4Wp5SJkgAxKJnsaIOlrrVNTfXYf+YOu3VCjm/Ac2hPF2nfsCIA== dependencies: - "@jest/types" "^25.2.6" + "@jest/types" "^25.3.0" jest-regex-util "^25.2.6" - jest-snapshot "^25.2.7" + jest-snapshot "^25.3.0" -jest-resolve@^25.2.6: - version "25.2.6" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-25.2.6.tgz#84694ead5da13c2890ac04d4a78699ba937f3896" - integrity sha512-7O61GVdcAXkLz/vNGKdF+00A80/fKEAA47AEXVNcZwj75vEjPfZbXDaWFmAQCyXj4oo9y9dC9D+CLA11t8ieGw== +jest-resolve@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-25.3.0.tgz#cb90a5bbea54a02eccdbbf4126a819595dcf91d6" + integrity sha512-IHoQAAybulsJ+ZgWis+ekYKDAoFkVH5Nx/znpb41zRtpxj4fr2WNV9iDqavdSm8GIpMlsfZxbC/fV9DhW0q9VQ== dependencies: - "@jest/types" "^25.2.6" + "@jest/types" "^25.3.0" browser-resolve "^1.11.3" chalk "^3.0.0" jest-pnp-resolver "^1.2.1" realpath-native "^2.0.0" resolve "^1.15.1" -jest-runner@^25.2.7: - version "25.2.7" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-25.2.7.tgz#3676c01dc0104caa8a0ebb8507df382c88f2a1e2" - integrity sha512-RFEr71nMrtNwcpoHzie5+fe1w3JQCGMyT2xzNwKe3f88+bK+frM2o1v24gEcPxQ2QqB3COMCe2+1EkElP+qqqQ== +jest-runner@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-25.3.0.tgz#673ef2ac79d2810eb6b2c1a3f82398375a3d1174" + integrity sha512-csDqSC9qGHYWDrzrElzEgFbteztFeZJmKhSgY5jlCIcN0+PhActzRNku0DA1Xa1HxGOb0/AfbP1EGJlP4fGPtA== dependencies: - "@jest/console" "^25.2.6" - "@jest/environment" "^25.2.6" - "@jest/test-result" "^25.2.6" - "@jest/types" "^25.2.6" + "@jest/console" "^25.3.0" + "@jest/environment" "^25.3.0" + "@jest/test-result" "^25.3.0" + "@jest/types" "^25.3.0" chalk "^3.0.0" exit "^0.1.2" graceful-fs "^4.2.3" - jest-config "^25.2.7" - jest-docblock "^25.2.6" - jest-haste-map "^25.2.6" - jest-jasmine2 "^25.2.7" - jest-leak-detector "^25.2.6" - jest-message-util "^25.2.6" - jest-resolve "^25.2.6" - jest-runtime "^25.2.7" - jest-util "^25.2.6" + jest-config "^25.3.0" + jest-docblock "^25.3.0" + jest-haste-map "^25.3.0" + jest-jasmine2 "^25.3.0" + jest-leak-detector "^25.3.0" + jest-message-util "^25.3.0" + jest-resolve "^25.3.0" + jest-runtime "^25.3.0" + jest-util "^25.3.0" jest-worker "^25.2.6" source-map-support "^0.5.6" throat "^5.0.0" -jest-runtime@^25.2.7: - version "25.2.7" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-25.2.7.tgz#cb10e695d036671a83aec3a3803163c354043ac9" - integrity sha512-Gw3X8KxTTFylu2T/iDSNKRUQXQiPIYUY0b66GwVYa7W8wySkUljKhibQHSq0VhmCAN7vRBEQjlVQ+NFGNmQeBw== +jest-runtime@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-25.3.0.tgz#af4d40dbcc590fa5de9910cb6a120a13d131050b" + integrity sha512-gn5KYB1wxXRM3nfw8fVpthFu60vxQUCr+ShGq41+ZBFF3DRHZRKj3HDWVAVB4iTNBj2y04QeAo5cZ/boYaPg0w== dependencies: - "@jest/console" "^25.2.6" - "@jest/environment" "^25.2.6" + "@jest/console" "^25.3.0" + "@jest/environment" "^25.3.0" "@jest/source-map" "^25.2.6" - "@jest/test-result" "^25.2.6" - "@jest/transform" "^25.2.6" - "@jest/types" "^25.2.6" + "@jest/test-result" "^25.3.0" + "@jest/transform" "^25.3.0" + "@jest/types" "^25.3.0" "@types/yargs" "^15.0.0" chalk "^3.0.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" glob "^7.1.3" graceful-fs "^4.2.3" - jest-config "^25.2.7" - jest-haste-map "^25.2.6" - jest-message-util "^25.2.6" - jest-mock "^25.2.6" + jest-config "^25.3.0" + jest-haste-map "^25.3.0" + jest-message-util "^25.3.0" + jest-mock "^25.3.0" jest-regex-util "^25.2.6" - jest-resolve "^25.2.6" - jest-snapshot "^25.2.7" - jest-util "^25.2.6" - jest-validate "^25.2.6" + jest-resolve "^25.3.0" + jest-snapshot "^25.3.0" + jest-util "^25.3.0" + jest-validate "^25.3.0" realpath-native "^2.0.0" slash "^3.0.0" strip-bom "^4.0.0" @@ -5773,24 +5928,24 @@ jest-serializer@^25.2.6: resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-25.2.6.tgz#3bb4cc14fe0d8358489dbbefbb8a4e708ce039b7" integrity sha512-RMVCfZsezQS2Ww4kB5HJTMaMJ0asmC0BHlnobQC6yEtxiFKIxohFA4QSXSabKwSggaNkqxn6Z2VwdFCjhUWuiQ== -jest-snapshot@^25.2.7: - version "25.2.7" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-25.2.7.tgz#7eeafeef4dcbda1c47c8503d2bf5212b6430aac6" - integrity sha512-Rm8k7xpGM4tzmYhB6IeRjsOMkXaU8/FOz5XlU6oYwhy53mq6txVNqIKqN1VSiexzpC80oWVxVDfUDt71M6XPOA== +jest-snapshot@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-25.3.0.tgz#d4feb457494f4aaedcc83fbbf1ca21808fc3df71" + integrity sha512-GGpR6Oro2htJPKh5RX4PR1xwo5jCEjtvSPLW1IS7N85y+2bWKbiknHpJJRKSdGXghElb5hWaeQASJI4IiRayGg== dependencies: "@babel/types" "^7.0.0" - "@jest/types" "^25.2.6" + "@jest/types" "^25.3.0" "@types/prettier" "^1.19.0" chalk "^3.0.0" - expect "^25.2.7" - jest-diff "^25.2.6" + expect "^25.3.0" + jest-diff "^25.3.0" jest-get-type "^25.2.6" - jest-matcher-utils "^25.2.7" - jest-message-util "^25.2.6" - jest-resolve "^25.2.6" + jest-matcher-utils "^25.3.0" + jest-message-util "^25.3.0" + jest-resolve "^25.3.0" make-dir "^3.0.0" natural-compare "^1.4.0" - pretty-format "^25.2.6" + pretty-format "^25.3.0" semver "^6.3.0" jest-util@^25.2.6: @@ -5803,28 +5958,38 @@ jest-util@^25.2.6: is-ci "^2.0.0" make-dir "^3.0.0" -jest-validate@^25.2.6: - version "25.2.6" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-25.2.6.tgz#ab3631fb97e242c42b09ca53127abe0b12e9125e" - integrity sha512-a4GN7hYbqQ3Rt9iHsNLFqQz7HDV7KiRPCwPgo5nqtTIWNZw7gnT8KchG+Riwh+UTSn8REjFCodGp50KX/fRNgQ== +jest-util@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-25.3.0.tgz#e3b0064165818f10d78514696fd25efba82cf049" + integrity sha512-dc625P/KS/CpWTJJJxKc4bA3A6c+PJGBAqS8JTJqx4HqPoKNqXg/Ec8biL2Z1TabwK7E7Ilf0/ukSEXM1VwzNA== dependencies: - "@jest/types" "^25.2.6" + "@jest/types" "^25.3.0" + chalk "^3.0.0" + is-ci "^2.0.0" + make-dir "^3.0.0" + +jest-validate@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-25.3.0.tgz#eb95fdee0039647bcd5d4be641b21e4a142a880c" + integrity sha512-3WuXgIZ4HXUvW6gk9twFFkT9j6zUorKnF2oEY8VEsHb7x5LGvVlN3WUsbqazVKuyXwvikO2zFJ/YTySMsMje2w== + dependencies: + "@jest/types" "^25.3.0" camelcase "^5.3.1" chalk "^3.0.0" jest-get-type "^25.2.6" leven "^3.1.0" - pretty-format "^25.2.6" + pretty-format "^25.3.0" -jest-watcher@^25.2.7: - version "25.2.7" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-25.2.7.tgz#01db4332d34d14c03c9ef22255125a3b07f997bc" - integrity sha512-RdHuW+f49tahWtluTnUdZ2iPliebleROI2L/J5phYrUS6DPC9RB3SuUtqYyYhGZJsbvRSuLMIlY/cICJ+PIecw== +jest-watcher@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-25.3.0.tgz#fd03fd5ca52f02bd3161ab177466bf1bfdd34e5c" + integrity sha512-dtFkfidFCS9Ucv8azOg2hkiY3sgJEHeTLtGFHS+jfBEE7eRtrO6+2r1BokyDkaG2FOD7485r/SgpC1MFAENfeA== dependencies: - "@jest/test-result" "^25.2.6" - "@jest/types" "^25.2.6" + "@jest/test-result" "^25.3.0" + "@jest/types" "^25.3.0" ansi-escapes "^4.2.1" chalk "^3.0.0" - jest-util "^25.2.6" + jest-util "^25.3.0" string-length "^3.1.0" jest-worker@^25.2.6: @@ -5835,14 +6000,14 @@ jest-worker@^25.2.6: merge-stream "^2.0.0" supports-color "^7.0.0" -jest@~25.2.7: - version "25.2.7" - resolved "https://registry.yarnpkg.com/jest/-/jest-25.2.7.tgz#3929a5f35cdd496f7756876a206b99a94e1e09ae" - integrity sha512-XV1n/CE2McCikl4tfpCY950RytHYvxdo/wvtgmn/qwA8z1s16fuvgFL/KoPrrmkqJTaPMUlLVE58pwiaTX5TdA== +jest@~25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-25.3.0.tgz#7a5e59741d94b8662664c77a9f346246d6bf228b" + integrity sha512-iKd5ShQSHzFT5IL/6h5RZJhApgqXSoPxhp5HEi94v6OAw9QkF8T7X+liEU2eEHJ1eMFYTHmeWLrpBWulsDpaUg== dependencies: - "@jest/core" "^25.2.7" + "@jest/core" "^25.3.0" import-local "^3.0.2" - jest-cli "^25.2.7" + jest-cli "^25.3.0" jmespath@0.15.0: version "0.15.0" @@ -7468,17 +7633,17 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@~2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.2.tgz#1ba8f3eb92231e769b7fcd7cb73ae1b6b74ade08" - integrity sha512-5xJQIPT8BraI7ZnaDwSbu5zLrB6vvi8hVV58yHQ+QK64qrY40dULy0HSRlQ2/2IdzeBpjhDkqdcFBnFeDEMVdg== +prettier@~2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.4.tgz#2d1bae173e355996ee355ec9830a7a1ee05457ef" + integrity sha512-SVJIQ51spzFDvh4fIbCLvciiDMCrRhlN3mbZvv/+ycjvmF5E73bKdGfU8QDLNmjYJf+lsGnDBC4UUnvTe5OO0w== -pretty-format@^25.2.6: - version "25.2.6" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.2.6.tgz#542a1c418d019bbf1cca2e3620443bc1323cb8d7" - integrity sha512-DEiWxLBaCHneffrIT4B+TpMvkV9RNvvJrd3lY9ew1CEQobDzEXmYT1mg0hJhljZty7kCc10z13ohOFAE8jrUDg== +pretty-format@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.3.0.tgz#d0a4f988ff4a6cd350342fdabbb809aeb4d49ad5" + integrity sha512-wToHwF8bkQknIcFkBqNfKu4+UZqnrLn/Vr+wwKQwwvPzkBfDDKp/qIabFqdgtoi5PEnM8LFByVsOrHoa3SpTVA== dependencies: - "@jest/types" "^25.2.6" + "@jest/types" "^25.3.0" ansi-regex "^5.0.0" ansi-styles "^4.0.0" react-is "^16.12.0" @@ -9613,10 +9778,10 @@ yup@^0.28.3: synchronous-promise "^2.0.10" toposort "^2.0.2" -zen-observable-ts@^0.8.20: - version "0.8.20" - resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.20.tgz#44091e335d3fcbc97f6497e63e7f57d5b516b163" - integrity sha512-2rkjiPALhOtRaDX6pWyNqK1fnP5KkJJybYebopNSn6wDG1lxBoFs2+nwwXKoA6glHIrtwrfBBy6da0stkKtTAA== +zen-observable-ts@^0.8.21: + version "0.8.21" + resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz#85d0031fbbde1eba3cd07d3ba90da241215f421d" + integrity sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg== dependencies: tslib "^1.9.3" zen-observable "^0.8.0" diff --git a/package.json b/package.json index 7e2805f9f..fa3b5248c 100644 --- a/package.json +++ b/package.json @@ -38,9 +38,9 @@ "cypress-cucumber-preprocessor": "^2.2.1", "cypress-file-upload": "^3.5.3", "cypress-plugin-retries": "^1.5.2", - "date-fns": "^2.11.1", + "date-fns": "^2.12.0", "dotenv": "^8.2.0", - "expect": "^25.2.7", + "expect": "^25.3.0", "faker": "Marak/faker.js#master", "graphql-request": "^1.8.2", "import": "^0.0.6", diff --git a/webapp/assets/_new/styles/tokens.scss b/webapp/assets/_new/styles/tokens.scss index 0d63bf547..e893d0214 100644 --- a/webapp/assets/_new/styles/tokens.scss +++ b/webapp/assets/_new/styles/tokens.scss @@ -230,6 +230,7 @@ $space-small: 16px; $space-x-small: 8px; $space-xx-small: 4px; $space-xxx-small: 2px; +$space-none: 0; /** * @tokens Size Height @@ -240,6 +241,7 @@ $size-height-base: 42px; $size-height-large: 50px; $size-height-xlarge: 60px; $size-height-footer: 64px; +$size-height-connections: 315px; $size-tappable-square: 44px; $size-ribbon: 6px; diff --git a/webapp/components/Editor/nodes/LegacyEmbed.js b/webapp/components/Editor/nodes/LegacyEmbed.js index 9c583cf54..0d308a356 100644 --- a/webapp/components/Editor/nodes/LegacyEmbed.js +++ b/webapp/components/Editor/nodes/LegacyEmbed.js @@ -40,6 +40,7 @@ export default class Embed extends Node { }, group: 'inline', inline: true, + selectable: false, parseDOM: [ { tag: 'a[href].embed', diff --git a/webapp/components/_new/generic/UserAvatar/UserAvatar.vue b/webapp/components/_new/generic/UserAvatar/UserAvatar.vue index 7dc63f52f..451d7648b 100644 --- a/webapp/components/_new/generic/UserAvatar/UserAvatar.vue +++ b/webapp/components/_new/generic/UserAvatar/UserAvatar.vue @@ -3,9 +3,11 @@ {{ userInitials }} diff --git a/webapp/components/features/FollowList/FollowList.spec.js b/webapp/components/features/FollowList/FollowList.spec.js new file mode 100644 index 000000000..44a855eed --- /dev/null +++ b/webapp/components/features/FollowList/FollowList.spec.js @@ -0,0 +1,150 @@ +import { config, mount } from '@vue/test-utils' +import Vuex from 'vuex' + +import helpers from '~/storybook/helpers' +import FollowList from './FollowList.vue' + +const localVue = global.localVue + +config.stubs['client-only'] = '' +config.stubs['ds-space'] = '' +config.stubs['nuxt-link'] = '' + +const user = { + ...helpers.fakeUser()[0], + followedByCount: 12, + followingCount: 15, + followedBy: helpers.fakeUser(7), + following: helpers.fakeUser(7), +} + +const allConnectionsUser = { + ...user, + followedBy: [ + ...user.followedBy, + ...helpers.fakeUser(user.followedByCount - user.followedBy.length), + ], + following: [...user.following, ...helpers.fakeUser(user.followingCount - user.following.length)], +} + +const noConnectionsUser = { + ...user, + followedByCount: 0, + followingCount: 0, + followedBy: [], + following: [], +} + +describe('FollowList.vue', () => { + let store, getters + const Wrapper = (customProps) => + mount(FollowList, { + store, + propsData: { user, ...customProps }, + mocks: { + $t: jest.fn((str) => str), + }, + localVue, + }) + + beforeAll(() => { + getters = { + 'auth/user': () => { + return {} + }, + 'auth/isModerator': () => false, + } + }) + + describe('mount', () => { + beforeAll(() => { + store = new Vuex.Store({ + getters, + }) + }) + + describe('given a type', () => { + describe('of `following`', () => { + it('uses the `following` data on :user', () => { + const wrapper = Wrapper({ user, type: 'following' }) + wrapper.find('.base-button').trigger('click') + + expect(wrapper.vm.allConnectionsCount).toBe(user.followingCount) + expect(wrapper.findAll('.user-teaser')).toHaveLength(user.following.length) + expect(wrapper.emitted('fetchAllConnections')).toEqual([['following']]) + }) + }) + + describe('of `followedBy`', () => { + it('uses the `followedBy` data on :user', () => { + const wrapper = Wrapper({ type: 'followedBy' }) + wrapper.find('.base-button').trigger('click') + + expect(wrapper.vm.allConnectionsCount).toBe(user.followedByCount) + expect(wrapper.findAll('.user-teaser')).toHaveLength(user.followedBy.length) + expect(wrapper.emitted('fetchAllConnections')).toEqual([['followedBy']]) + }) + }) + }) + + describe('given no type', () => { + it('defaults type to `following`', () => { + const wrapper = Wrapper() + expect(wrapper.text()).toContain('profile.network.following') + }) + }) + + describe('given a user', () => { + describe('without connections', () => { + it('displays the followingNobody message', () => { + const wrapper = Wrapper({ user: noConnectionsUser }) + expect(wrapper.find('.nobody-message').text()).toContain( + 'profile.network.followingNobody', + ) + }) + + it('displays the followedByNobody message', () => { + const wrapper = Wrapper({ user: noConnectionsUser, type: 'followedBy' }) + expect(wrapper.find('.nobody-message').text()).toContain( + 'profile.network.followedByNobody', + ) + }) + }) + + describe('with up to 7 loaded connections', () => { + let wrapper + beforeAll(() => { + wrapper = Wrapper() + }) + + it(`renders the connections`, () => { + expect(wrapper.findAll('.user-teaser')).toHaveLength(user.following.length) + }) + + it(`has a button to load all remaining connections`, async () => { + wrapper.find('.base-button').trigger('click') + expect(wrapper.emitted('fetchAllConnections')).toBeTruthy() + }) + }) + + describe('with more than 7 loaded connections', () => { + let wrapper + beforeAll(() => { + wrapper = Wrapper({ user: allConnectionsUser }) + }) + + it('renders the connections', () => { + expect(wrapper.findAll('.user-teaser')).toHaveLength(allConnectionsUser.followingCount) + }) + + it('renders the user-teasers as an overflowing list', () => { + expect(wrapper.find('.--overflow').is('ul')).toBe(true) + }) + + it('renders a filter text input', () => { + expect(wrapper.find('[name="followingFilter"]').is('input')).toBe(true) + }) + }) + }) + }) +}) diff --git a/webapp/components/features/FollowList/FollowList.story.js b/webapp/components/features/FollowList/FollowList.story.js new file mode 100644 index 000000000..78d895fe9 --- /dev/null +++ b/webapp/components/features/FollowList/FollowList.story.js @@ -0,0 +1,111 @@ +import { storiesOf } from '@storybook/vue' +import { withA11y } from '@storybook/addon-a11y' +import { action } from '@storybook/addon-actions' + +import helpers from '~/storybook/helpers' +import FollowList from './FollowList.vue' + +import fuzzyFilterUser from './FollowList.story.json' + +helpers.init() + +const user = { + name: 'Jenny Rostock', + id: 'u3', + followedByCount: 12, + followedBy: helpers.fakeUser(7), + followingCount: 28, + following: helpers.fakeUser(7), +} + +const lessThanSevenUser = { + ...user, + followedByCount: 3, + followedBy: user.followedBy.slice(0, 3), + followingCount: 3, + following: user.following.slice(0, 3), +} + +const allConnectionsUser = { + ...user, + followedBy: [...user.followedBy, ...helpers.fakeUser(5)], + following: [...user.following, ...helpers.fakeUser(21)], +} + +const noConnectionsUser = { + ...user, + followedBy: [], + followedByCount: 0, + following: [], + followingCount: 0, +} + +storiesOf('FollowList', module) + .addDecorator(withA11y) + .addDecorator(helpers.layout) + .add('without connections', () => { + return { + components: { FollowList }, + store: helpers.store, + data() { + return { user: noConnectionsUser } + }, + template: '', + } + }) + .add('with all connections loaded', () => { + return { + components: { FollowList }, + store: helpers.store, + data() { + return { user: lessThanSevenUser } + }, + + template: '', + } + }) + + .add('with more connections loadable', () => { + return { + components: { FollowList }, + store: helpers.store, + data() { + return { user: { ...user } } + }, + methods: { + fetchAllConnections(type) { + this.user[type] = allConnectionsUser[type] + action('fetchAllConnections')(type, this.user) + }, + }, + template: '', + } + }) + .add('with 1000 connections loaded', () => { + return { + components: { FollowList }, + store: helpers.store, + data() { + return { + user: { + ...user, + followedByCount: 1000, + followingCount: 1000, + followedBy: helpers.fakeUser(1000), + following: helpers.fakeUser(1000), + }, + } + }, + template: '', + } + }) + .add('Fuzzy Filter', () => { + return { + components: { FollowList }, + store: helpers.store, + data() { + return { user: fuzzyFilterUser } + }, + template: '', + } + }) diff --git a/webapp/components/features/FollowList/FollowList.story.json b/webapp/components/features/FollowList/FollowList.story.json new file mode 100644 index 000000000..e3055e6e2 --- /dev/null +++ b/webapp/components/features/FollowList/FollowList.story.json @@ -0,0 +1,519 @@ +{ + "id": "u3", + "slug": "jenny-rostock", + "name": "Jenny Rostock", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/nessoila/128.jpg?random=16aba55f-48c6-4ef5-966a-af0e31693e6a" + }, + "followedByCount": 32, + "followingCount": 31, + "following": [ + { + "id": "8c0b0191-454a-4806-b0c3-1ed1d9dc5416", + "slug": "wanda-stanton-sr", + "name": "Wanda Stanton Sr.", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/nicolasfolliot/128.jpg?random=be2e59fb-f038-44d5-9e21-28fb123e8c7c" + } + }, + { + "id": "6f4fdb51-fe93-4373-bf44-c36ea17f6535", + "slug": "walter-ohara", + "name": "Walter O'Hara", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/mutlu82/128.jpg?random=0866e1b7-8285-4eaf-a4c8-8509bd99f172" + } + }, + { + "id": "20f5080b-1fc2-4c70-94c7-badbe2aa2370", + "slug": "hannah-bradtke", + "name": "Hannah Bradtke", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/Skyhartman/128.jpg?random=c02415a6-1e7e-488a-acb6-47587399ff07" + } + }, + { + "id": "c5d2c492-5b8c-41a5-a9a2-26f8c866a885", + "slug": "georgia-koss-dvm", + "name": "Georgia Koss DVM", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/lvovenok/128.jpg?random=8e1e75b9-5dad-4fc8-9c52-38b89a3e0484" + } + }, + { + "id": "f4c10451-f367-4afb-97fe-e48f60236655", + "slug": "genevieve-aufderhar-v", + "name": "Genevieve Aufderhar V", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/dss49/128.jpg?random=fc59a664-d2b4-4677-81e9-26ed5d4bc37e" + } + }, + { + "id": "df65a474-b661-4fd8-b49f-2d609bfc4089", + "slug": "wanda-gerlach", + "name": "Wanda Gerlach", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/lewisainslie/128.jpg?random=5f0976d5-7871-4606-a416-6b67b0e67c15" + } + }, + { + "id": "5f2b3c14-07fc-4dfa-978e-9bf21d8586d0", + "slug": "roland-kohler", + "name": "Roland Kohler", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/bcrad/128.jpg?random=4f77c5b2-0214-4342-a18e-424787f04896" + } + }, + { + "id": "a2c49c22-940a-4598-8285-b8ebb34bd045", + "slug": "krista-hammes-dvm", + "name": "Krista Hammes DVM", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/sterlingrules/128.jpg?random=28167137-eee4-42e6-98a3-ec9a7d4b9509" + } + }, + { + "id": "da70bae8-daf2-4481-b2db-506d00b73210", + "slug": "miss-lester-kovacek", + "name": "Miss Lester Kovacek", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/stefvdham/128.jpg?random=7de26019-8114-4caa-9aea-2172ae3c537c" + } + }, + { + "id": "868952d8-c5df-4415-a0bb-930acd26749c", + "slug": "teri-stamm-iii", + "name": "Teri Stamm III", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/salimianoff/128.jpg?random=d2305511-39b2-4207-bee6-90799557546e" + } + }, + { + "id": "7a569786-fbb1-4e27-8f2c-38d2a0963b9d", + "slug": "gerardo-batz", + "name": "Gerardo Batz", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/colirpixoil/128.jpg?random=8536b980-103e-4e5e-8141-31142e3c6330" + } + }, + { + "id": "dca673f2-89b8-46cc-a836-2515f319c02f", + "slug": "carlton-botsford", + "name": "Carlton Botsford", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/cocolero/128.jpg?random=3ef57800-7694-4ec4-a9eb-39abca8d59e4" + } + }, + { + "id": "58ba4ab0-990e-4f44-a7a8-42d10962f8b7", + "slug": "edward-boehm", + "name": "Edward Boehm", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/d_nny_m_cher/128.jpg?random=cf3ba671-4564-4dc1-bf94-a5fc3ea4fafa" + } + }, + { + "id": "u4", + "slug": "huey", + "name": "Huey", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/hellofeverrrr/128.jpg?random=46fef3a9-44a0-4784-9854-03be6b3f37e1" + } + }, + { + "id": "40cf7e21-a4dc-4055-a49d-3137c53dd815", + "slug": "ms-laurie-bergnaum", + "name": "Ms. Laurie Bergnaum", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/kohette/128.jpg?random=45516cde-9073-4ceb-8b42-2bdf66a26c67" + } + }, + { + "id": "4c377f54-72c3-4e13-9532-6d0f2278a794", + "slug": "jeffery-waelchi", + "name": "Jeffery Waelchi", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/andresenfredrik/128.jpg?random=b643d8ba-5e49-4854-b2a6-2ff609ffcba0" + } + }, + { + "id": "d861e775-2344-40d5-b6e4-8479e7dbe97f", + "slug": "marvin-gutkowski-iii", + "name": "Marvin Gutkowski III", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/kiwiupover/128.jpg?random=d38c1508-0342-46e0-9ef9-e0fd14b33072" + } + }, + { + "id": "3102346c-ea94-41d3-8474-5241e5e473a6", + "slug": "edmund-rolfson-jr", + "name": "Edmund Rolfson Jr.", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/nerrsoft/128.jpg?random=d6f0804c-f38f-4c8b-821d-27a02373c74e" + } + }, + { + "id": "0290fd5e-7ce8-4d70-8c29-f5ed96bfaa1f", + "slug": "bert-oconner", + "name": "Bert O'Conner", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/mangosango/128.jpg?random=03807c6c-c2f6-4ed3-8433-7a1823079eb0" + } + }, + { + "id": "9fe670ff-1968-4b15-ab80-7adee8173dd8", + "slug": "angela-schiller", + "name": "Angela Schiller", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/dudestein/128.jpg?random=0b511fa4-8603-419a-acf0-2a89bc41a71b" + } + }, + { + "id": "63798c79-2476-4eb8-a09c-167420bd05d7", + "slug": "peggy-carter", + "name": "Peggy Carter", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/uxpiper/128.jpg?random=c4dc0de5-99d7-410d-8088-6a2be8358fe9" + } + }, + { + "id": "4d3fbb67-7ddc-4aa9-96d0-57bb20f95f59", + "slug": "krystal-braun", + "name": "Krystal Braun", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/salvafc/128.jpg?random=1dbd4549-a525-4fa3-be41-15db84ceb41a" + } + }, + { + "id": "bcd5f271-bca5-492e-a6b6-7fd490ac37aa", + "slug": "janet-bruen", + "name": "Janet Bruen", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/yigitpinarbasi/128.jpg?random=3c7ab2c0-8e53-4edb-8c74-fd8cdfae5f8e" + } + }, + { + "id": "38ccbf58-305a-4400-a1e4-785661604d5f", + "slug": "ebony-corwin", + "name": "Ebony Corwin", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/thibaut_re/128.jpg?random=f2137643-6f58-45b8-8266-d1fb893d0528" + } + }, + { + "id": "5137e045-aef0-4ce1-8327-b516a72fffd6", + "slug": "terrell-gorczany", + "name": "Terrell Gorczany", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/jimmuirhead/128.jpg?random=5e61976f-529e-47f2-b4f0-b5e4550942ea" + } + }, + { + "id": "b224eb01-5a71-4126-b811-51b7b35afd51", + "slug": "dr-jamie-romaguera", + "name": "Dr. Jamie Romaguera", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/leonfedotov/128.jpg?random=9179538d-58be-4707-8ad6-485f703bea26" + } + }, + { + "id": "fdbb3e7f-f211-4685-831e-9d7e394b95a1", + "slug": "shannon-schuster", + "name": "Shannon Schuster", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/markretzloff/128.jpg?random=f8a223ff-d49f-499f-a161-350e8078c353" + } + }, + { + "id": "d7ee00ea-5d22-4a1c-8670-7e4d4bd4ebfa", + "slug": "guadalupe-kessler", + "name": "Guadalupe Kessler", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/linux29/128.jpg?random=a87d13e1-ff0e-4a39-a018-e89a04d72572" + } + }, + { + "id": "49b868e3-dba5-48ed-8b6c-e686c70dfcfb", + "slug": "lonnie-rogahn", + "name": "Lonnie Rogahn", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/herbigt/128.jpg?random=fde8a699-624d-4052-96ef-0aaacf217184" + } + }, + { + "id": "fa70eecb-fbae-4133-b447-6c80b335fc01", + "slug": "marcella-ledner", + "name": "Marcella Ledner", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/dawidwu/128.jpg?random=03869abc-1a6b-4f26-8d73-7ba508c148d0" + } + }, + { + "id": "ef4cc540-c784-407f-b646-cff4d8fe666e", + "slug": "darrell-runolfsson", + "name": "Darrell Runolfsson", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/andrewofficer/128.jpg?random=e6c24db9-f1c9-45b5-8507-609fca960e92" + } + } + ], + "followedBy": [ + { + "id": "8c0b0191-454a-4806-b0c3-1ed1d9dc5416", + "slug": "wanda-stanton-sr", + "name": "Wanda Stanton Sr.", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/nicolasfolliot/128.jpg?random=be2e59fb-f038-44d5-9e21-28fb123e8c7c" + } + }, + { + "id": "c5d2c492-5b8c-41a5-a9a2-26f8c866a885", + "slug": "georgia-koss-dvm", + "name": "Georgia Koss DVM", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/lvovenok/128.jpg?random=8e1e75b9-5dad-4fc8-9c52-38b89a3e0484" + } + }, + { + "id": "5f2b3c14-07fc-4dfa-978e-9bf21d8586d0", + "slug": "roland-kohler", + "name": "Roland Kohler", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/bcrad/128.jpg?random=4f77c5b2-0214-4342-a18e-424787f04896" + } + }, + { + "id": "6f4fdb51-fe93-4373-bf44-c36ea17f6535", + "slug": "walter-ohara", + "name": "Walter O'Hara", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/mutlu82/128.jpg?random=0866e1b7-8285-4eaf-a4c8-8509bd99f172" + } + }, + { + "id": "20f5080b-1fc2-4c70-94c7-badbe2aa2370", + "slug": "hannah-bradtke", + "name": "Hannah Bradtke", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/Skyhartman/128.jpg?random=c02415a6-1e7e-488a-acb6-47587399ff07" + } + }, + { + "id": "df65a474-b661-4fd8-b49f-2d609bfc4089", + "slug": "wanda-gerlach", + "name": "Wanda Gerlach", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/lewisainslie/128.jpg?random=5f0976d5-7871-4606-a416-6b67b0e67c15" + } + }, + { + "id": "f4c10451-f367-4afb-97fe-e48f60236655", + "slug": "genevieve-aufderhar-v", + "name": "Genevieve Aufderhar V", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/dss49/128.jpg?random=fc59a664-d2b4-4677-81e9-26ed5d4bc37e" + } + }, + { + "id": "7a569786-fbb1-4e27-8f2c-38d2a0963b9d", + "slug": "gerardo-batz", + "name": "Gerardo Batz", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/colirpixoil/128.jpg?random=8536b980-103e-4e5e-8141-31142e3c6330" + } + }, + { + "id": "da70bae8-daf2-4481-b2db-506d00b73210", + "slug": "miss-lester-kovacek", + "name": "Miss Lester Kovacek", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/stefvdham/128.jpg?random=7de26019-8114-4caa-9aea-2172ae3c537c" + } + }, + { + "id": "a2c49c22-940a-4598-8285-b8ebb34bd045", + "slug": "krista-hammes-dvm", + "name": "Krista Hammes DVM", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/sterlingrules/128.jpg?random=28167137-eee4-42e6-98a3-ec9a7d4b9509" + } + }, + { + "id": "bcd5f271-bca5-492e-a6b6-7fd490ac37aa", + "slug": "janet-bruen", + "name": "Janet Bruen", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/yigitpinarbasi/128.jpg?random=3c7ab2c0-8e53-4edb-8c74-fd8cdfae5f8e" + } + }, + { + "id": "38ccbf58-305a-4400-a1e4-785661604d5f", + "slug": "ebony-corwin", + "name": "Ebony Corwin", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/thibaut_re/128.jpg?random=f2137643-6f58-45b8-8266-d1fb893d0528" + } + }, + { + "id": "d7ee00ea-5d22-4a1c-8670-7e4d4bd4ebfa", + "slug": "guadalupe-kessler", + "name": "Guadalupe Kessler", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/linux29/128.jpg?random=a87d13e1-ff0e-4a39-a018-e89a04d72572" + } + }, + { + "id": "dca673f2-89b8-46cc-a836-2515f319c02f", + "slug": "carlton-botsford", + "name": "Carlton Botsford", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/cocolero/128.jpg?random=3ef57800-7694-4ec4-a9eb-39abca8d59e4" + } + }, + { + "id": "49b868e3-dba5-48ed-8b6c-e686c70dfcfb", + "slug": "lonnie-rogahn", + "name": "Lonnie Rogahn", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/herbigt/128.jpg?random=fde8a699-624d-4052-96ef-0aaacf217184" + } + }, + { + "id": "4d3fbb67-7ddc-4aa9-96d0-57bb20f95f59", + "slug": "krystal-braun", + "name": "Krystal Braun", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/salvafc/128.jpg?random=1dbd4549-a525-4fa3-be41-15db84ceb41a" + } + }, + { + "id": "58ba4ab0-990e-4f44-a7a8-42d10962f8b7", + "slug": "edward-boehm", + "name": "Edward Boehm", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/d_nny_m_cher/128.jpg?random=cf3ba671-4564-4dc1-bf94-a5fc3ea4fafa" + } + }, + { + "id": "868952d8-c5df-4415-a0bb-930acd26749c", + "slug": "teri-stamm-iii", + "name": "Teri Stamm III", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/salimianoff/128.jpg?random=d2305511-39b2-4207-bee6-90799557546e" + } + }, + { + "id": "fa70eecb-fbae-4133-b447-6c80b335fc01", + "slug": "marcella-ledner", + "name": "Marcella Ledner", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/dawidwu/128.jpg?random=03869abc-1a6b-4f26-8d73-7ba508c148d0" + } + }, + { + "id": "63798c79-2476-4eb8-a09c-167420bd05d7", + "slug": "peggy-carter", + "name": "Peggy Carter", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/uxpiper/128.jpg?random=c4dc0de5-99d7-410d-8088-6a2be8358fe9" + } + }, + { + "id": "9fe670ff-1968-4b15-ab80-7adee8173dd8", + "slug": "angela-schiller", + "name": "Angela Schiller", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/dudestein/128.jpg?random=0b511fa4-8603-419a-acf0-2a89bc41a71b" + } + }, + { + "id": "fdbb3e7f-f211-4685-831e-9d7e394b95a1", + "slug": "shannon-schuster", + "name": "Shannon Schuster", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/markretzloff/128.jpg?random=f8a223ff-d49f-499f-a161-350e8078c353" + } + }, + { + "id": "5137e045-aef0-4ce1-8327-b516a72fffd6", + "slug": "terrell-gorczany", + "name": "Terrell Gorczany", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/jimmuirhead/128.jpg?random=5e61976f-529e-47f2-b4f0-b5e4550942ea" + } + }, + { + "id": "ef4cc540-c784-407f-b646-cff4d8fe666e", + "slug": "darrell-runolfsson", + "name": "Darrell Runolfsson", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/andrewofficer/128.jpg?random=e6c24db9-f1c9-45b5-8507-609fca960e92" + } + }, + { + "id": "b224eb01-5a71-4126-b811-51b7b35afd51", + "slug": "dr-jamie-romaguera", + "name": "Dr. Jamie Romaguera", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/leonfedotov/128.jpg?random=9179538d-58be-4707-8ad6-485f703bea26" + } + }, + { + "id": "u1", + "slug": "peter-lustig", + "name": "Peter Lustig", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/timgthomas/128.jpg?random=189d17f8-02d1-4b01-a000-af7121ae6897" + } + }, + { + "id": "u6", + "slug": "louie", + "name": "Louie", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/yayteejay/128.jpg?random=eefe597c-d49a-494f-b311-d6f2645d2264" + } + }, + { + "id": "3102346c-ea94-41d3-8474-5241e5e473a6", + "slug": "edmund-rolfson-jr", + "name": "Edmund Rolfson Jr.", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/nerrsoft/128.jpg?random=d6f0804c-f38f-4c8b-821d-27a02373c74e" + } + }, + { + "id": "40cf7e21-a4dc-4055-a49d-3137c53dd815", + "slug": "ms-laurie-bergnaum", + "name": "Ms. Laurie Bergnaum", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/kohette/128.jpg?random=45516cde-9073-4ceb-8b42-2bdf66a26c67" + } + }, + { + "id": "d861e775-2344-40d5-b6e4-8479e7dbe97f", + "slug": "marvin-gutkowski-iii", + "name": "Marvin Gutkowski III", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/kiwiupover/128.jpg?random=d38c1508-0342-46e0-9ef9-e0fd14b33072" + } + }, + { + "id": "4c377f54-72c3-4e13-9532-6d0f2278a794", + "slug": "jeffery-waelchi", + "name": "Jeffery Waelchi", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/andresenfredrik/128.jpg?random=b643d8ba-5e49-4854-b2a6-2ff609ffcba0" + } + }, + { + "id": "0290fd5e-7ce8-4d70-8c29-f5ed96bfaa1f", + "slug": "bert-oconner", + "name": "Bert O'Conner", + "avatar": { + "url": "https://s3.amazonaws.com/uifaces/faces/twitter/mangosango/128.jpg?random=03807c6c-c2f6-4ed3-8433-7a1823079eb0" + } + } + ] +} + diff --git a/webapp/components/features/FollowList/FollowList.vue b/webapp/components/features/FollowList/FollowList.vue new file mode 100644 index 000000000..633896e08 --- /dev/null +++ b/webapp/components/features/FollowList/FollowList.vue @@ -0,0 +1,165 @@ + + + + + diff --git a/webapp/graphql/User.js b/webapp/graphql/User.js index aeb6ae729..daf586284 100644 --- a/webapp/graphql/User.js +++ b/webapp/graphql/User.js @@ -14,7 +14,7 @@ export default (i18n) => { ${userCountsFragment} ${locationAndBadgesFragment(lang)} - query User($id: ID!) { + query User($id: ID!, $followedByCount: Int, $followingCount: Int) { User(id: $id) { ...user ...userCounts @@ -26,12 +26,12 @@ export default (i18n) => { isMuted isBlocked blocked - following(first: 7) { + following(first: $followingCount) { ...user ...userCounts ...locationAndBadges } - followedBy(first: 7) { + followedBy(first: $followedByCount) { ...user ...userCounts ...locationAndBadges diff --git a/webapp/package.json b/webapp/package.json index f6200cef9..15489fc83 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -71,7 +71,7 @@ "cookie-universal-nuxt": "~2.1.3", "cropperjs": "^1.5.5", "cross-env": "~7.0.2", - "date-fns": "2.11.1", + "date-fns": "2.12.0", "express": "~4.17.1", "graphql": "~14.6.0", "jsonwebtoken": "~8.5.1", @@ -111,12 +111,12 @@ "async-validator": "^3.2.4", "babel-core": "~7.0.0-bridge.0", "babel-eslint": "~10.1.0", - "babel-jest": "~25.2.6", + "babel-jest": "~25.3.0", "babel-loader": "~8.1.0", "babel-plugin-require-context-hook": "^1.0.0", "babel-preset-vue": "~2.0.2", "core-js": "~2.6.10", - "css-loader": "~3.5.1", + "css-loader": "~3.5.2", "eslint": "~6.8.0", "eslint-config-prettier": "~6.10.1", "eslint-config-standard": "~14.1.1", @@ -131,7 +131,7 @@ "faker": "^4.1.0", "flush-promises": "^1.0.2", "identity-obj-proxy": "^3.0.0", - "jest": "~25.2.7", + "jest": "~25.3.0", "mutation-observer": "^1.0.3", "node-sass": "~4.13.1", "prettier": "~2.0.4", diff --git a/webapp/pages/profile/_id/_slug.spec.js b/webapp/pages/profile/_id/_slug.spec.js index 0dfc87b85..477174485 100644 --- a/webapp/pages/profile/_id/_slug.spec.js +++ b/webapp/pages/profile/_id/_slug.spec.js @@ -9,6 +9,7 @@ config.stubs['client-only'] = '' config.stubs['v-popover'] = '' config.stubs['nuxt-link'] = '' config.stubs['infinite-loading'] = '' +config.stubs['follow-list'] = '' describe('ProfileSlug', () => { let wrapper diff --git a/webapp/pages/profile/_id/_slug.vue b/webapp/pages/profile/_id/_slug.vue index 2b3ccb888..1a43da14b 100644 --- a/webapp/pages/profile/_id/_slug.vue +++ b/webapp/pages/profile/_id/_slug.vue @@ -89,65 +89,19 @@ {{ $t('profile.network.title') }} - - - - {{ userName | truncate(15) }} {{ $t('profile.network.following') }} - - - - - + - - - - {{ userName | truncate(15) }} {{ $t('profile.network.followedBy') }} - - - - - + @@ -271,11 +225,11 @@