rescribet/link-lib

View on GitHub
src/__tests__/createStore.spec.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { createStore } from "../createStore";
import { LinkedRenderStore } from "../LinkedRenderStore";
import ex from "../ontology/ex";

describe("createStore", () => {
  it("can be called without arguments", () => {
    const store = createStore();
    expect(store).toBeInstanceOf(LinkedRenderStore);
  });

  it("passes store options", () => {
    const report = jest.fn();

    const store = createStore({
      report,
    });

    expect(store.report).toBe(report);
  });

  it("prefixes the middleware", () => {
    const handler = jest.fn();
    const connector = jest.fn((_) => handler);
    const middleware = jest.fn(() => connector);

    const store = createStore({}, [middleware]);
    expect(middleware).toHaveBeenCalled();

    store.dispatch(ex.ns("a"));
    expect(handler).toHaveBeenCalledWith(ex.ns("a"));
  });

  it("throws on invalid middleware", () => {
    const middlewareHandler = jest.fn();
    const middleware = jest.fn(() => middlewareHandler);

    expect(() => {
      createStore({}, [middleware]);
    }).toThrow();
  });
});