summaryrefslogtreecommitdiff
path: root/spec/frontend/issues/show/components/incidents/timeline_events_item_spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/issues/show/components/incidents/timeline_events_item_spec.js')
-rw-r--r--spec/frontend/issues/show/components/incidents/timeline_events_item_spec.js39
1 files changed, 28 insertions, 11 deletions
diff --git a/spec/frontend/issues/show/components/incidents/timeline_events_item_spec.js b/spec/frontend/issues/show/components/incidents/timeline_events_item_spec.js
index ba0527e5395..24653a23036 100644
--- a/spec/frontend/issues/show/components/incidents/timeline_events_item_spec.js
+++ b/spec/frontend/issues/show/components/incidents/timeline_events_item_spec.js
@@ -9,8 +9,8 @@ import { mockEvents } from './mock_data';
describe('IncidentTimelineEventList', () => {
let wrapper;
- const mountComponent = ({ propsData, provide } = {}) => {
- const { action, noteHtml, occurredAt } = mockEvents[0];
+ const mountComponent = ({ propsData, provide, mockEvent = mockEvents[0] } = {}) => {
+ const { action, noteHtml, occurredAt } = mockEvent;
wrapper = mountExtended(IncidentTimelineEventItem, {
propsData: {
action,
@@ -27,9 +27,10 @@ describe('IncidentTimelineEventList', () => {
const findCommentIcon = () => wrapper.findComponent(GlIcon);
const findEventTime = () => wrapper.findByTestId('event-time');
- const findEventTag = () => wrapper.findComponent(GlBadge);
+ const findEventTags = () => wrapper.findAllComponents(GlBadge);
const findDropdown = () => wrapper.findComponent(GlDropdown);
const findDeleteButton = () => wrapper.findByText(timelineItemI18n.delete);
+ const findEditButton = () => wrapper.findByText(timelineItemI18n.edit);
describe('template', () => {
beforeEach(() => {
@@ -69,15 +70,16 @@ describe('IncidentTimelineEventList', () => {
});
});
- describe('timeline event tag', () => {
- it('does not show when tag is not provided', () => {
- expect(findEventTag().exists()).toBe(false);
- });
-
- it('shows when tag is provided', () => {
- mountComponent({ propsData: { eventTag: 'Start time' } });
+ describe.each([
+ { eventTags: [], expected: 0 },
+ { eventTags: ['Start time'], expected: 1 },
+ { eventTags: ['Start time', 'End time'], expected: 2 },
+ ])('timeline event tags', ({ eventTags, expected }) => {
+ it(`shows ${expected} badges when ${expected} tags are provided`, () => {
+ mountComponent({ propsData: { eventTags } });
- expect(findEventTag().exists()).toBe(true);
+ expect(findEventTags().exists()).toBe(Boolean(expected));
+ expect(findEventTags().length).toBe(eventTags.length);
});
});
@@ -87,6 +89,21 @@ describe('IncidentTimelineEventList', () => {
expect(findDeleteButton().exists()).toBe(false);
});
+ it('does not show edit item when event was system generated', () => {
+ const systemGeneratedMockEvent = {
+ ...mockEvents[0],
+ action: 'status',
+ };
+
+ mountComponent({
+ provide: { canUpdateTimelineEvent: true },
+ mockEvent: systemGeneratedMockEvent,
+ });
+
+ expect(findDropdown().exists()).toBe(true);
+ expect(findEditButton().exists()).toBe(false);
+ });
+
it('shows dropdown and delete item when user has update permission', () => {
mountComponent({ provide: { canUpdateTimelineEvent: true } });