Skip to content

Commit

Permalink
Test snapshot action menu disabled prop
Browse files Browse the repository at this point in the history
  • Loading branch information
sam-schu committed Sep 30, 2024
1 parent 2892341 commit 3a4fdea
Showing 1 changed file with 18 additions and 1 deletion.
19 changes: 18 additions & 1 deletion src/workflows/SnapshotActionMenu.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,18 @@ import SnapshotActionMenu from 'src/workflows/SnapshotActionMenu';
const mockOnDelete = jest.fn();

describe('snapshot action menu', () => {
it('honors the disabled prop', async () => {
// Act
await act(async () => {
render(<SnapshotActionMenu disabled isSnapshotOwner onDelete={mockOnDelete} />);
});

// Assert
const snapshotActionMenu = screen.getByRole('button', { name: 'Snapshot action menu' });

expect(snapshotActionMenu).toHaveAttribute('disabled');
expect(snapshotActionMenu).toHaveAttribute('aria-disabled');
});
it('renders and enables the menu buttons if you are the snapshot owner', async () => {
// Arrange
const user: UserEvent = userEvent.setup();
Expand All @@ -16,13 +28,18 @@ describe('snapshot action menu', () => {
render(<SnapshotActionMenu isSnapshotOwner onDelete={mockOnDelete} />);
});

await user.click(screen.getByRole('button', { name: 'Snapshot action menu' }));
const snapshotActionMenu = screen.getByRole('button', { name: 'Snapshot action menu' });

await user.click(snapshotActionMenu);

const deleteSnapshotButton = screen.getByRole('button', { name: 'Delete snapshot' });

await user.pointer({ target: deleteSnapshotButton });

// Assert
expect(snapshotActionMenu).not.toHaveAttribute('disabled');
expect(snapshotActionMenu).toHaveAttribute('aria-disabled', 'false');

expect(deleteSnapshotButton).toBeInTheDocument();
expect(deleteSnapshotButton).toHaveAttribute('aria-disabled', 'false');
expect(screen.queryByRole('tooltip')).not.toBeInTheDocument();
Expand Down

0 comments on commit 3a4fdea

Please sign in to comment.