summaryrefslogtreecommitdiff
path: root/spec/frontend/vue_merge_request_widget/components/widget/widget_spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/vue_merge_request_widget/components/widget/widget_spec.js')
-rw-r--r--spec/frontend/vue_merge_request_widget/components/widget/widget_spec.js20
1 files changed, 17 insertions, 3 deletions
diff --git a/spec/frontend/vue_merge_request_widget/components/widget/widget_spec.js b/spec/frontend/vue_merge_request_widget/components/widget/widget_spec.js
index 4c93c88de16..7e941c5ceaa 100644
--- a/spec/frontend/vue_merge_request_widget/components/widget/widget_spec.js
+++ b/spec/frontend/vue_merge_request_widget/components/widget/widget_spec.js
@@ -1,6 +1,6 @@
import { nextTick } from 'vue';
import * as Sentry from '@sentry/browser';
-import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
+import { shallowMountExtended, mountExtended } from 'helpers/vue_test_utils_helper';
import HelpPopover from '~/vue_shared/components/help_popover.vue';
import waitForPromises from 'helpers/wait_for_promises';
import StatusIcon from '~/vue_merge_request_widget/components/extensions/status_icon.vue';
@@ -26,8 +26,8 @@ describe('~/vue_merge_request_widget/components/widget/widget.vue', () => {
const findHelpPopover = () => wrapper.findComponent(HelpPopover);
const findDynamicScroller = () => wrapper.findByTestId('dynamic-content-scroller');
- const createComponent = ({ propsData, slots } = {}) => {
- wrapper = shallowMountExtended(Widget, {
+ const createComponent = ({ propsData, slots, mountFn = shallowMountExtended } = {}) => {
+ wrapper = mountFn(Widget, {
propsData: {
isCollapsible: false,
loadingText: 'Loading widget',
@@ -73,6 +73,13 @@ describe('~/vue_merge_request_widget/components/widget/widget.vue', () => {
expect(findStatusIcon().props()).toMatchObject({ iconName: 'failed', isLoading: false });
});
+ it('displays the error text when :has-error is true', () => {
+ createComponent({
+ propsData: { hasError: true, errorText: 'API error' },
+ });
+ expect(wrapper.findByText('API error').exists()).toBe(true);
+ });
+
it('displays loading icon until request is made and then displays status icon when the request is complete', async () => {
const fetchCollapsedData = jest
.fn()
@@ -425,6 +432,7 @@ describe('~/vue_merge_request_widget/components/widget/widget.vue', () => {
beforeEach(() => {
createComponent({
+ mountFn: mountExtended,
propsData: {
isCollapsible: true,
content,
@@ -437,5 +445,11 @@ describe('~/vue_merge_request_widget/components/widget/widget.vue', () => {
await waitForPromises();
expect(findDynamicScroller().props('items')).toEqual(content);
});
+
+ it('renders the dynamic content inside the dynamic scroller', async () => {
+ findToggleButton().vm.$emit('click');
+ await waitForPromises();
+ expect(wrapper.findByText('Main text for the row').exists()).toBe(true);
+ });
});
});