mirror of
https://github.com/wassname/talk.git
synced 2026-07-08 21:04:24 +08:00
53 lines
1.6 KiB
TypeScript
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);
|
|
});
|