Update from merge request

This commit is contained in:
root 2024-01-02 13:50:35 +00:00
parent ecdd26856c
commit 8a150a474e
18 changed files with 266 additions and 39 deletions

View File

@ -57,6 +57,10 @@ workflow:
variables:
<<: *default-ruby-variables
PIPELINE_NAME: 'Ruby $RUBY_VERSION forced pipeline'
- if: '$START_AS_IF_FOSS'
variables:
<<: *default-ruby-variables
PIPELINE_NAME: 'Ruby $RUBY_VERSION as-if-foss pipeline'
# As part of the process of creating RCs automatically, we update stable
# branches with the changes of the most recent production deployment. The
# merge requests used for this merge a branch release-tools/X into a stable

View File

@ -0,0 +1,70 @@
prepare-as-if-foss-branch:
extends:
- .as-if-foss:rules:start-as-if-foss
stage: prepare
needs: []
variables:
AS_IF_FOSS_BRANCH: "as-if-foss/${CI_COMMIT_REF_NAME}"
FOSS_REPOSITORY: "https://dummy:${AS_IF_FOSS_TOKEN}@gitlab.com/gitlab-org/gitlab-foss.git"
before_script:
- git clone --single-branch --branch master "${FOSS_REPOSITORY}" gitlab-foss
- git -C gitlab-foss checkout -b "${AS_IF_FOSS_BRANCH}" master
- rm -r .git/
- mv gitlab-foss/.git .
- rm -r gitlab-foss
script:
# See: https://gitlab.com/gitlab-org/merge-train/-/blob/041d942ae1b5615703b7a786982340b61620e7c5/bin/merge-train#L228-239
- git checkout VERSION
- rm -rf ee
- rm -rf qa/spec/ee
- rm -rf qa/qa/specs/features/ee
- rm -rf qa/qa/ee
- rm -f qa/qa/ee.rb
- rm -f CHANGELOG-EE.md
- rm -f changelogs/*-ee.md
- git add -A
- git commit -m 'Update from merge request' # TODO: Mark which SHA we add
- git push -f "${FOSS_REPOSITORY}" "${AS_IF_FOSS_BRANCH}"
prepare-as-if-foss-env:
extends:
- .as-if-foss:rules:start-as-if-foss
stage: prepare
needs: []
variables:
BUILD_ENV: build.env
before_script:
- source scripts/utils.sh
- install_gitlab_gem
script:
- scripts/setup/generate-as-if-foss-env.rb | tee $BUILD_ENV
artifacts:
expire_in: 3 days
reports:
dotenv: $BUILD_ENV
paths:
- $BUILD_ENV
start-as-if-foss:
extends:
- .as-if-foss:rules:start-as-if-foss
stage: prepare
needs:
- prepare-as-if-foss-branch
- prepare-as-if-foss-env
inherit:
variables: false # Otherwise variables will be messed up
variables:
START_AS_IF_FOSS: $START_AS_IF_FOSS
RUBY_VERSION: $RUBY_VERSION
ENABLE_RSPEC: $ENABLE_RSPEC
ENABLE_RSPEC_FAST_SPEC_HELPER: $ENABLE_RSPEC_FAST_SPEC_HELPER
ENABLE_RSPEC_UNIT: $ENABLE_RSPEC_UNIT
ENABLE_RSPEC_INTEGRATION: $ENABLE_RSPEC_INTEGRATION
ENABLE_RSPEC_MIGRATION: $ENABLE_RSPEC_MIGRATION
ENABLE_RSPEC_BACKGROUND_MIGRATION: $ENABLE_RSPEC_BACKGROUND_MIGRATION
ENABLE_RSPEC_SYSTEM: $ENABLE_RSPEC_SYSTEM
trigger:
project: gitlab-org/gitlab-foss
branch: as-if-foss/${CI_COMMIT_REF_NAME}
strategy: depend

View File

@ -295,12 +295,12 @@ rspec fast_spec_helper:
# Load fast_spec_helper as well just in case there are no specs available.
- bin/rspec --dry-run spec/fast_spec_helper.rb $fast_spec_helper_specs
rspec unit clickhouse:
rspec clickhouse:
extends:
- .rspec-base-pg14-clickhouse23
- .rails:rules:clickhouse-changes
rspec-ee unit clickhouse:
rspec-ee clickhouse:
extends:
- .rspec-base-pg14-clickhouse23
- .rails:rules:clickhouse-changes
@ -355,7 +355,7 @@ rspec:artifact-collector unit:
- .rails:rules:ee-and-foss-unit
needs:
- rspec unit pg14 # 24 jobs
- job: rspec unit clickhouse # 1 job
- job: rspec clickhouse # 1 job
optional: true
rspec:artifact-collector system:
@ -446,7 +446,7 @@ rspec:artifact-collector ee:
optional: true
- job: rspec-ee unit pg14 # 22 jobs
optional: true
- job: rspec-ee unit clickhouse # 1 job
- job: rspec-ee clickhouse # 1 job
optional: true
- job: rspec-ee integration pg14 # 5 jobs
optional: true

View File

@ -71,6 +71,9 @@
.if-merge-request-labels-as-if-foss: &if-merge-request-labels-as-if-foss
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-as-if-foss/'
.if-merge-request-labels-as-if-foss-cross-project: &if-merge-request-labels-as-if-foss-cross-project
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-as-if-foss-cross-project/'
.if-merge-request-labels-as-if-jh: &if-merge-request-labels-as-if-jh
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-as-if-jh/'
@ -1073,8 +1076,10 @@
######################
.ci-templates:rules:shellcheck:
rules:
- changes: *ci-templates-patterns
- changes:
- <<: *if-default-refs
changes: *ci-templates-patterns
- <<: *if-default-refs
changes:
- scripts/lint_templates_bash.rb
######################
@ -1227,6 +1232,7 @@
.frontend:rules:compile-test-assets:
rules:
- if: '$ENABLE_RSPEC == "true"'
- <<: *if-merge-request-labels-run-all-rspec
- <<: *if-merge-request
changes: *backend-patterns
@ -1892,6 +1898,7 @@
###############
.rails:rules:setup-test-env:
rules:
- if: '$ENABLE_RSPEC == "true"'
- <<: *if-default-refs
changes: *setup-test-env-patterns
- <<: *if-merge-request-labels-run-all-rspec
@ -2013,6 +2020,7 @@
when: never
- <<: *if-merge-request-labels-pipeline-expedite
when: never
- if: '$ENABLE_RSPEC_MIGRATION == "true"'
- <<: *if-merge-request-labels-run-all-rspec
- <<: *if-merge-request
changes: *core-backend-patterns
@ -2044,6 +2052,7 @@
.rails:rules:ee-and-foss-background-migration:
rules:
- if: '$ENABLE_RSPEC_BACKGROUND_MIGRATION == "true"'
- !reference [".rails:rules:ee-and-foss-migration", rules]
- <<: *if-default-refs
changes: *backend-patterns
@ -2068,16 +2077,27 @@
rules:
- <<: *if-fork-merge-request
when: never
- if: '$ENABLE_RSPEC_UNIT == "true"'
- !reference [".rails:rules:ee-and-foss-default-rules", rules]
- <<: *if-default-refs
changes: *backend-patterns
- <<: *if-default-refs
changes: *backstage-patterns
.rails:rules:clickhouse-changes:
rules:
- <<: *if-fork-merge-request
when: never
- if: '$ENABLE_RSPEC_UNIT == "true"'
- !reference [".rails:rules:ee-and-foss-default-rules", rules]
- <<: *if-default-refs
changes: *backend-patterns
.rails:rules:ee-and-foss-integration:
rules:
- <<: *if-fork-merge-request
when: never
- if: '$ENABLE_RSPEC_INTEGRATION == "true"'
- !reference [".rails:rules:ee-and-foss-default-rules", rules]
- <<: *if-default-refs
changes: *backend-patterns
@ -2086,12 +2106,14 @@
rules:
- <<: *if-fork-merge-request
when: never
- if: '$ENABLE_RSPEC_SYSTEM == "true"'
- !reference [".rails:rules:system-default-rules", rules]
- <<: *if-default-refs
changes: *code-backstage-patterns
.rails:rules:ee-and-foss-fast_spec_helper:
rules:
- if: '$ENABLE_RSPEC_FAST_SPEC_HELPER == "true"'
- <<: *if-merge-request-labels-run-all-rspec
- <<: *if-merge-request
changes: *backend-patterns
@ -2403,12 +2425,6 @@
changes: *code-backstage-patterns
when: always
.rails:rules:clickhouse-changes:
rules:
- <<: *if-dot-com-ee-schedule-default-branch-maintenance
- <<: *if-merge-request
changes: *backend-patterns
#########################
# Static analysis rules #
#########################
@ -2871,6 +2887,7 @@
#######################
.test-metadata:rules:retrieve-tests-metadata:
rules:
- if: '$ENABLE_RSPEC == "true"'
- <<: *if-default-refs
changes: *code-backstage-patterns
- <<: *if-default-refs
@ -2922,6 +2939,16 @@
- <<: *if-default-refs
changes: *lint-metrics-yaml-patterns
####################
# as-if-foss rules #
####################
.as-if-foss:rules:start-as-if-foss:
rules:
- if: '$AS_IF_FOSS_TOKEN == null'
when: never
- !reference [".strict-ee-only-rules", rules]
- <<: *if-merge-request-labels-as-if-foss-cross-project
##################
# as-if-jh rules #
##################

View File

@ -36,13 +36,13 @@ update-tests-metadata:
- rspec migration pg14
- rspec-all frontend_fixture
- rspec unit pg14
- rspec unit clickhouse
- rspec clickhouse
- rspec integration pg14
- rspec system pg14
- rspec background_migration pg14
- rspec-ee migration pg14
- rspec-ee unit pg14
- rspec-ee unit clickhouse
- rspec-ee clickhouse
- rspec-ee integration pg14
- rspec-ee system pg14
- rspec-ee background_migration pg14

View File

@ -1,6 +1,7 @@
<script>
import { GlDisclosureDropdown } from '@gitlab/ui';
import { GlDisclosureDropdown, GlTooltipDirective } from '@gitlab/ui';
import Tracking from '~/tracking';
import { s__ } from '~/locale';
import {
BOARD_CARD_MOVE_TO_POSITIONS_OPTIONS,
BOARD_CARD_MOVE_TO_POSITIONS_START_OPTION,
@ -12,6 +13,9 @@ export default {
components: {
GlDisclosureDropdown,
},
directives: {
GlTooltip: GlTooltipDirective,
},
mixins: [Tracking.mixin()],
props: {
item: {
@ -87,6 +91,9 @@ export default {
}
},
},
i18n: {
moveCardText: s__('Boards|Card options'),
},
};
</script>
@ -94,12 +101,16 @@ export default {
<gl-disclosure-dropdown
ref="dropdown"
:key="itemIdentifier"
v-gl-tooltip.hover.focus.top="{
title: $options.i18n.moveCardText,
boundary: 'viewport',
}"
class="move-to-position gl-display-block gl-mb-2 gl-ml-auto gl-mt-n3 gl-mr-n3 js-no-trigger"
category="tertiary"
:items="$options.BOARD_CARD_MOVE_TO_POSITIONS_OPTIONS"
icon="ellipsis_v"
:tabindex="index"
:toggle-text="s__('Boards|Move card')"
:aria-label="$options.i18n.moveCardText"
:text-sr-only="true"
no-caret
data-testid="board-move-to-position"

View File

@ -215,6 +215,7 @@ export default {
this.$emit('reset');
},
onShowModal() {
this.$emit('shown');
if (this.usersLimitDataset.reachedLimit) {
this.track('render', { category: 'default', label: ON_SHOW_TRACK_LABEL });
}

View File

@ -116,7 +116,11 @@ export default {
@pin-remove="onPinRemove(item.id, item.title)"
/>
</draggable>
<li v-else class="gl-text-secondary gl-font-sm gl-py-3" style="margin-left: 2.5rem">
<li
v-else
class="gl-text-secondary gl-font-sm gl-py-3 super-sidebar-empty-pinned-text"
style="margin-left: 2.5rem"
>
{{ $options.i18n.emptyHint }}
</li>
</menu-section>

View File

@ -408,6 +408,13 @@ $super-sidebar-transition-hint-duration: $super-sidebar-transition-duration / 4;
}
}
.super-sidebar-empty-pinned-text {
mix-blend-mode: multiply;
.gl-dark & {
mix-blend-mode: screen;
}
}
// Styles for the ScrollScrim component.
// Should eventually be moved to gitlab-ui.

View File

@ -656,7 +656,8 @@ sudo -u git -H bundle exec rake gitlab:backup:create REPOSITORIES_STORAGES=stora
#### Back up specific repositories
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/88094) in GitLab 15.1.
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/88094) in GitLab 15.1.
> - [Skipping specific repositories added](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121865) in GitLab 16.1.
You can back up specific repositories using the `REPOSITORIES_PATHS` option.
Similarly, you can use `SKIP_REPOSITORIES_PATHS` to skip certain repositories.

View File

@ -300,6 +300,23 @@ set and get the `ee/` folder removed before the tests start running.
The intent is to ensure that a change doesn't introduce a failure after `gitlab-org/gitlab` is synced to `gitlab-org/gitlab-foss`.
#### As-if-FOSS cross project downstream pipeline
As an alternative to the `* as-if-foss` jobs, we can also run a cross project
FOSS pipeline exactly in the `gitlab-org/gitlab-foss` project. We trigger it
in the following cases:
- when the `pipeline:run-as-if-foss-cross-project` label is set on the merge request
This is still working-in-progress to replace the `* as-if-foss` jobs. The
goal is to simplify pipeline rules and make it more clear about the intention.
##### Tokens set in the project variables
- `AS_IF_FOSS_TOKEN`: This is a [GitLab FOSS](https://gitlab.com/gitlab-org/gitlab-foss)
project token with `developer` role and `write_repository` permission,
to push generated `as-if-foss/*` branch.
### As-if-JH cross project downstream pipeline
#### What it is
@ -399,7 +416,8 @@ flowchart TD
- `ADD_JH_FILES_TOKEN`: This is a [GitLab JH mirror](https://gitlab.com/gitlab-org/gitlab-jh-mirrors/gitlab)
project token with `read_api` permission, to be able to download JiHu files.
- `AS_IF_JH_TOKEN`: This is a [GitLab JH validation](https://gitlab.com/gitlab-org-sandbox/gitlab-jh-validation)
project token with `write_repository` permission, to push generated `as-if-jh/*` branch.
project token with `developer` role and `write_repository` permission,
to push generated `as-if-jh/*` branch.
##### How we generate the as-if-JH branch

View File

@ -48,6 +48,25 @@ from using `$FORCE_GITLAB_CI`.
- [JiHu validation pipeline](https://about.gitlab.com/handbook/ceo/chief-of-staff-team/jihu-support/jihu-validation-pipelines.html)
- [Gitaly downstream GitLab pipeline](https://gitlab.com/gitlab-org/gitaly/-/issues/4615)
See the next section for how we can enable pipelines without using
`$FORCE_GITLAB_CI`.
#### Alternative to `$FORCE_GITLAB_CI`
Essentially, we use different variables to enable different pipelines.
An example doing this is `$START_AS_IF_FOSS`. When we want to trigger a
cross project FOSS pipeline, we set `$START_AS_IF_FOSS`, along with a set of
other variables like `$ENABLE_RSPEC_UNIT`, `$ENABLE_RSPEC_SYSTEM`, and so on
so forth to enable each jobs we want to run in the as-if-foss cross project
downstream pipeline.
The advantage of this over `$FORCE_GITLAB_CI` is that we have full control
over how we want to run the pipeline because `$START_AS_IF_FOSS` is only used
for this purpose, and changing how the pipeline behaves under this variable
will not affect other types of pipelines, while using `$FORCE_GITLAB_CI` we
do not know what exactly the pipeline is because it's used for multiple
purposes.
## Default image
The default image is defined in [`.gitlab-ci.yml`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab-ci.yml).

View File

@ -192,12 +192,13 @@ When upgrading:
- GitLab 15: [`15.0.5`](versions/gitlab_15_changes.md#1500) > [`15.1.6`](versions/gitlab_15_changes.md#1510) (for
GitLab instances with multiple web nodes) > [`15.4.6`](versions/gitlab_15_changes.md#1540) >
[`15.11.13`](versions/gitlab_15_changes.md#15110).
- GitLab 16: [`16.0.x`](versions/gitlab_16_changes.md#1600) (only
- GitLab 16: [`16.0.8`](versions/gitlab_16_changes.md#1600) (only
instances with [lots of users](versions/gitlab_16_changes.md#long-running-user-type-data-change) or
[large pipeline variables history](versions/gitlab_16_changes.md#1610)) >
[`16.1`](versions/gitlab_16_changes.md#1610) (instances with NPM packages in their package registry) >
[`16.2.x`](versions/gitlab_16_changes.md#1620) (only instances with [large pipeline variables history](versions/gitlab_16_changes.md#1630)) >
[`16.3`](versions/gitlab_16_changes.md#1630) > [latest `16.Y.Z`](https://gitlab.com/gitlab-org/gitlab/-/releases).
[`16.1.5`](versions/gitlab_16_changes.md#1610) (instances with NPM packages in their package registry) >
[`16.2.8`](versions/gitlab_16_changes.md#1620) (only instances with [large pipeline variables history](versions/gitlab_16_changes.md#1630)) >
[`16.3.6`](versions/gitlab_16_changes.md#1630) > [`16.7.z`](versions/gitlab_16_changes.md#1670)
> [latest `16.Y.Z`](https://gitlab.com/gitlab-org/gitlab/-/releases).
1. Check for [required upgrade stops](#required-upgrade-stops).
1. Consult the [version-specific upgrade instructions](#version-specific-upgrading-instructions).

View File

@ -17,22 +17,55 @@ For more information about upgrading GitLab Helm Chart, see [the release notes f
## Issues to be aware of when upgrading from 15.11
- [PostgreSQL 12 is not supported starting from GitLab 16](../../update/deprecations.md#postgresql-12-deprecated). Upgrade PostgreSQL to at least version 13.6 before upgrading to GitLab 16.0 or later.
- Some GitLab installations must upgrade to GitLab 16.0 before upgrading to any other version. For more information, see
[Long-running user type data change](#long-running-user-type-data-change).
- Other installations can skip 16.0, 16.1, and 16.2 as the first required stop on the upgrade path is 16.3. Review the notes for those intermediate
versions.
- If your GitLab instance upgraded first to 15.11.0, 15.11.1, or 15.11.2 the database schema is incorrect.
Recommended: perform the workaround before upgrading to 16.x.
See [the details and workaround](#undefined-column-error-upgrading-to-162-or-later).
- Linux package installations must change Gitaly and Praefect configuration structure before upgrading to GitLab 16.
Perform the [workaround](#undefined-column-error-upgrading-to-162-or-later) before upgrading to 16.x.
- Most installations can skip 16.0, 16.1, and 16.2, as the first required stop on the upgrade path is 16.3.
In all cases, you should review the notes for those intermediate versions.
Some GitLab installations must stop at those intermediate versions depending on which features are used
and the size of the environment:
- 16.0.8: Instances with lots of records in the users table.
For more information, see [long-running user type data change](#long-running-user-type-data-change).
- [16.1.5](#1610): Instances that use the NPM package registry.
- [16.2.8](#1620): Instances with lots of pipeline variables (including historical pipelines).
If your instance is affected and you skip these stops:
- The upgrade can take hours to complete.
- The instance generates 500 errors until all the database changes are finished, after which
Puma and Sidekiq must restarted.
- For Linux package installations, a timeout occurs and a
[manual workaround to complete the migrations](../package/package_troubleshooting.md#mixlibshelloutcommandtimeout-rails_migrationgitlab-rails--command-timed-out-after-3600s)
is necessary.
- GitLab 16.0 introduced changes around enforcing limits on project sizes. On self-managed, if you use
these limits, projects that have reached their limit causes error messages when pushing to unaffected Git
repositories in the same group. The errors often refer to exceeding a limit of zero bytes (`limit of 0 B`).
The pushes succeed, but the errors imply otherwise and might cause issues with automation.
[Read more in the issue](https://gitlab.com/gitlab-org/gitlab/-/issues/416646).
The [bug is fixed in GitLab 16.5 and later](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/131122).
### Linux package installations
- Gitaly and Praefect configuration structure must be changed before upgrading to GitLab 16.
**To avoid data loss** reconfigure Praefect first, and as part of the new configuration, disable metadata verification.
Read more:
- [Praefect configuration structure change](#praefect-configuration-structure-change).
- [Gitaly configuration structure change](#gitaly-configuration-structure-change).
- If you reconfigure Gitaly to store Git data in a location other than `/var/opt/gitlab/git-data/repositories`,
packaged GitLab 16.0 and later does not automatically create the directory structure.
[Read the issue for more details and the workaround](https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/8320).
## 16.7.0
- GitLab 16.7 is a required upgrade stop. This ensures that all database changes introduced
in GitLab 16.7 and earlier have been implemented on all self-managed instances. Dependent changes can then be released
in GitLab 16.8 and later. [Issue 429611](https://gitlab.com/gitlab-org/gitlab/-/issues/429611) provides more details.
### Linux package installations
Specific information applies to Linux package installations:

View File

@ -223,8 +223,8 @@ To remove a custom role from a group member:
1. Select the **Max role** dropdown list for the member you want to remove a custom role from.
1. On the **Change role** dialog, select a static role.
You can update or remove a custom role from a group member also with the [Group and Project Members API endpoint](../api/members.md#edit-a-member-of-a-group-or-project).
and pass an empty `member_role_id` value:
You can also use the [Group and Project Members API endpoint](../api/members.md#edit-a-member-of-a-group-or-project)
to update or remove a custom role from a group member by passing an empty `member_role_id` value:
```shell
# to update a project membership

View File

@ -8456,6 +8456,9 @@ msgid_plural "Boards|Blocked by %{blockedByCount} %{issuableType}s"
msgstr[0] ""
msgstr[1] ""
msgid "Boards|Card options"
msgstr ""
msgid "Boards|Collapse"
msgstr ""
@ -8477,9 +8480,6 @@ msgstr ""
msgid "Boards|Failed to fetch blocking %{issuableType}s"
msgstr ""
msgid "Boards|Move card"
msgstr ""
msgid "Boards|Move to end of list"
msgstr ""

View File

@ -0,0 +1,22 @@
#!/usr/bin/env ruby
# frozen_string_literal: true
require 'gitlab'
require 'set'
client = Gitlab.client(endpoint: ENV['CI_API_V4_URL'], private_token: '')
rspec_jobs = Set.new
client.pipeline_jobs(ENV['CI_PROJECT_ID'], ENV['CI_PIPELINE_ID']).auto_paginate do |job|
rspec_type = job.name[/^rspec ([\w\-]+)/, 1]
rspec_jobs << rspec_type if rspec_type
end
puts 'START_AS_IF_FOSS=true', "RUBY_VERSION=#{ENV['RUBY_VERSION']}"
puts 'ENABLE_RSPEC=true' if rspec_jobs.any?
rspec_jobs.each do |rspec|
puts "ENABLE_RSPEC_#{rspec.upcase.tr('-', '_')}=true"
end

View File

@ -70,6 +70,7 @@ describe('InviteModalBase', () => {
const findDisabledInput = () => wrapper.findByTestId('disabled-input');
const findCancelButton = () => wrapper.findByTestId('invite-modal-cancel');
const findActionButton = () => wrapper.findByTestId('invite-modal-submit');
const findModal = () => wrapper.findComponent(GlModal);
describe('rendering the modal', () => {
let trackingSpy;
@ -82,7 +83,7 @@ describe('InviteModalBase', () => {
});
it('renders the modal with the correct title', () => {
expect(wrapper.findComponent(GlModal).props('title')).toBe(propsData.modalTitle);
expect(findModal().props('title')).toBe(propsData.modalTitle);
});
it('displays the introText', () => {
@ -200,9 +201,7 @@ describe('InviteModalBase', () => {
});
trackingSpy = mockTracking(undefined, wrapper.element, jest.spyOn);
const modal = wrapper.findComponent(GlModal);
modal.vm.$emit('shown');
findModal().vm.$emit('shown');
expectTracking('render', ON_SHOW_TRACK_LABEL, 'default');
unmockTracking();
@ -280,4 +279,14 @@ describe('InviteModalBase', () => {
state: false,
});
});
it('emits the shown event when the modal is shown', () => {
createComponent();
// Verify that the shown event isn't emitted when the component is first created.
expect(wrapper.emitted('shown')).toBeUndefined();
findModal().vm.$emit('shown');
expect(wrapper.emitted('shown')).toHaveLength(1);
});
});