box-ui-elements
Version:
Box UI Elements
82 lines • 2.65 kB
JavaScript
import { expect, screen, userEvent, waitFor, within } from 'storybook/test';
import { ContentSharingV2Template, mockApiWithCollaborators, mockApiWithSharedLink, mockApiWithoutSharedLink } from '../../utils/__mocks__/ContentSharingV2Mocks';
export const withModernization = {
args: {
api: mockApiWithoutSharedLink,
enableModernizedComponents: true
},
play: async ({
canvasElement
}) => {
const canvas = within(canvasElement);
const button = await canvas.findByRole('button', {
name: 'Open Unified Share Modal'
});
expect(button).toBeInTheDocument();
await userEvent.click(button);
expect(screen.getByRole('heading', {
name: 'Share ‘Box Development Guide.pdf’'
})).toBeVisible();
expect(screen.getByRole('combobox', {
name: 'Invite People'
})).toBeVisible();
expect(screen.getByRole('switch', {
name: 'Shared link'
})).toBeVisible();
}
};
export const withSharedLink = {
args: {
api: mockApiWithSharedLink
},
play: async context => {
await withModernization.play(context);
expect(screen.getByLabelText('Shared link URL')).toBeVisible();
expect(screen.getByRole('button', {
name: 'Link Settings'
})).toBeVisible();
const peopleWithTheLinkButton = screen.getByRole('button', {
name: 'People with the link'
});
expect(peopleWithTheLinkButton).toBeVisible();
expect(screen.getByRole('button', {
name: 'Can view and download'
})).toBeVisible();
await userEvent.click(peopleWithTheLinkButton);
expect(screen.getByRole('menuitemcheckbox', {
name: /Invited people only/
})).toHaveAttribute('aria-disabled', 'true');
}
};
export const withCollaborators = {
args: {
api: mockApiWithCollaborators
},
play: async context => {
await withModernization.play(context);
await waitFor(async () => {
const sharedWithAvatars = screen.getByRole('button', {
name: 'Shared with D R D'
});
expect(sharedWithAvatars).toBeVisible();
await userEvent.click(sharedWithAvatars);
expect(screen.getByRole('link', {
name: 'Manage All'
})).toBeVisible();
expect(screen.getByRole('grid', {
name: 'Collaborators'
})).toBeVisible();
expect(screen.getByRole('row', {
name: /Detective Parrot/
})).toBeVisible();
expect(screen.getByRole('button', {
name: 'Done'
})).toBeVisible();
});
}
};
export default {
title: 'Elements/ContentSharingV2/tests/visual-regression-tests',
component: ContentSharingV2Template
};
//# sourceMappingURL=ContentSharingV2-visual.stories.js.map