UNPKG

stitch-ui

Version:

76 lines (68 loc) 2.59 kB
/* global it, describe, beforeAll, expect */ /* eslint-disable no-underscore-dangle */ import { OrderedMap } from "immutable"; import { testSetup, noConsoleErrorsAllowed } from "../../testutil"; import * as valuesActions from "../actions"; import * as homeActions from "../../home/actions"; global.navigator = { userAgent: "node.js" }; describe("values", () => { noConsoleErrorsAllowed(); let store; let testApp; const valueName = "test-value"; beforeAll(async () => { const testHarness = await testSetup(); store = testHarness.store; testApp = await store.dispatch( homeActions.createApp(testHarness.groupId, "my-test-app") ); }); it("can list values when empty", async () => { await store.dispatch( valuesActions.loadValues(testApp.groupId, testApp._id) ); expect(store.getState().values.values).toEqual(new OrderedMap()); }); let foo = { value: "foo", private: true }; it("can create a value, and see it appear in the list", async () => { await store.dispatch( valuesActions.updateValue(testApp.groupId, testApp._id, valueName, foo) ); await store.dispatch( valuesActions.loadValues(testApp.groupId, testApp._id) ); expect(store.getState().values.values.size).toBe(1); const valueInStore = store.getState().values.values.get("test-value"); expect(valueInStore.valueJson.data).toEqual(foo.value); }); it("can update a value, and see it appear in the list", async () => { foo = { value: { blah: "blorp" }, private: !foo.private }; await store.dispatch( valuesActions.updateValue(testApp.groupId, testApp._id, valueName, foo) ); await store.dispatch( valuesActions.loadValues(testApp.groupId, testApp._id) ); const valueInStore = store.getState().values.values.get("test-value"); expect(valueInStore).toBeDefined(); expect(valueInStore.get("valueJson")).toBeDefined(); expect(valueInStore.get("valueJson").get("data")).toBeDefined(); expect(valueInStore.private).toBe(false); expect(valueInStore.private).toEqual(foo.private); expect(valueInStore.get("valueJson").get("data")).toEqual(foo.value); expect(valueInStore.get("valueJson").get("data")).toEqual({ blah: "blorp" }); }); it("can remove a value", async () => { await store.dispatch( valuesActions.removeValue(testApp.groupId, testApp._id, valueName) ); await store.dispatch( valuesActions.loadValues(testApp.groupId, testApp._id) ); expect(store.getState().values.values).toEqual(new OrderedMap()); }); });