mirror of
https://github.com/bellingcat/ukraine-timemap.git
synced 2026-06-08 03:18:36 +03:00
unit test
This commit is contained in:
@@ -573,7 +573,7 @@ function mapStateToProps(state) {
|
||||
},
|
||||
},
|
||||
ui: {
|
||||
tiles: state.ui.tiles.current,
|
||||
tiles: selectors.getTiles(state),
|
||||
dom: state.ui.dom,
|
||||
narratives: state.ui.style.narratives,
|
||||
mapSelectedEvents: state.ui.style.selectedEvents,
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
import React from "react";
|
||||
import { fireEvent, render, screen } from "@testing-library/react";
|
||||
import SatelliteOverlayToggle from "../SatelliteOverlayToggle";
|
||||
import "@testing-library/jest-dom";
|
||||
|
||||
describe("<SatelliteOverlayToggle />", () => {
|
||||
it("disables the currently selected default option", () => {
|
||||
render(
|
||||
<SatelliteOverlayToggle reset={jest.fn()} switchToSatellite={jest.fn()} />
|
||||
);
|
||||
expect(
|
||||
screen.getByRole("button", { name: /satellite/i })
|
||||
).not.toBeDisabled();
|
||||
expect(screen.getByRole("button", { name: /default/i })).toBeDisabled();
|
||||
});
|
||||
|
||||
it("disables the currently selected satellite option", () => {
|
||||
render(
|
||||
<SatelliteOverlayToggle
|
||||
isUsingSatellite
|
||||
reset={jest.fn()}
|
||||
switchToSatellite={jest.fn()}
|
||||
/>
|
||||
);
|
||||
expect(screen.getByRole("button", { name: /satellite/i })).toBeDisabled();
|
||||
expect(screen.getByRole("button", { name: /default/i })).not.toBeDisabled();
|
||||
});
|
||||
|
||||
it("calls the reset function when switching to the default overlay", () => {
|
||||
const mockReset = jest.fn();
|
||||
const mockSat = jest.fn();
|
||||
render(
|
||||
<SatelliteOverlayToggle
|
||||
isUsingSatellite
|
||||
reset={mockReset}
|
||||
switchToSatellite={mockSat}
|
||||
/>
|
||||
);
|
||||
const btn = screen.getByRole("button", { name: /default/i });
|
||||
fireEvent.click(btn);
|
||||
expect(mockReset).toHaveBeenCalledTimes(1);
|
||||
expect(mockSat).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it("calls the switchToSatellite function when switching to the satellite overlay", () => {
|
||||
const mockReset = jest.fn();
|
||||
const mockSat = jest.fn();
|
||||
render(
|
||||
<SatelliteOverlayToggle reset={mockReset} switchToSatellite={mockSat} />
|
||||
);
|
||||
const btn = screen.getByRole("button", { name: /satellite/i });
|
||||
fireEvent.click(btn);
|
||||
expect(mockSat).toHaveBeenCalledTimes(1);
|
||||
expect(mockReset).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
23
src/reducers/__tests__/ui.spec.js
Normal file
23
src/reducers/__tests__/ui.spec.js
Normal file
@@ -0,0 +1,23 @@
|
||||
import { useSatelliteTilesOverlay, resetTilesOverlay } from "../../actions";
|
||||
import initial from "../../store/initial.js";
|
||||
import ui from "../ui";
|
||||
|
||||
describe("UI reducer", () => {
|
||||
it("can change the tiling", () => {
|
||||
const result = ui(initial.ui, useSatelliteTilesOverlay());
|
||||
expect(result.tiles.current).toEqual("satellite");
|
||||
expect(result.tiles.default).toEqual(initial.ui.tiles.default);
|
||||
});
|
||||
|
||||
it("can revert to the default tiling", () => {
|
||||
const result = ui(
|
||||
{
|
||||
...initial.ui,
|
||||
tiles: { default: "some default", current: "something else" },
|
||||
},
|
||||
resetTilesOverlay()
|
||||
);
|
||||
expect(result.tiles.current).toEqual("some default");
|
||||
expect(result.tiles.default).toEqual("some default");
|
||||
});
|
||||
});
|
||||
@@ -39,6 +39,7 @@ export const getTimelineDimensions = (state) => state.app.timeline.dimensions;
|
||||
export const selectNarrative = (state) => state.app.associations.narrative;
|
||||
export const getFeatures = (state) => state.features;
|
||||
export const getEventRadius = (state) => state.ui.eventRadius;
|
||||
export const getTiles = (state) => state.ui.tiles.current;
|
||||
|
||||
export const selectSites = createSelector(
|
||||
[getSites, getFeatures],
|
||||
|
||||
Reference in New Issue
Block a user