diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-09-02 18:12:37 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-09-02 18:12:37 +0300 |
commit | 0a70b104d06b27e1d391a7035fa0500e84daaef4 (patch) | |
tree | 7c68ccfef2196f390549233024521319111c51f4 /spec/frontend/projects | |
parent | 2d337eacd93f459f702e032077b5ba123ed90c00 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend/projects')
-rw-r--r-- | spec/frontend/projects/settings/repository/branch_rules/app_spec.js | 36 | ||||
-rw-r--r-- | spec/frontend/projects/settings/repository/branch_rules/mock_data.js | 20 |
2 files changed, 52 insertions, 4 deletions
diff --git a/spec/frontend/projects/settings/repository/branch_rules/app_spec.js b/spec/frontend/projects/settings/repository/branch_rules/app_spec.js index e12c3aeedd6..618944329fb 100644 --- a/spec/frontend/projects/settings/repository/branch_rules/app_spec.js +++ b/spec/frontend/projects/settings/repository/branch_rules/app_spec.js @@ -1,18 +1,46 @@ +import Vue from 'vue'; +import VueApollo from 'vue-apollo'; +import createMockApollo from 'helpers/mock_apollo_helper'; +import waitForPromises from 'helpers/wait_for_promises'; import { mountExtended } from 'helpers/vue_test_utils_helper'; -import BranchRules from '~/projects/settings/repository/branch_rules/app.vue'; +import BranchRules, { i18n } from '~/projects/settings/repository/branch_rules/app.vue'; +import branchRulesQuery from '~/projects/settings/repository/branch_rules/graphql/queries/branch_rules.query.graphql'; +import createFlash from '~/flash'; +import { branchRulesMockResponse, propsDataMock } from './mock_data'; + +jest.mock('~/flash'); + +Vue.use(VueApollo); describe('Branch rules app', () => { let wrapper; + let fakeApollo; + + const branchRulesQuerySuccessHandler = jest.fn().mockResolvedValue(branchRulesMockResponse); + + const createComponent = async (branchRulesQueryHandler = branchRulesQuerySuccessHandler) => { + fakeApollo = createMockApollo([[branchRulesQuery, branchRulesQueryHandler]]); - const createComponent = () => { - wrapper = mountExtended(BranchRules); + wrapper = mountExtended(BranchRules, { + apolloProvider: fakeApollo, + propsData: { + ...propsDataMock, + }, + }); + + await waitForPromises(); }; const findTitle = () => wrapper.find('strong'); beforeEach(() => createComponent()); + it('displays an error if branch rules query fails', async () => { + await createComponent(jest.fn().mockRejectedValue()); + expect(createFlash).toHaveBeenCalledWith({ message: i18n.queryError }); + }); + it('renders a title', () => { - expect(findTitle().text()).toBe('Branch'); + expect(findTitle().text()).toBe(i18n.heading); }); }); diff --git a/spec/frontend/projects/settings/repository/branch_rules/mock_data.js b/spec/frontend/projects/settings/repository/branch_rules/mock_data.js new file mode 100644 index 00000000000..2b8468ead0e --- /dev/null +++ b/spec/frontend/projects/settings/repository/branch_rules/mock_data.js @@ -0,0 +1,20 @@ +export const branchRulesMockResponse = { + data: { + project: { + __typename: 'Project', + branchRules: { + __typename: 'BranchRuleConnection', + nodes: [ + { + name: 'master', + __typename: 'BranchRule', + }, + ], + }, + }, + }, +}; + +export const propsDataMock = { + projectPath: 'some/project/path', +}; |