mirror of
https://github.com/wassname/talk.git
synced 2026-07-13 17:45:56 +08:00
74 lines
1.7 KiB
TypeScript
74 lines
1.7 KiB
TypeScript
import { ReactTestRenderer } from "react-test-renderer";
|
|
import sinon from "sinon";
|
|
|
|
import { timeout } from "talk-common/utils";
|
|
import { createSinonStub } from "talk-framework/testHelpers";
|
|
|
|
import create from "./create";
|
|
import { assets, comments } from "./fixtures";
|
|
|
|
let testRenderer: ReactTestRenderer;
|
|
beforeEach(() => {
|
|
const commentStub = {
|
|
...comments[0],
|
|
};
|
|
|
|
const assetStub = {
|
|
...assets[0],
|
|
comments: {
|
|
pageInfo: {
|
|
hasNextPage: false,
|
|
},
|
|
edges: [
|
|
{
|
|
node: commentStub,
|
|
cursor: commentStub.createdAt,
|
|
},
|
|
],
|
|
},
|
|
};
|
|
|
|
const resolvers = {
|
|
Query: {
|
|
comment: createSinonStub(
|
|
s => s.throws(),
|
|
s => s.withArgs(undefined, { id: commentStub.id }).returns(commentStub)
|
|
),
|
|
asset: createSinonStub(
|
|
s => s.throws(),
|
|
s => s.withArgs(undefined, { id: assetStub.id }).returns(assetStub)
|
|
),
|
|
},
|
|
};
|
|
|
|
({ testRenderer } = create({
|
|
// Set this to true, to see graphql responses.
|
|
logNetwork: false,
|
|
resolvers,
|
|
initLocalState: localRecord => {
|
|
localRecord.setValue(assetStub.id, "assetID");
|
|
localRecord.setValue(commentStub.id, "commentID");
|
|
},
|
|
}));
|
|
});
|
|
|
|
it("renders permalink view", async () => {
|
|
// Wait for loading.
|
|
await timeout();
|
|
expect(testRenderer.toJSON()).toMatchSnapshot();
|
|
});
|
|
|
|
it("show all comments", async () => {
|
|
const mockEvent = {
|
|
preventDefault: sinon.mock().once(),
|
|
};
|
|
testRenderer.root
|
|
.findByProps({
|
|
id: "talk-comments-permalinkView-showAllComments",
|
|
})
|
|
.props.onClick(mockEvent);
|
|
await timeout();
|
|
expect(testRenderer.toJSON()).toMatchSnapshot();
|
|
mockEvent.preventDefault.verify();
|
|
});
|