import { mapContentTypesToRivers } from "../index"; describe("mapContentTypesToRivers", () => { it("should return the correct content types mapped to rivers", () => { const state = { rivers: { "river-1": { plugin_type: "river", }, }, contentTypes: { "content-type-1": { screen_id: "river-1", }, }, }; const result = mapContentTypesToRivers(state); expect(result).toEqual({ "content-type-1": { screenType: "river", screen_id: "river-1", }, }); }); it("should return null if contentTypes is undefined", () => { const state = { rivers: { "river-1": { plugin_type: "river", }, }, // contentTypes is missing }; const result = mapContentTypesToRivers(state); expect(result).toBeNull(); }); it("should skip content types whose screen does not exist in rivers", () => { const state = { rivers: { "river-1": { plugin_type: "river", }, }, contentTypes: { "content-type-1": { screen_id: "river-1", }, "content-type-2": { screen_id: "river-2", // river-2 does not exist }, }, }; const result = mapContentTypesToRivers(state); expect(result).toEqual({ "content-type-1": { screenType: "river", screen_id: "river-1", }, }); // result is not null, but may be undefined for missing keys expect(result && result["content-type-2"]).toBeUndefined(); }); it("should use 'type' if 'plugin_type' is not present in river", () => { const state = { rivers: { "river-1": { type: "custom-type", }, }, contentTypes: { "content-type-1": { screen_id: "river-1", }, }, }; const result = mapContentTypesToRivers(state); expect(result).toEqual({ "content-type-1": { screenType: "custom-type", screen_id: "river-1", }, }); }); it("should skip content types if neither plugin_type nor type is present in river", () => { const state = { rivers: { "river-1": { // no plugin_type or type }, }, contentTypes: { "content-type-1": { screen_id: "river-1", }, }, }; const result = mapContentTypesToRivers(state); expect(result).toEqual({}); }); it("should handle empty contentTypes object", () => { const state = { rivers: { "river-1": { plugin_type: "river", }, }, contentTypes: {}, }; const result = mapContentTypesToRivers(state); expect(result).toEqual({}); }); });