import React from "react"; import TestRenderer, { ReactTestRenderer } from "react-test-renderer"; import { RecordProxy } from "relay-runtime"; import sinon from "sinon"; import { 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 AppContainer from "talk-stream/containers/AppContainer"; import createEnvironment from "./createEnvironment"; import createNodeMock from "./createNodeMock"; import { assets } from "./fixtures"; let testRenderer: ReactTestRenderer; beforeEach(() => { const resolvers = { Query: { asset: sinon .stub() .throws() .withArgs(undefined, { id: assets[0].id }) .returns(assets[0]), }, }; const environment = createEnvironment({ // Set this to true, to see graphql responses. logNetwork: false, resolvers, initLocalState: (localRecord: RecordProxy) => { localRecord.setValue(assets[0].id, "assetID"); localRecord.setValue(0, "authRevision"); }, }); const context: TalkContext = { relayEnvironment: environment, localeBundles: [], localStorage: createInMemoryStorage(), sessionStorage: createInMemoryStorage(), rest: new RestClient("http://localhost/api"), postMessage: new PostMessageService(), }; testRenderer = TestRenderer.create( , { createNodeMock } ); }); it("renders comment stream", async () => { // Wait for loading. await timeout(); expect(testRenderer.toJSON()).toMatchSnapshot(); });