/*
* Copyright (c) 2015 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
*/
import React from 'react';
import { fireEvent, screen } from '@testing-library/react';
import render from '../../test/testrenderer';
import { getAppSpecificStore as store } from '../utils/persistentStore';
import FactoryResetButton from './FactoryResetButton';
const FACTORY_RESET = 'Factory reset';
const OK = 'Restore';
const CANCEL = 'Cancel';
describe('FactoryReset', () => {
afterEach(() => {
jest.resetAllMocks();
});
it('clears the store', async () => {
render();
fireEvent.click(screen.getByText(FACTORY_RESET));
await screen.findByText(OK);
fireEvent.click(screen.getByText(OK));
expect(store().clear).toHaveBeenCalled();
});
it('does not clear the store when cancelled', async () => {
render();
fireEvent.click(screen.getByText(FACTORY_RESET));
await screen.findByText(CANCEL);
fireEvent.click(screen.getByText(CANCEL));
expect(store().clear).not.toHaveBeenCalled();
});
it('allows overriding the reset function', async () => {
const overrideResetFn = jest.fn();
render(
,
);
fireEvent.click(screen.getByText(FACTORY_RESET));
await screen.findByText(OK);
fireEvent.click(screen.getByText(OK));
expect(overrideResetFn).toHaveBeenCalled();
});
});