Skip to content
代码片段 群组 项目
未验证 提交 9939f9c0 编辑于 作者: Chaoyue Zhao's avatar Chaoyue Zhao 提交者: GitLab
浏览文件

Add a loading state for branch rule query

Changelog: fixed
上级 0abaf125
No related branches found
No related tags found
无相关合并请求
...@@ -166,6 +166,7 @@ export default { ...@@ -166,6 +166,7 @@ export default {
icon="branch" icon="branch"
:count="branchRules.length" :count="branchRules.length"
class="gl-mb-5" class="gl-mb-5"
:is-loading="$apollo.queries.branchRules.loading"
> >
<template #actions> <template #actions>
<gl-disclosure-dropdown <gl-disclosure-dropdown
......
...@@ -314,7 +314,6 @@ spec/frontend/projects/components/new_edit_form_spec.js ...@@ -314,7 +314,6 @@ spec/frontend/projects/components/new_edit_form_spec.js
spec/frontend/projects/new/components/new_project_url_select_spec.js spec/frontend/projects/new/components/new_project_url_select_spec.js
spec/frontend/projects/report_abuse/components/report_abuse_dropdown_item_spec.js spec/frontend/projects/report_abuse/components/report_abuse_dropdown_item_spec.js
spec/frontend/projects/settings/components/branch_rule_modal_spec.js spec/frontend/projects/settings/components/branch_rule_modal_spec.js
spec/frontend/projects/settings/repository/branch_rules/app_spec.js
spec/frontend/projects/settings/topics/components/topics_token_selector_spec.js spec/frontend/projects/settings/topics/components/topics_token_selector_spec.js
spec/frontend/projects/settings_service_desk/components/custom_email_form_spec.js spec/frontend/projects/settings_service_desk/components/custom_email_form_spec.js
spec/frontend/projects/settings_service_desk/components/service_desk_root_spec.js spec/frontend/projects/settings_service_desk/components/service_desk_root_spec.js
......
...@@ -7,6 +7,7 @@ import createMockApollo from 'helpers/mock_apollo_helper'; ...@@ -7,6 +7,7 @@ import createMockApollo from 'helpers/mock_apollo_helper';
import waitForPromises from 'helpers/wait_for_promises'; import waitForPromises from 'helpers/wait_for_promises';
import { mountExtended } from 'helpers/vue_test_utils_helper'; import { mountExtended } from 'helpers/vue_test_utils_helper';
import { useMockInternalEventsTracking } from 'helpers/tracking_internal_events_helper'; import { useMockInternalEventsTracking } from 'helpers/tracking_internal_events_helper';
import CrudComponent from '~/vue_shared/components/crud_component.vue';
import BranchRules from '~/projects/settings/repository/branch_rules/app.vue'; import BranchRules from '~/projects/settings/repository/branch_rules/app.vue';
import BranchRule from '~/projects/settings/repository/branch_rules/components/branch_rule.vue'; import BranchRule from '~/projects/settings/repository/branch_rules/components/branch_rule.vue';
import branchRulesQuery from 'ee_else_ce/projects/settings/repository/branch_rules/graphql/queries/branch_rules.query.graphql'; import branchRulesQuery from 'ee_else_ce/projects/settings/repository/branch_rules/graphql/queries/branch_rules.query.graphql';
...@@ -84,10 +85,11 @@ describe('Branch rules app', () => { ...@@ -84,10 +85,11 @@ describe('Branch rules app', () => {
const findModal = () => wrapper.findComponent(GlModal); const findModal = () => wrapper.findComponent(GlModal);
const findAddBranchRuleDropdown = () => wrapper.findComponent(GlDisclosureDropdown); const findAddBranchRuleDropdown = () => wrapper.findComponent(GlDisclosureDropdown);
const findCreateBranchRuleListbox = () => wrapper.findComponent(GlCollapsibleListbox); const findCreateBranchRuleListbox = () => wrapper.findComponent(GlCollapsibleListbox);
const findCrudComponent = () => wrapper.findComponent(CrudComponent);
beforeEach(() => { beforeEach(async () => {
setWindowLocation(TEST_HOST); setWindowLocation(TEST_HOST);
createComponent(); await createComponent();
}); });
it('renders branch rules', async () => { it('renders branch rules', async () => {
...@@ -111,6 +113,13 @@ describe('Branch rules app', () => { ...@@ -111,6 +113,13 @@ describe('Branch rules app', () => {
expect(createAlert).toHaveBeenCalledWith({ message: I18N.queryError }); expect(createAlert).toHaveBeenCalledWith({ message: I18N.queryError });
}); });
it('displays a loading state if branch rules query is pending', async () => {
createComponent({ queryHandler: jest.fn() });
expect(findCrudComponent().props('isLoading')).toBe(true);
await waitForPromises();
expect(findCrudComponent().props('isLoading')).toBe(false);
});
it('displays an empty state if no branch rules are present', async () => { it('displays an empty state if no branch rules are present', async () => {
await createComponent({ queryHandler: jest.fn().mockRejectedValue() }); await createComponent({ queryHandler: jest.fn().mockRejectedValue() });
expect(findEmptyState().text()).toBe(I18N.emptyState); expect(findEmptyState().text()).toBe(I18N.emptyState);
...@@ -157,7 +166,9 @@ describe('Branch rules app', () => { ...@@ -157,7 +166,9 @@ describe('Branch rules app', () => {
}); });
it('shows alert when mutation fails', async () => { it('shows alert when mutation fails', async () => {
createComponent({ mutationHandler: jest.fn().mockRejectedValue() }); await createComponent({
mutationHandler: jest.fn().mockRejectedValue(),
});
findCreateBranchRuleListbox().vm.$emit('select', 'main'); findCreateBranchRuleListbox().vm.$emit('select', 'main');
await nextTick(); await nextTick();
findModal().vm.$emit('primary'); findModal().vm.$emit('primary');
...@@ -223,8 +234,10 @@ describe('Branch rules app', () => { ...@@ -223,8 +234,10 @@ describe('Branch rules app', () => {
}); });
describe('Add branch rule when editBranchRules FF disabled', () => { describe('Add branch rule when editBranchRules FF disabled', () => {
beforeEach(() => { beforeEach(async () => {
createComponent({ glFeatures: { editBranchRules: false } }); await createComponent({
glFeatures: { editBranchRules: false },
});
}); });
it('renders an Add branch rule button', () => { it('renders an Add branch rule button', () => {
expect(findAddBranchRuleButton().exists()).toBe(true); expect(findAddBranchRuleButton().exists()).toBe(true);
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册