import React from 'react';
import { screen, fireEvent } from '@testing-library/react';
import { renderInAppContext } from '@theorchard/suite-testing';
import { CopyButton, CopyButtonProps } from '../copy-button';

describe('<CopyButton />', () => {
    const content = 'text to copy';

    const render = (props: CopyButtonProps) =>
        renderInAppContext(<CopyButton {...props} />);

    beforeEach(() => {
        Object.assign(navigator, {
            clipboard: { writeText: jest.fn().mockResolvedValue(undefined) },
        });
    });

    it('calls navigator.clipboard.writeText with content when clicked', () => {
        render({ content });
        fireEvent.click(screen.getByRole('button'));

        expect(navigator.clipboard.writeText).toHaveBeenCalledWith(content);
    });
});
