diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-11-17 14:33:21 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-11-17 14:33:21 +0300 |
commit | 7021455bd1ed7b125c55eb1b33c5a01f2bc55ee0 (patch) | |
tree | 5bdc2229f5198d516781f8d24eace62fc7e589e9 /spec/frontend/projects/settings/repository | |
parent | 185b095e93520f96e9cfc31d9c3e69b498cdab7c (diff) |
Add latest changes from gitlab-org/gitlab@15-6-stable-eev15.6.0-rc42
Diffstat (limited to 'spec/frontend/projects/settings/repository')
3 files changed, 69 insertions, 17 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 4603436c40a..6369f04781f 100644 --- a/spec/frontend/projects/settings/repository/branch_rules/app_spec.js +++ b/spec/frontend/projects/settings/repository/branch_rules/app_spec.js @@ -52,6 +52,10 @@ describe('Branch rules app', () => { expect(findAllBranchRules().at(0).props('name')).toBe(nodes[0].name); + expect(findAllBranchRules().at(0).props('branchProtection')).toEqual(nodes[0].branchProtection); + expect(findAllBranchRules().at(1).props('name')).toBe(nodes[1].name); + + expect(findAllBranchRules().at(1).props('branchProtection')).toEqual(nodes[1].branchProtection); }); }); diff --git a/spec/frontend/projects/settings/repository/branch_rules/components/branch_rule_spec.js b/spec/frontend/projects/settings/repository/branch_rules/components/branch_rule_spec.js index 2bc705f538b..2aa93fd0e28 100644 --- a/spec/frontend/projects/settings/repository/branch_rules/components/branch_rule_spec.js +++ b/spec/frontend/projects/settings/repository/branch_rules/components/branch_rule_spec.js @@ -2,7 +2,12 @@ import { shallowMountExtended } from 'helpers/vue_test_utils_helper'; import BranchRule, { i18n, } from '~/projects/settings/repository/branch_rules/components/branch_rule.vue'; -import { branchRuleProvideMock, branchRulePropsMock } from '../mock_data'; +import { sprintf, n__ } from '~/locale'; +import { + branchRuleProvideMock, + branchRulePropsMock, + branchRuleWithoutDetailsPropsMock, +} from '../mock_data'; describe('Branch rule', () => { let wrapper; @@ -15,7 +20,6 @@ describe('Branch rule', () => { }; const findDefaultBadge = () => wrapper.findByText(i18n.defaultLabel); - const findProtectedBadge = () => wrapper.findByText(i18n.protectedLabel); const findBranchName = () => wrapper.findByText(branchRulePropsMock.name); const findProtectionDetailsList = () => wrapper.findByRole('list'); const findProtectionDetailsListItems = () => wrapper.findAllByRole('listitem'); @@ -28,33 +32,36 @@ describe('Branch rule', () => { }); describe('badges', () => { - it('renders both default and protected badges', () => { + it('renders default badge', () => { expect(findDefaultBadge().exists()).toBe(true); - expect(findProtectedBadge().exists()).toBe(true); }); it('does not render default badge if isDefault is set to false', () => { createComponent({ isDefault: false }); expect(findDefaultBadge().exists()).toBe(false); }); - - it('does not render protected badge if isProtected is set to false', () => { - createComponent({ isProtected: false }); - expect(findProtectedBadge().exists()).toBe(false); - }); }); - it('does not render the protection details list of no details are present', () => { - createComponent({ approvalDetails: null }); + it('does not render the protection details list if no details are present', () => { + createComponent(branchRuleWithoutDetailsPropsMock); expect(findProtectionDetailsList().exists()).toBe(false); }); it('renders the protection details list items', () => { - expect(findProtectionDetailsListItems().at(0).text()).toBe( - branchRulePropsMock.approvalDetails[0], + expect(findProtectionDetailsListItems()).toHaveLength(wrapper.vm.approvalDetails.length); + expect(findProtectionDetailsListItems().at(0).text()).toBe(i18n.allowForcePush); + expect(findProtectionDetailsListItems().at(1).text()).toBe(i18n.codeOwnerApprovalRequired); + expect(findProtectionDetailsListItems().at(2).text()).toMatchInterpolatedText( + sprintf(i18n.statusChecks, { + total: branchRulePropsMock.statusChecksTotal, + subject: n__('check', 'checks', branchRulePropsMock.statusChecksTotal), + }), ); - expect(findProtectionDetailsListItems().at(1).text()).toBe( - branchRulePropsMock.approvalDetails[1], + expect(findProtectionDetailsListItems().at(3).text()).toMatchInterpolatedText( + sprintf(i18n.approvalRules, { + total: branchRulePropsMock.approvalRulesTotal, + subject: n__('rule', 'rules', branchRulePropsMock.approvalRulesTotal), + }), ); }); diff --git a/spec/frontend/projects/settings/repository/branch_rules/mock_data.js b/spec/frontend/projects/settings/repository/branch_rules/mock_data.js index bac82992c4d..8aa03a12996 100644 --- a/spec/frontend/projects/settings/repository/branch_rules/mock_data.js +++ b/spec/frontend/projects/settings/repository/branch_rules/mock_data.js @@ -8,10 +8,36 @@ export const branchRulesMockResponse = { nodes: [ { name: 'main', + isDefault: true, + branchProtection: { + allowForcePush: true, + codeOwnerApprovalRequired: true, + }, + approvalRules: { + nodes: [{ id: 1 }], + __typename: 'ApprovalProjectRuleConnection', + }, + externalStatusChecks: { + nodes: [{ id: 1 }, { id: 2 }], + __typename: 'BranchRule', + }, __typename: 'BranchRule', }, { name: 'test-*', + isDefault: false, + branchProtection: { + allowForcePush: false, + codeOwnerApprovalRequired: false, + }, + approvalRules: { + nodes: [], + __typename: 'ApprovalProjectRuleConnection', + }, + externalStatusChecks: { + nodes: [], + __typename: 'BranchRule', + }, __typename: 'BranchRule', }, ], @@ -31,6 +57,21 @@ export const branchRuleProvideMock = { export const branchRulePropsMock = { name: 'main', isDefault: true, - isProtected: true, - approvalDetails: ['requires approval from TEST', '2 status checks'], + branchProtection: { + allowForcePush: true, + codeOwnerApprovalRequired: true, + }, + approvalRulesTotal: 1, + statusChecksTotal: 2, +}; + +export const branchRuleWithoutDetailsPropsMock = { + name: 'main', + isDefault: false, + branchProtection: { + allowForcePush: false, + codeOwnerApprovalRequired: false, + }, + approvalRulesTotal: 0, + statusChecksTotal: 0, }; |