@applicaster/zapp-react-native-utils
Version:
Applicaster Zapp React Native utilities package
55 lines (45 loc) • 1.94 kB
text/typescript
import { getPlayerActionButtons } from "../getPlayerActionButtons";
import { selectActionButtons } from "../../conf/player/selectors";
jest.mock("../../conf/player/selectors", () => ({
selectActionButtons: jest.fn(),
}));
describe("getPlayerActionButtons", () => {
afterEach(() => {
jest.clearAllMocks();
});
it("returns an empty array if selectActionButtons returns undefined", () => {
(selectActionButtons as jest.Mock).mockReturnValue(undefined);
const result = getPlayerActionButtons({});
expect(result).toEqual([]);
});
it("returns an empty array if selectActionButtons returns null", () => {
(selectActionButtons as jest.Mock).mockReturnValue(null);
const result = getPlayerActionButtons({});
expect(result).toEqual([]);
});
it("returns an empty array if selectActionButtons returns empty string", () => {
(selectActionButtons as jest.Mock).mockReturnValue("");
const result = getPlayerActionButtons({});
expect(result).toEqual([]);
});
it("returns the first two trimmed action buttons", () => {
(selectActionButtons as jest.Mock).mockReturnValue(" play , pause , stop ");
const result = getPlayerActionButtons({});
expect(result).toEqual(["play", "pause"]);
});
it("returns only one button if only one is present", () => {
(selectActionButtons as jest.Mock).mockReturnValue(" play ");
const result = getPlayerActionButtons({});
expect(result).toEqual(["play"]);
});
it("trims whitespace from button names", () => {
(selectActionButtons as jest.Mock).mockReturnValue(" play , pause ");
const result = getPlayerActionButtons({});
expect(result).toEqual(["play", "pause"]);
});
it("returns an empty array if selectActionButtons returns only commas", () => {
(selectActionButtons as jest.Mock).mockReturnValue(" , , ");
const result = getPlayerActionButtons({});
expect(result).toEqual(["", ""]);
});
});