UNPKG

react-native-timer-picker

Version:

A simple, flexible, performant duration picker for React Native apps 🔥 Great for timers, alarms and duration inputs ⏰🕰️⏳ Includes iOS-style haptic and audio feedback 🍏

73 lines (72 loc) 3.34 kB
"use strict"; var _react = _interopRequireDefault(require("react")); var _reactNative = require("@testing-library/react-native"); var _TimerPickerModal = _interopRequireDefault(require("../components/TimerPickerModal")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } describe("TimerPickerModal", () => { const mockOnConfirm = jest.fn(); const mockOnCancel = jest.fn(); const defaultProps = { visible: true, setIsVisible: jest.fn(), onConfirm: mockOnConfirm, onCancel: mockOnCancel }; it("renders without crashing", () => { const { getByTestId } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, defaultProps)); const component = getByTestId("timer-picker-modal"); expect(component).toBeDefined(); }); it("calls onConfirm when Confirm button is pressed", () => { const { getByText } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, defaultProps)); const confirmButton = getByText("Confirm"); _reactNative.fireEvent.press(confirmButton); expect(mockOnConfirm).toHaveBeenCalled(); }); it("calls onCancel when Cancel button is pressed", () => { const { getByText } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, defaultProps)); const cancelButton = getByText("Cancel"); _reactNative.fireEvent.press(cancelButton); expect(mockOnCancel).toHaveBeenCalled(); }); it("hides the modal when Cancel button is pressed", () => { const setIsVisibleMock = jest.fn(); const { getByText } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, { setIsVisible: setIsVisibleMock }))); const cancelButton = getByText("Cancel"); _reactNative.fireEvent.press(cancelButton); expect(setIsVisibleMock).toHaveBeenCalledWith(false); }); it("hides the modal when overlay is pressed", () => { const setIsVisibleMock = jest.fn(); const { getByTestId } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, { closeOnOverlayPress: true, setIsVisible: setIsVisibleMock }))); const overlay = getByTestId("modal-backdrop"); _reactNative.fireEvent.press(overlay); expect(setIsVisibleMock).toHaveBeenCalledWith(false); }); it("calls onConfirm with selected duration when Confirm button is pressed", () => { const { getByText } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, defaultProps)); // Select duration in TimerPicker, assuming its interaction is tested separately const confirmButton = getByText("Confirm"); _reactNative.fireEvent.press(confirmButton); expect(mockOnConfirm).toHaveBeenCalledWith(expect.objectContaining({})); }); }); //# sourceMappingURL=TimerPickerModal.test.js.map