Merge branch 'next' into next-passport

This commit is contained in:
Wyatt Johnson
2018-07-05 16:01:44 -06:00
8 changed files with 308 additions and 115 deletions
+17
View File
@@ -43,6 +43,20 @@ jobs:
name: Perform linting
command: npm run lint
# unit_tests will run the unit tests.
unit_tests:
<<: *job_defaults
steps:
- checkout
- attach_workspace:
at: ~/coralproject/talk
- run:
name: Compile schemas and types
command: npm run compile
- run:
name: Perform testing
command: npm run test
# build will build the static assets and server typescript files.
build:
<<: *job_defaults
@@ -74,6 +88,9 @@ workflows:
- lint:
requires:
- npm_dependencies
- unit_tests:
requires:
- npm_dependencies
- build:
requires:
- npm_dependencies
+7 -2
View File
@@ -8,7 +8,7 @@ module.exports = {
setupFiles: ["<rootDir>/config/polyfills.js"],
testMatch: [
"**/__tests__/**/*.{js,jsx,mjs,ts,tsx}",
"**/*.(spec|test).{js,jsx,mjs,ts,tsx}",
"**/*.spec.{js,jsx,mjs,ts,tsx}",
],
testEnvironment: "node",
testURL: "http://localhost",
@@ -22,7 +22,12 @@ module.exports = {
"[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs|ts|tsx)$",
],
moduleNameMapper: {
"^react-native$": "react-native-web",
"^talk-admin/(.*)$": "<rootDir>/src/core/client/admin/$1",
"^talk-ui/(.*)$": "<rootDir>/src/core/client/ui/$1",
"^talk-stream/(.*)$": "<rootDir>/src/core/client/stream/$1",
"^talk-framework/(.*)$": "<rootDir>/src/core/client/framework/$1",
"^talk-common/(.*)$": "<rootDir>/src/core/common/$1",
"^talk-server/(.*)$": "<rootDir>/src/core/server/$1",
},
moduleFileExtensions: [
"web.js",
+88 -8
View File
@@ -1,14 +1,94 @@
"use strict";
// This is a custom Jest transformer turning style imports into empty objects.
// http://facebook.github.io/jest/docs/en/webpack.html
// Adapted version of https://github.com/Connormiha/jest-css-modules-transform
// Copyright https://github.com/Connormiha/jest-css-modules-transform/graphs/contributors
// This oututs `module.exports = cssObject` instead of `module.exports = { default: cssObject }`;
const { sep: pathSep, resolve } = require("path");
const postcss = require("postcss");
const postcssNested = postcss([require("postcss-nested")]);
const REG_EXP_NAME_BREAK_CHAR = /[\s,.{/#[:]/;
const getCSSSelectors = (css, path) => {
const end = css.length;
let i = 0;
let char;
let bracketsCount = 0;
const result = {};
while (i < end) {
if (i === -1) {
throw Error(`Parse error ${path}`);
}
if (css.indexOf("/*", i) === i) {
i = css.indexOf("*/", i + 2);
// Unclosed comment. Break to avoid infinity loop
if (i === -1) {
// Don't parse, but save collected result
return result;
}
continue;
}
char = css[i];
if (char === "{") {
bracketsCount++;
i++;
continue;
}
if (char === "}") {
bracketsCount--;
i++;
continue;
}
if (char === '"' || char === "'") {
do {
i = css.indexOf(char, i + 1);
// Syntax error since this line. Don't parse, but save collected result
if (i === -1) {
return result;
}
} while (css[i - 1] === "\\");
i++;
continue;
}
if (bracketsCount > 0) {
i++;
continue;
}
if (char === "." || char === "#") {
i++;
const startWord = i;
while (!REG_EXP_NAME_BREAK_CHAR.test(css[i])) {
i++;
}
const word = css.slice(startWord, i);
result[word] = word;
continue;
}
if (css.indexOf("@keyframes", i) === i) {
i += 10;
while (REG_EXP_NAME_BREAK_CHAR.test(css[i])) {
i++;
}
const startWord = i;
while (!REG_EXP_NAME_BREAK_CHAR.test(css[i])) {
i++;
}
const word = css.slice(startWord, i);
result[word] = word;
continue;
}
i++;
}
return result;
};
module.exports = {
process() {
return "module.exports = {};";
},
getCacheKey() {
// The output is always the same.
return "cssTransform";
process(src, path, config) {
const filename = path.slice(path.lastIndexOf(pathSep) + 1);
const textCSS = postcssNested.process(src).css;
const exprt = JSON.stringify(getCSSSelectors(textCSS, path));
return `module.exports = ${exprt}`;
},
};
+128 -101
View File
@@ -1693,13 +1693,17 @@
}
},
"@types/react-relay": {
"version": "1.3.6",
"resolved": "https://registry.npmjs.org/@types/react-relay/-/react-relay-1.3.6.tgz",
"integrity": "sha512-X0qv3nGlE4TStFLLKxgj+6MgHZEExB1N/RDcVcyCauAojV5byD0c6VhuqAluYaTKaL2FBuxdtDL405IhIIjEbQ==",
"version": "github:coralproject/patched#ba4c8d01bb737e5f073534b32d870294e39cc5a8",
"from": "github:coralproject/patched#types/react-relay",
"dev": true
},
"@types/react-test-renderer": {
"version": "16.0.1",
"resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-16.0.1.tgz",
"integrity": "sha512-kmNh8g67Ck/y/vp6KX+4JTJXiTGLZBylNhu+R7sm7zcvsrnIGVO6J1zew5inVg428j9f8yHpl68RcYOZXVborQ==",
"dev": true,
"requires": {
"@types/react": "*",
"@types/relay-runtime": "*"
"@types/react": "*"
}
},
"@types/recompose": {
@@ -7704,17 +7708,17 @@
}
},
"expect": {
"version": "23.2.0",
"resolved": "https://registry.npmjs.org/expect/-/expect-23.2.0.tgz",
"integrity": "sha1-U6fhNeNv4n51hnsReP8IqqzCsN0=",
"version": "23.3.0",
"resolved": "https://registry.npmjs.org/expect/-/expect-23.3.0.tgz",
"integrity": "sha1-7LBRrcvcQKxNtXbBYGfxL9sTzGE=",
"dev": true,
"requires": {
"ansi-styles": "^3.2.0",
"jest-diff": "^23.2.0",
"jest-get-type": "^22.1.0",
"jest-matcher-utils": "^23.2.0",
"jest-message-util": "^23.2.0",
"jest-regex-util": "^23.0.0"
"jest-message-util": "^23.3.0",
"jest-regex-util": "^23.3.0"
},
"dependencies": {
"ansi-styles": {
@@ -10900,13 +10904,13 @@
"dev": true
},
"jest": {
"version": "23.2.0",
"resolved": "https://registry.npmjs.org/jest/-/jest-23.2.0.tgz",
"integrity": "sha1-govzGgltRdzwaCTR6gMBOve8/CA=",
"version": "23.3.0",
"resolved": "https://registry.npmjs.org/jest/-/jest-23.3.0.tgz",
"integrity": "sha1-E1XNeS84zyD7pNoC3dt8oU2UhLU=",
"dev": true,
"requires": {
"import-local": "^1.0.0",
"jest-cli": "^23.2.0"
"jest-cli": "^23.3.0"
},
"dependencies": {
"ansi-regex": {
@@ -10930,9 +10934,9 @@
}
},
"jest-cli": {
"version": "23.2.0",
"resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-23.2.0.tgz",
"integrity": "sha1-O1Q6PaUUXdiTeTEBcoI3n8aWxFs=",
"version": "23.3.0",
"resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-23.3.0.tgz",
"integrity": "sha1-MH6b53M0Q7eJqCedaUBU0FGp5eI=",
"dev": true,
"requires": {
"ansi-escapes": "^3.0.0",
@@ -10947,18 +10951,18 @@
"istanbul-lib-instrument": "^1.10.1",
"istanbul-lib-source-maps": "^1.2.4",
"jest-changed-files": "^23.2.0",
"jest-config": "^23.2.0",
"jest-environment-jsdom": "^23.2.0",
"jest-config": "^23.3.0",
"jest-environment-jsdom": "^23.3.0",
"jest-get-type": "^22.1.0",
"jest-haste-map": "^23.2.0",
"jest-message-util": "^23.2.0",
"jest-regex-util": "^23.0.0",
"jest-resolve-dependencies": "^23.2.0",
"jest-runner": "^23.2.0",
"jest-runtime": "^23.2.0",
"jest-snapshot": "^23.2.0",
"jest-util": "^23.2.0",
"jest-validate": "^23.2.0",
"jest-message-util": "^23.3.0",
"jest-regex-util": "^23.3.0",
"jest-resolve-dependencies": "^23.3.0",
"jest-runner": "^23.3.0",
"jest-runtime": "^23.3.0",
"jest-snapshot": "^23.3.0",
"jest-util": "^23.3.0",
"jest-validate": "^23.3.0",
"jest-watcher": "^23.2.0",
"jest-worker": "^23.2.0",
"micromatch": "^3.1.10",
@@ -11003,23 +11007,23 @@
}
},
"jest-config": {
"version": "23.2.0",
"resolved": "https://registry.npmjs.org/jest-config/-/jest-config-23.2.0.tgz",
"integrity": "sha1-0vtVb9WioZw561bROdzKXa0qHIg=",
"version": "23.3.0",
"resolved": "https://registry.npmjs.org/jest-config/-/jest-config-23.3.0.tgz",
"integrity": "sha1-u01Ttw+VAPr933GNImq7U7E7gyM=",
"dev": true,
"requires": {
"babel-core": "^6.0.0",
"babel-jest": "^23.2.0",
"chalk": "^2.0.1",
"glob": "^7.1.1",
"jest-environment-jsdom": "^23.2.0",
"jest-environment-node": "^23.2.0",
"jest-environment-jsdom": "^23.3.0",
"jest-environment-node": "^23.3.0",
"jest-get-type": "^22.1.0",
"jest-jasmine2": "^23.2.0",
"jest-regex-util": "^23.0.0",
"jest-jasmine2": "^23.3.0",
"jest-regex-util": "^23.3.0",
"jest-resolve": "^23.2.0",
"jest-util": "^23.2.0",
"jest-validate": "^23.2.0",
"jest-util": "^23.3.0",
"jest-validate": "^23.3.0",
"pretty-format": "^23.2.0"
},
"dependencies": {
@@ -11068,24 +11072,24 @@
}
},
"jest-environment-jsdom": {
"version": "23.2.0",
"resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-23.2.0.tgz",
"integrity": "sha1-NjRgOgipdbDKimWDIPVqVKjgRVg=",
"version": "23.3.0",
"resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-23.3.0.tgz",
"integrity": "sha1-GQRX+RyeYVRUxBhgVgZdtu16Tio=",
"dev": true,
"requires": {
"jest-mock": "^23.2.0",
"jest-util": "^23.2.0",
"jest-util": "^23.3.0",
"jsdom": "^11.5.1"
}
},
"jest-environment-node": {
"version": "23.2.0",
"resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-23.2.0.tgz",
"integrity": "sha1-tv5BNy44IJO7bz2b32wcTsClDxg=",
"version": "23.3.0",
"resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-23.3.0.tgz",
"integrity": "sha1-Ho3yHIR6pdA7dlc/DcFvzeUDTDI=",
"dev": true,
"requires": {
"jest-mock": "^23.2.0",
"jest-util": "^23.2.0"
"jest-util": "^23.3.0"
}
},
"jest-get-type": {
@@ -11121,21 +11125,21 @@
}
},
"jest-jasmine2": {
"version": "23.2.0",
"resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-23.2.0.tgz",
"integrity": "sha1-qmcM2x5NX47HdMlN2l4QX+M9i7Q=",
"version": "23.3.0",
"resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-23.3.0.tgz",
"integrity": "sha1-qHBrqsI8ihMNWqjvVGSp1JCW0bU=",
"dev": true,
"requires": {
"chalk": "^2.0.1",
"co": "^4.6.0",
"expect": "^23.2.0",
"expect": "^23.3.0",
"is-generator-fn": "^1.0.0",
"jest-diff": "^23.2.0",
"jest-each": "^23.2.0",
"jest-matcher-utils": "^23.2.0",
"jest-message-util": "^23.2.0",
"jest-snapshot": "^23.2.0",
"jest-util": "^23.2.0",
"jest-message-util": "^23.3.0",
"jest-snapshot": "^23.3.0",
"jest-util": "^23.3.0",
"pretty-format": "^23.2.0"
}
},
@@ -11160,9 +11164,9 @@
}
},
"jest-message-util": {
"version": "23.2.0",
"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-23.2.0.tgz",
"integrity": "sha1-WR6BSP/2nPibBBSAnHIXVuvv50Q=",
"version": "23.3.0",
"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-23.3.0.tgz",
"integrity": "sha1-vAexHOxpcftd2d4t+2DrwiFQwWA=",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0-beta.35",
@@ -11179,9 +11183,9 @@
"dev": true
},
"jest-regex-util": {
"version": "23.0.0",
"resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-23.0.0.tgz",
"integrity": "sha1-3Vwf3gxG9DcTFM8Q96dRoj9Oj3Y=",
"version": "23.3.0",
"resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-23.3.0.tgz",
"integrity": "sha1-X4ZylUfCeFxAAs6qj4Sf6MpHG8U=",
"dev": true
},
"jest-resolve": {
@@ -11196,31 +11200,31 @@
}
},
"jest-resolve-dependencies": {
"version": "23.2.0",
"resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-23.2.0.tgz",
"integrity": "sha1-bfjVcJxkBmOc0H9Uv/B04BtcBFg=",
"version": "23.3.0",
"resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-23.3.0.tgz",
"integrity": "sha1-hETTsLEoi4CGTYgB/1C0Sk1pXR0=",
"dev": true,
"requires": {
"jest-regex-util": "^23.0.0",
"jest-snapshot": "^23.2.0"
"jest-regex-util": "^23.3.0",
"jest-snapshot": "^23.3.0"
}
},
"jest-runner": {
"version": "23.2.0",
"resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-23.2.0.tgz",
"integrity": "sha1-DZGWfqgvcrDHBZEJJghtIFXOda8=",
"version": "23.3.0",
"resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-23.3.0.tgz",
"integrity": "sha1-BMfkWKYXUBpIddsNf/vg48vUO/s=",
"dev": true,
"requires": {
"exit": "^0.1.2",
"graceful-fs": "^4.1.11",
"jest-config": "^23.2.0",
"jest-config": "^23.3.0",
"jest-docblock": "^23.2.0",
"jest-haste-map": "^23.2.0",
"jest-jasmine2": "^23.2.0",
"jest-jasmine2": "^23.3.0",
"jest-leak-detector": "^23.2.0",
"jest-message-util": "^23.2.0",
"jest-runtime": "^23.2.0",
"jest-util": "^23.2.0",
"jest-message-util": "^23.3.0",
"jest-runtime": "^23.3.0",
"jest-util": "^23.3.0",
"jest-worker": "^23.2.0",
"source-map-support": "^0.5.6",
"throat": "^4.0.0"
@@ -11238,9 +11242,9 @@
}
},
"jest-runtime": {
"version": "23.2.0",
"resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-23.2.0.tgz",
"integrity": "sha1-YtywF2ahxMZGltwJAgnnbOGq3Lw=",
"version": "23.3.0",
"resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-23.3.0.tgz",
"integrity": "sha1-SGWqtM7/gvnOxjNf164UIswd598=",
"dev": true,
"requires": {
"babel-core": "^6.0.0",
@@ -11250,14 +11254,14 @@
"exit": "^0.1.2",
"fast-json-stable-stringify": "^2.0.0",
"graceful-fs": "^4.1.11",
"jest-config": "^23.2.0",
"jest-config": "^23.3.0",
"jest-haste-map": "^23.2.0",
"jest-message-util": "^23.2.0",
"jest-regex-util": "^23.0.0",
"jest-message-util": "^23.3.0",
"jest-regex-util": "^23.3.0",
"jest-resolve": "^23.2.0",
"jest-snapshot": "^23.2.0",
"jest-util": "^23.2.0",
"jest-validate": "^23.2.0",
"jest-snapshot": "^23.3.0",
"jest-util": "^23.3.0",
"jest-validate": "^23.3.0",
"micromatch": "^3.1.10",
"realpath-native": "^1.0.0",
"slash": "^1.0.0",
@@ -11273,30 +11277,35 @@
"dev": true
},
"jest-snapshot": {
"version": "23.2.0",
"resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-23.2.0.tgz",
"integrity": "sha1-x6PQFxd7utYMillYac+QqHguan4=",
"version": "23.3.0",
"resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-23.3.0.tgz",
"integrity": "sha1-/E6fgeRUMtEFB+J/ULzmD0TYFCQ=",
"dev": true,
"requires": {
"babel-traverse": "^6.0.0",
"babel-types": "^6.0.0",
"chalk": "^2.0.1",
"jest-diff": "^23.2.0",
"jest-matcher-utils": "^23.2.0",
"jest-message-util": "^23.3.0",
"jest-resolve": "^23.2.0",
"mkdirp": "^0.5.1",
"natural-compare": "^1.4.0",
"pretty-format": "^23.2.0"
"pretty-format": "^23.2.0",
"semver": "^5.5.0"
}
},
"jest-util": {
"version": "23.2.0",
"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-23.2.0.tgz",
"integrity": "sha1-YrdwdXaW2W4JSgS48cNzylClqy4=",
"version": "23.3.0",
"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-23.3.0.tgz",
"integrity": "sha1-efNbsMMBAO9hHZY+5riPjthzqB0=",
"dev": true,
"requires": {
"callsites": "^2.0.0",
"chalk": "^2.0.1",
"graceful-fs": "^4.1.11",
"is-ci": "^1.0.10",
"jest-message-util": "^23.2.0",
"jest-message-util": "^23.3.0",
"mkdirp": "^0.5.1",
"slash": "^1.0.0",
"source-map": "^0.6.0"
@@ -11311,9 +11320,9 @@
}
},
"jest-validate": {
"version": "23.2.0",
"resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-23.2.0.tgz",
"integrity": "sha1-Z8i5CeEa8XAXZSOIlMZ6wykbGV4=",
"version": "23.3.0",
"resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-23.3.0.tgz",
"integrity": "sha1-1Jvqaq2YwwrNLLtUJDR5igzBP3Y=",
"dev": true,
"requires": {
"chalk": "^2.0.1",
@@ -16032,13 +16041,13 @@
"dev": true
},
"prompts": {
"version": "0.1.9",
"resolved": "https://registry.npmjs.org/prompts/-/prompts-0.1.9.tgz",
"integrity": "sha512-RMRvwAUDVUMhP/z3YfDW6igMwT0UnL+w3XCUUNxxHjgwJnVEdHWYJVjM7hQMPub8HCk12xZYAqWlbgLBnqebwg==",
"version": "0.1.10",
"resolved": "https://registry.npmjs.org/prompts/-/prompts-0.1.10.tgz",
"integrity": "sha512-/MPwms6+g/m6fvXZlQyOL4m4ziDim2+Wc6CdWVjp+nVCkzEkK2N4rR74m/bbGf+dkta+/SBpo1FfES8Wgrk/Fw==",
"dev": true,
"requires": {
"clorox": "^1.0.1",
"sisteransi": "^0.1.0"
"clorox": "^1.0.3",
"sisteransi": "^0.1.1"
}
},
"prop-types": {
@@ -16560,6 +16569,12 @@
"shallowequal": "^1.0.2"
}
},
"react-is": {
"version": "16.4.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.4.1.tgz",
"integrity": "sha512-xpb0PpALlFWNw/q13A+1aHeyJyLYCg0/cCHPUA43zYluZuIPHaHL3k8OBsTgQtxqW0FhyDEMvi8fZ/+7+r4OSQ==",
"dev": true
},
"react-lifecycles-compat": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
@@ -16660,6 +16675,18 @@
}
}
},
"react-test-renderer": {
"version": "16.4.1",
"resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.4.1.tgz",
"integrity": "sha512-wyyiPxRZOTpKnNIgUBOB6xPLTpIzwcQMIURhZvzUqZzezvHjaGNsDPBhMac5fIY3Jf5NuKxoGvV64zDSOECPPQ==",
"dev": true,
"requires": {
"fbjs": "^0.8.16",
"object-assign": "^4.1.1",
"prop-types": "^15.6.0",
"react-is": "^16.4.1"
}
},
"read-pkg": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
@@ -16709,9 +16736,9 @@
}
},
"realpath-native": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.0.0.tgz",
"integrity": "sha512-XJtlRJ9jf0E1H1SLeJyQ9PGzQD7S65h1pRXEcAeK48doKOnKxcgPeNohJvD5u/2sI9J1oke6E8bZHS/fmW1UiQ==",
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.0.1.tgz",
"integrity": "sha512-W14EcXuqUvKP8dkWkD7B95iMy77lpMnlFXbbk409bQtNCbeu0kvRE5reo+yIZ3JXxg6frbGsz2DLQ39lrCB40g==",
"dev": true,
"requires": {
"util.promisify": "^1.0.0"
@@ -17951,9 +17978,9 @@
}
},
"sisteransi": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-0.1.0.tgz",
"integrity": "sha512-kHXcIr0Z9FM6d7pwFDDIMQKGndIEtIF1oBSMXWtItpx4mrH1jhANVNT35GVekBekXl6J+5i7lJMIGq3Gm7pIdA==",
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-0.1.1.tgz",
"integrity": "sha512-PmGOd02bM9YO5ifxpw36nrNMBTptEtfRl4qUYl9SndkolplkrZZOW7PGHjrZL53QvMVj9nQ+TKqUnRsw4tJa4g==",
"dev": true
},
"slash": {
+6 -3
View File
@@ -5,10 +5,11 @@
"scripts": {
"build:client": "node ./scripts/build.js",
"build:server": "tsc -p ./src/tsconfig.json",
"build": "npm-run-all --parallel compile:* --parallel build:*",
"build": "npm-run-all compile --parallel build:*",
"compile:css-types": "tcm src/core/client/",
"compile:graphql": "node ./scripts/types.js",
"compile:relay-stream": "relay-compiler --src ./src/core/client/stream --schema $(ts-node ./scripts/schemaPath.ts tenant) --language typescript --artifactDirectory ./src/core/client/stream/__generated__ --no-watchman",
"compile": "npm-run-all --parallel compile:*",
"docz:watch": "docz dev",
"lint-fix": "npm run lint:server -- --fix && npm run lint:client -- --fix && npm run lint:scripts -- --fix",
"lint:client": "tslint --project ./src/core/client/tsconfig.json",
@@ -84,7 +85,8 @@
"@types/passport-strategy": "^0.2.33",
"@types/query-string": "^6.1.0",
"@types/react-dom": "^16.0.6",
"@types/react-relay": "^1.3.6",
"@types/react-relay": "github:coralproject/patched#types/react-relay",
"@types/react-test-renderer": "^16.0.1",
"@types/recompose": "^0.26.1",
"@types/relay-runtime": "github:coralproject/patched#types/relay-runtime",
"@types/uuid": "^3.4.3",
@@ -113,7 +115,7 @@
"graphql-playground-middleware-express": "^1.7.0",
"graphql-schema-typescript": "^1.2.1",
"html-webpack-plugin": "^3.2.0",
"jest": "^23.2.0",
"jest": "^23.3.0",
"loader-utils": "^1.1.0",
"npm-run-all": "^4.1.3",
"postcss-flexbugs-fixes": "^3.3.1",
@@ -128,6 +130,7 @@
"react-dom": "^16.4.0",
"react-final-form": "^3.6.0",
"react-relay": "github:coralproject/patched#react-relay",
"react-test-renderer": "^16.4.1",
"recompose": "^0.27.1",
"relay-compiler": "github:coralproject/patched#relay-compiler",
"relay-compiler-language-typescript": "github:coralproject/patched#relay-compiler-language-typescript",
+1 -1
View File
@@ -19,11 +19,11 @@ const paths = require("../config/paths");
const jest = require("jest");
let argv = process.argv.slice(2);
argv.push("--config", paths.appJestConfig);
// Watch unless on CI or in coverage mode
if (!process.env.CI && argv.indexOf("--coverage") < 0) {
argv.push("--watch");
argv.push("--config", paths.appJestConfig);
}
jest.run(argv);
@@ -0,0 +1,28 @@
import React from "react";
import { createRenderer } from "react-test-renderer/shallow";
import Comment from "./Comment";
it("renders username and body", () => {
const props = {
author: {
username: "Marvin",
},
body: "Woof",
};
const renderer = createRenderer();
renderer.render(<Comment {...props} />);
expect(renderer.getRenderOutput()).toMatchSnapshot();
});
it("renders with gutterBottom", () => {
const props = {
author: {
username: "Marvin",
},
body: "Woof",
gutterBottom: true,
};
const renderer = createRenderer();
renderer.render(<Comment {...props} />);
expect(renderer.getRenderOutput()).toMatchSnapshot();
});
@@ -0,0 +1,33 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`renders username and body 1`] = `
<div
className="root"
>
<withPropsOnChange(Typography)
className="author"
gutterBottom={true}
>
Marvin
</withPropsOnChange(Typography)>
<withPropsOnChange(Typography)>
Woof
</withPropsOnChange(Typography)>
</div>
`;
exports[`renders with gutterBottom 1`] = `
<div
className="root gutterBottom"
>
<withPropsOnChange(Typography)
className="author"
gutterBottom={true}
>
Marvin
</withPropsOnChange(Typography)>
<withPropsOnChange(Typography)>
Woof
</withPropsOnChange(Typography)>
</div>
`;