diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-08-01 12:10:08 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-08-01 12:10:08 +0300 |
commit | 1fb5861e0a89e67369a6ab36ffa6dd29d2445bff (patch) | |
tree | 801201c3902dea6be771e811830f18e4c4ea4563 /spec | |
parent | adc17b84d11174d88a945d51a575292046a51a2c (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec')
8 files changed, 283 insertions, 7 deletions
diff --git a/spec/frontend/custom_emoji/components/__snapshots__/list_spec.js.snap b/spec/frontend/custom_emoji/components/__snapshots__/list_spec.js.snap new file mode 100644 index 00000000000..4e87d4d8192 --- /dev/null +++ b/spec/frontend/custom_emoji/components/__snapshots__/list_spec.js.snap @@ -0,0 +1,220 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Custom emoji settings list component renders table of custom emoji 1`] = ` +<div> + <div + class="tabs gl-tabs" + > + <!----> + <div + class="" + > + <ul + class="nav gl-tabs-nav" + role="tablist" + > + <div + class="gl-actions-tabs-start" + data-testid="actions-tabs-start" + > + <a + class="btn btn-info btn-md gl-button" + data-testid="action-primary" + href="/new" + to="/new" + > + <!----> + + <!----> + + <span + class="gl-button-text" + > + + New custom emoji + + </span> + </a> + + <!----> + + <!----> + </div> + <div + class="gl-actions-tabs-end" + data-testid="actions-tabs-end" + > + <a + class="btn btn-info btn-md gl-button" + data-testid="action-primary" + href="/new" + to="/new" + > + <!----> + + <!----> + + <span + class="gl-button-text" + > + + New custom emoji + + </span> + </a> + + <!----> + + <!----> + </div> + </ul> + </div> + <div + class="tab-content gl-pt-0 gl-tab-content" + > + <transition-stub + css="true" + enteractiveclass="" + enterclass="" + entertoclass="show" + leaveactiveclass="" + leaveclass="show" + leavetoclass="" + mode="out-in" + name="" + > + <div + aria-hidden="true" + class="tab-pane" + role="tabpanel" + style="display: none;" + > + + <table + aria-busy="" + aria-colcount="4" + class="table b-table gl-table gl-table-layout-fixed" + role="table" + > + <!----> + <colgroup> + <col + style="width: 70px;" + /> + <col /> + <col + style="width: 25%;" + /> + <col + style="width: 64px;" + /> + </colgroup> + <thead + class="" + role="rowgroup" + > + <!----> + <tr + class="" + role="row" + > + <th + aria-colindex="1" + class="gl-border-t-0!" + role="columnheader" + scope="col" + > + <div> + Image + </div> + </th> + <th + aria-colindex="2" + class="gl-border-t-0!" + role="columnheader" + scope="col" + > + <div> + Name + </div> + </th> + <th + aria-colindex="3" + class="gl-border-t-0!" + role="columnheader" + scope="col" + > + <div> + Created date + </div> + </th> + <th + aria-colindex="4" + aria-label="Action" + class="gl-border-t-0!" + role="columnheader" + scope="col" + > + <div /> + </th> + </tr> + </thead> + <tbody + role="rowgroup" + > + <!----> + <tr + class="" + role="row" + > + <td + aria-colindex="1" + class="gl-vertical-align-middle!" + role="cell" + > + <gl-emoji + data-fallback-src="https://gitlab.com/custom_emoji/custom_emoji/-/raw/main/img/confused_husky.gif" + data-name="confused_husky" + data-unicode-version="custom" + /> + </td> + <td + aria-colindex="2" + class="gl-vertical-align-middle! gl-font-monospace" + role="cell" + > + <strong + class="gl-str-truncated" + > + :confused_husky: + </strong> + </td> + <td + aria-colindex="3" + class="gl-vertical-align-middle!" + role="cell" + > + + created-at + + </td> + <td + aria-colindex="4" + class="" + role="cell" + /> + </tr> + <!----> + <!----> + </tbody> + <!----> + </table> + + <!----> + </div> + </transition-stub> + <!----> + </div> + </div> +</div> +`; diff --git a/spec/frontend/custom_emoji/components/list_spec.js b/spec/frontend/custom_emoji/components/list_spec.js new file mode 100644 index 00000000000..ac5219e375b --- /dev/null +++ b/spec/frontend/custom_emoji/components/list_spec.js @@ -0,0 +1,45 @@ +import Vue from 'vue'; +import { mountExtended } from 'helpers/vue_test_utils_helper'; +import List from '~/custom_emoji/components/list.vue'; +import { CUSTOM_EMOJI } from '../mock_data'; + +jest.mock('~/lib/utils/datetime/date_format_utility', () => ({ + formatDate: (date) => date, +})); + +Vue.config.ignoredElements = ['gl-emoji']; + +let wrapper; + +function createComponent(propsData = {}) { + wrapper = mountExtended(List, { + propsData: { + customEmojis: CUSTOM_EMOJI, + pageInfo: {}, + count: CUSTOM_EMOJI.length, + ...propsData, + }, + }); +} + +describe('Custom emoji settings list component', () => { + it('renders table of custom emoji', () => { + createComponent(); + + expect(wrapper.element).toMatchSnapshot(); + }); + + describe('pagination', () => { + it.each` + emits | button | pageInfo + ${{ before: 'startCursor' }} | ${'prevButton'} | ${{ hasPreviousPage: true, startCursor: 'startCursor' }} + ${{ after: 'endCursor' }} | ${'nextButton'} | ${{ hasNextPage: true, endCursor: 'endCursor' }} + `('emits $emits when $button is clicked', async ({ emits, button, pageInfo }) => { + createComponent({ pageInfo }); + + await wrapper.findByTestId(button).vm.$emit('click'); + + expect(wrapper.emitted('input')[0]).toEqual([emits]); + }); + }); +}); diff --git a/spec/frontend/custom_emoji/mock_data.js b/spec/frontend/custom_emoji/mock_data.js new file mode 100644 index 00000000000..19ba7022bf1 --- /dev/null +++ b/spec/frontend/custom_emoji/mock_data.js @@ -0,0 +1,8 @@ +export const CUSTOM_EMOJI = [ + { + id: 'gid://gitlab/CustomEmoji/1', + name: 'confused_husky', + url: 'https://gitlab.com/custom_emoji/custom_emoji/-/raw/main/img/confused_husky.gif', + createdAt: 'created-at', + }, +]; diff --git a/spec/models/ci/bridge_spec.rb b/spec/models/ci/bridge_spec.rb index a5366a1a67a..1d0c3bb5dee 100644 --- a/spec/models/ci/bridge_spec.rb +++ b/spec/models/ci/bridge_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' RSpec.describe Ci::Bridge, feature_category: :continuous_integration do - let_it_be(:project, reload: true) { create(:project, :repository, :in_group) } + let_it_be(:project, refind: true) { create(:project, :repository, :in_group) } let_it_be(:target_project) { create(:project, name: 'project', namespace: create(:namespace, name: 'my')) } let_it_be(:pipeline) { create(:ci_pipeline, project: project) } diff --git a/spec/requests/api/npm_group_packages_spec.rb b/spec/requests/api/npm_group_packages_spec.rb index 431c59cf1b8..fe0bf1d8b46 100644 --- a/spec/requests/api/npm_group_packages_spec.rb +++ b/spec/requests/api/npm_group_packages_spec.rb @@ -2,8 +2,7 @@ require 'spec_helper' -RSpec.describe API::NpmGroupPackages, feature_category: :package_registry, - quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/418757' do +RSpec.describe API::NpmGroupPackages, feature_category: :package_registry do using RSpec::Parameterized::TableSyntax include_context 'npm api setup' diff --git a/spec/requests/organizations/organizations_controller_spec.rb b/spec/requests/organizations/organizations_controller_spec.rb index bd54b50de99..c3a328cf3f6 100644 --- a/spec/requests/organizations/organizations_controller_spec.rb +++ b/spec/requests/organizations/organizations_controller_spec.rb @@ -30,9 +30,13 @@ RSpec.describe Organizations::OrganizationsController, feature_category: :cell d end context 'when the feature flag `ui_for_organizations` is disabled' do - it 'renders 404' do - stub_feature_flags(ui_for_organizations: false) + let_it_be(:other_user) { create :user } + + before do + stub_feature_flags(ui_for_organizations: other_user) + end + it 'renders 404' do gitlab_request expect(response).to have_gitlab_http_status(:not_found) diff --git a/spec/support/shared_contexts/requests/api/npm_packages_shared_context.rb b/spec/support/shared_contexts/requests/api/npm_packages_shared_context.rb index 36103b94542..9d05a39cdb8 100644 --- a/spec/support/shared_contexts/requests/api/npm_packages_shared_context.rb +++ b/spec/support/shared_contexts/requests/api/npm_packages_shared_context.rb @@ -7,7 +7,7 @@ RSpec.shared_context 'npm api setup' do let_it_be(:user, reload: true) { create(:user) } let_it_be(:group) { create(:group, name: 'test-group') } let_it_be(:namespace) { group } - let_it_be(:project, reload: true) { create(:project, :public, namespace: namespace) } + let_it_be_with_refind(:project) { create(:project, :public, namespace: namespace) } let_it_be(:package, reload: true) { create(:npm_package, project: project, name: "@#{group.path}/scoped_package", version: '1.2.3') } let_it_be(:token) { create(:oauth_access_token, scopes: 'api', resource_owner: user) } let_it_be(:personal_access_token) { create(:personal_access_token, user: user) } diff --git a/spec/support/shared_examples/ci/deployable_shared_examples.rb b/spec/support/shared_examples/ci/deployable_shared_examples.rb index 367e939e69c..75ddc763bc6 100644 --- a/spec/support/shared_examples/ci/deployable_shared_examples.rb +++ b/spec/support/shared_examples/ci/deployable_shared_examples.rb @@ -51,7 +51,7 @@ RSpec.shared_examples 'a deployable job' do end context 'when job is older than the latest deployment but succeeded once' do - let(:job) { create(factory_type, :success, :with_deployment, pipeline: pipeline, environment: 'production') } + let(:job) { create(factory_type, :success, :with_deployment, project: project, pipeline: pipeline, environment: 'production') } before do allow(job.deployment).to receive(:older_than_last_successful_deployment?).and_return(true) |