@applicaster/zapp-react-native-ui-components
Version:
Applicaster Zapp React Native ui components for the Quick Brick App
89 lines (68 loc) • 2.26 kB
text/typescript
import { findParent } from "../ZappPipesEntryContext";
describe("findParent", () => {
it("returns null when calling from a root screen", () => {
const route = "/river/A1234";
const result = findParent({}, route);
expect(result).toEqual(null);
});
it("returns the parent of a connected screen", () => {
const route = "/river/A1234/river/B5678";
const homeRiverEntry = {
data: { id: "entry_id_1" },
route: "/river/A1234",
id: "A1234",
};
const context = {
"/river/A1234": homeRiverEntry,
};
const result = findParent(context, route);
expect(result).toEqual(homeRiverEntry);
});
it("returns the correct parent when the previous screen is a screen picker", () => {
const route = "/river/A1234/river/B5678/yarn";
const homeRiverEntry = {
data: { id: "entry_id_1" },
route: "/river/A1234",
id: "A1234",
};
const pickerEntry = {
data: { id: "picker_entry_1", parent: homeRiverEntry.data },
route: "/river/A1234/river/B5678",
id: "B5678",
parentId: homeRiverEntry.id,
};
const pickerContainerEntry = {
data: { id: "picker_container_entry_1", parent: pickerEntry.data },
route: "/river/A1234/river/B5678/picker/ABC",
id: "picker_ABC",
parentId: pickerEntry.id,
};
const context = {
[homeRiverEntry.route]: homeRiverEntry,
[pickerEntry.route]: pickerEntry,
[pickerContainerEntry.route]: pickerContainerEntry,
};
const result = findParent(context, route, true);
expect(result).toEqual(pickerContainerEntry);
});
it("returns the correct parent when coming back from a previous screen", () => {
const route = "/river/A1234/river/B5678";
const homeRiverEntry = {
data: { id: "show_1" },
route: "/river/A1234",
id: "A1234",
};
const show = {
data: { id: "episode_1", parent: homeRiverEntry.data },
route: "/river/A1234/river/B5678",
id: "B5678",
parentId: homeRiverEntry.id,
};
const context = {
[homeRiverEntry.route]: homeRiverEntry,
[show.route]: show,
};
const result = findParent(context, route, false);
expect(result).toEqual(homeRiverEntry);
});
});