Files
talk/src/core/client/stream/mutations/SetAuthPopupStateMutation.spec.ts
T
Chi Vinh Le fe7b734b2c Add UserBox
2018-08-08 01:04:25 +02:00

53 lines
1.6 KiB
TypeScript

import { Environment, RecordSource } from "relay-runtime";
import { createRelayEnvironment } from "talk-framework/testHelpers";
import { AUTH_POPUP_ID, AUTH_POPUP_TYPE } from "../local";
import { commit } from "./SetAuthPopupStateMutation";
let environment: Environment;
const source: RecordSource = new RecordSource();
beforeAll(() => {
environment = createRelayEnvironment({
source,
initLocalState: (localRecord, sourceProxy) => {
const record = sourceProxy.create(AUTH_POPUP_ID, AUTH_POPUP_TYPE);
record.setValue(false, "open");
record.setValue(false, "focus");
localRecord.setLinkedRecord(record, "authPopup");
},
});
});
it("sets state", () => {
commit(environment, { open: true, focus: false });
expect(source.get(AUTH_POPUP_ID)!.open).toEqual(true);
expect(source.get(AUTH_POPUP_ID)!.focus).toEqual(false);
});
it("sets state", () => {
commit(environment, {
open: false,
focus: true,
href: "https://coralproject.net",
});
expect(source.get(AUTH_POPUP_ID)!.open).toEqual(false);
expect(source.get(AUTH_POPUP_ID)!.focus).toEqual(true);
expect(source.get(AUTH_POPUP_ID)!.href).toEqual("https://coralproject.net");
});
it("keep previous state", () => {
commit(environment, { open: false, focus: true });
commit(environment, {});
expect(source.get(AUTH_POPUP_ID)!.open).toEqual(false);
expect(source.get(AUTH_POPUP_ID)!.focus).toEqual(true);
});
it("change only one", () => {
commit(environment, { open: false, focus: true });
commit(environment, { open: true });
expect(source.get(AUTH_POPUP_ID)!.open).toEqual(true);
expect(source.get(AUTH_POPUP_ID)!.focus).toEqual(true);
});