Merge branch 'next' into ui-message

This commit is contained in:
Kim Gardner
2018-09-10 10:54:38 -04:00
committed by GitHub
127 changed files with 4779 additions and 869 deletions
+57
View File
@@ -0,0 +1,57 @@
import { IResolvers } from "graphql-tools";
import React from "react";
import TestRenderer from "react-test-renderer";
import { Environment, RecordProxy, RecordSourceProxy } from "relay-runtime";
import AppContainer from "talk-auth/containers/AppContainer";
import { TalkContext, TalkContextProvider } from "talk-framework/lib/bootstrap";
import { PostMessageService } from "talk-framework/lib/postMessage";
import { RestClient } from "talk-framework/lib/rest";
import { createPromisifiedStorage } from "talk-framework/lib/storage";
import { createUUIDGenerator } from "talk-framework/testHelpers";
import createEnvironment from "./createEnvironment";
import createFluentBundle from "./createFluentBundle";
interface CreateParams {
logNetwork?: boolean;
resolvers?: IResolvers<any, any>;
initLocalState?: (
local: RecordProxy,
source: RecordSourceProxy,
environment: Environment
) => void;
}
export default function create(params: CreateParams) {
const environment = createEnvironment({
// Set this to true, to see graphql responses.
logNetwork: params.logNetwork,
resolvers: params.resolvers,
initLocalState: (localRecord, source, env) => {
localRecord.setValue(0, "authRevision");
if (params.initLocalState) {
params.initLocalState(localRecord, source, env);
}
},
});
const context: TalkContext = {
relayEnvironment: environment,
localeBundles: [createFluentBundle()],
localStorage: createPromisifiedStorage(),
sessionStorage: createPromisifiedStorage(),
rest: new RestClient("http://localhost/api"),
postMessage: new PostMessageService(),
browserInfo: { ios: false },
uuidGenerator: createUUIDGenerator(),
};
const testRenderer = TestRenderer.create(
<TalkContextProvider value={context}>
<AppContainer />
</TalkContextProvider>
);
return { context, testRenderer };
}
+7 -29
View File
@@ -1,38 +1,16 @@
// Enable after this is solved: https://github.com/projectfluent/fluent.js/issues/280
import { ReactTestRenderer } from "react-test-renderer";
import React from "react";
import TestRenderer, { ReactTestRenderer } from "react-test-renderer";
import { RecordProxy } from "relay-runtime";
import AppContainer from "talk-auth/containers/AppContainer";
import { TalkContext, TalkContextProvider } from "talk-framework/lib/bootstrap";
import { PostMessageService } from "talk-framework/lib/postMessage";
import { RestClient } from "talk-framework/lib/rest";
import { createInMemoryStorage } from "talk-framework/lib/storage";
import createEnvironment from "./createEnvironment";
import createFluentBundle from "./createFluentBundle";
import create from "./create";
function createTestRenderer(initialView: string): ReactTestRenderer {
const environment = createEnvironment({
initLocalState: (localRecord: RecordProxy) => {
const { testRenderer } = create({
// Set this to true, to see graphql responses.
logNetwork: false,
initLocalState: localRecord => {
localRecord.setValue(initialView, "view");
},
});
const context: TalkContext = {
relayEnvironment: environment,
localeBundles: [createFluentBundle()],
localStorage: createInMemoryStorage(),
sessionStorage: createInMemoryStorage(),
rest: new RestClient("http://localhost/api"),
postMessage: new PostMessageService(),
};
return TestRenderer.create(
<TalkContextProvider value={context}>
<AppContainer />
</TalkContextProvider>
);
return testRenderer;
}
it("renders sign in form", async () => {
+8 -31
View File
@@ -1,20 +1,10 @@
import React from "react";
import TestRenderer, {
ReactTestInstance,
ReactTestRenderer,
} from "react-test-renderer";
import { RecordProxy } from "relay-runtime";
import { ReactTestInstance, ReactTestRenderer } from "react-test-renderer";
import sinon from "sinon";
import AppContainer from "talk-auth/containers/AppContainer";
import { animationFrame, timeout } from "talk-common/utils";
import { TalkContext, TalkContextProvider } from "talk-framework/lib/bootstrap";
import { PostMessageService } from "talk-framework/lib/postMessage";
import { RestClient } from "talk-framework/lib/rest";
import { createInMemoryStorage } from "talk-framework/lib/storage";
import { TalkContext } from "talk-framework/lib/bootstrap";
import createEnvironment from "./createEnvironment";
import createFluentBundle from "./createFluentBundle";
import create from "./create";
const inputPredicate = (name: string) => (n: ReactTestInstance) => {
return n.props.name === name && n.props.onChange;
@@ -24,26 +14,13 @@ let context: TalkContext;
let testRenderer: ReactTestRenderer;
let form: ReactTestInstance;
beforeEach(() => {
const environment = createEnvironment({
initLocalState: (localRecord: RecordProxy) => {
({ testRenderer, context } = create({
// Set this to true, to see graphql responses.
logNetwork: false,
initLocalState: localRecord => {
localRecord.setValue("SIGN_IN", "view");
},
});
context = {
relayEnvironment: environment,
localeBundles: [createFluentBundle()],
localStorage: createInMemoryStorage(),
sessionStorage: createInMemoryStorage(),
rest: new RestClient("http://localhost/api"),
postMessage: new PostMessageService(),
};
testRenderer = TestRenderer.create(
<TalkContextProvider value={context}>
<AppContainer />
</TalkContextProvider>
);
}));
form = testRenderer.root.findByType("form");
});
+8 -32
View File
@@ -1,20 +1,10 @@
import React from "react";
import TestRenderer, {
ReactTestInstance,
ReactTestRenderer,
} from "react-test-renderer";
import { RecordProxy } from "relay-runtime";
import { ReactTestInstance, ReactTestRenderer } from "react-test-renderer";
import sinon from "sinon";
import AppContainer from "talk-auth/containers/AppContainer";
import { animationFrame, timeout } from "talk-common/utils";
import { TalkContext, TalkContextProvider } from "talk-framework/lib/bootstrap";
import { PostMessageService } from "talk-framework/lib/postMessage";
import { RestClient } from "talk-framework/lib/rest";
import { createInMemoryStorage } from "talk-framework/lib/storage";
import { TalkContext } from "talk-framework/lib/bootstrap";
import createEnvironment from "./createEnvironment";
import createFluentBundle from "./createFluentBundle";
import create from "./create";
const inputPredicate = (name: string) => (n: ReactTestInstance) => {
return n.props.name === name && n.props.onChange;
@@ -24,27 +14,13 @@ let context: TalkContext;
let testRenderer: ReactTestRenderer;
let form: ReactTestInstance;
beforeEach(() => {
const environment = createEnvironment({
initLocalState: (localRecord: RecordProxy) => {
({ testRenderer, context } = create({
// Set this to true, to see graphql responses.
logNetwork: false,
initLocalState: localRecord => {
localRecord.setValue("SIGN_UP", "view");
},
});
context = {
relayEnvironment: environment,
localeBundles: [createFluentBundle()],
localStorage: createInMemoryStorage(),
sessionStorage: createInMemoryStorage(),
rest: new RestClient("http://localhost/api"),
postMessage: new PostMessageService(),
};
testRenderer = TestRenderer.create(
<TalkContextProvider value={context}>
<AppContainer />
</TalkContextProvider>
);
}));
form = testRenderer.root.findByType("form");
});