mirror of
https://github.com/gitlabhq/gitlabhq.git
synced 2025-08-15 23:30:46 +00:00
Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
@ -162,7 +162,7 @@
|
||||
{"name":"faraday","version":"2.13.1","platform":"ruby","checksum":"cc531eb5467e7d74d4517630fa96f1a7003647cbf20a9a3e067d098941217b75"},
|
||||
{"name":"faraday-follow_redirects","version":"0.3.0","platform":"ruby","checksum":"d92d975635e2c7fe525dd494fcd4b9bb7f0a4a0ec0d5f4c15c729530fdb807f9"},
|
||||
{"name":"faraday-http-cache","version":"2.5.0","platform":"ruby","checksum":"64b7366d66e508e1c3dd855ebb20ce9da429330e412a23d9ebbc0a7a7b227463"},
|
||||
{"name":"faraday-multipart","version":"1.1.0","platform":"ruby","checksum":"856b0f1c7316a4d6c052dd2eef5c42f887d56d93a171fe8880da1af064ca0751"},
|
||||
{"name":"faraday-multipart","version":"1.1.1","platform":"ruby","checksum":"77a18ff40149030fd1aef55bb4fc7a67ce46419a8a3fcd010e28c2526e8d8903"},
|
||||
{"name":"faraday-net_http","version":"3.1.0","platform":"ruby","checksum":"1627be414960d0131691190ff524506ba6607402a50fb6eccda9e64ca60f859f"},
|
||||
{"name":"faraday-net_http_persistent","version":"2.1.0","platform":"ruby","checksum":"b41720b13f56dae77114d9de54baef2d76d0b06ab40d695b2a98e254b56ade0b"},
|
||||
{"name":"faraday-retry","version":"2.2.1","platform":"ruby","checksum":"4146fed14549c0580bf14591fca419a40717de0dd24f267a8ec2d9a728677608"},
|
||||
@ -219,7 +219,7 @@
|
||||
{"name":"gitlab","version":"4.19.0","platform":"ruby","checksum":"3f645e3e195dbc24f0834fbf83e8ccfb2056d8e9712b01a640aad418a6949679"},
|
||||
{"name":"gitlab-chronic","version":"0.10.6","platform":"ruby","checksum":"a244d11a1396d2aac6ae9b2f326adf1605ec1ad20c29f06e8b672047d415a9ac"},
|
||||
{"name":"gitlab-cloud-connector","version":"1.20.0","platform":"ruby","checksum":"259a703e2c635128a1d259d90f2b38edfaefd0b812332b363ed9cdca3200aa45"},
|
||||
{"name":"gitlab-crystalball","version":"1.1.0","platform":"ruby","checksum":"bd314742a89cad8cb858fec41fc5282ff64ccf262cffa1d5b118f053c5c382a8"},
|
||||
{"name":"gitlab-crystalball","version":"1.1.1","platform":"ruby","checksum":"0464a113b0809e0e9fa7c0100bb6634fe38465af95aa04efa49541d64250b8ed"},
|
||||
{"name":"gitlab-dangerfiles","version":"4.9.2","platform":"ruby","checksum":"d5c050f685d8720f6e70191a7d1216854d860dbdea5b455f87abe7542e005798"},
|
||||
{"name":"gitlab-experiment","version":"0.9.1","platform":"ruby","checksum":"f230ee742154805a755d5f2539dc44d93cdff08c5bbbb7656018d61f93d01f48"},
|
||||
{"name":"gitlab-fog-azure-rm","version":"2.2.0","platform":"ruby","checksum":"31aa7c2170f57874053144e7f716ec9e15f32e71ffbd2c56753dce46e2e78ba9"},
|
||||
|
@ -629,7 +629,7 @@ GEM
|
||||
faraday (>= 1, < 3)
|
||||
faraday-http-cache (2.5.0)
|
||||
faraday (>= 0.8)
|
||||
faraday-multipart (1.1.0)
|
||||
faraday-multipart (1.1.1)
|
||||
multipart-post (~> 2.0)
|
||||
faraday-net_http (3.1.0)
|
||||
net-http
|
||||
@ -747,7 +747,7 @@ GEM
|
||||
gitlab-cloud-connector (1.20.0)
|
||||
activesupport (~> 7.0)
|
||||
jwt (~> 2.9.3)
|
||||
gitlab-crystalball (1.1.0)
|
||||
gitlab-crystalball (1.1.1)
|
||||
git (< 4)
|
||||
ostruct (< 1)
|
||||
gitlab-dangerfiles (4.9.2)
|
||||
|
@ -162,7 +162,7 @@
|
||||
{"name":"faraday","version":"2.13.1","platform":"ruby","checksum":"cc531eb5467e7d74d4517630fa96f1a7003647cbf20a9a3e067d098941217b75"},
|
||||
{"name":"faraday-follow_redirects","version":"0.3.0","platform":"ruby","checksum":"d92d975635e2c7fe525dd494fcd4b9bb7f0a4a0ec0d5f4c15c729530fdb807f9"},
|
||||
{"name":"faraday-http-cache","version":"2.5.0","platform":"ruby","checksum":"64b7366d66e508e1c3dd855ebb20ce9da429330e412a23d9ebbc0a7a7b227463"},
|
||||
{"name":"faraday-multipart","version":"1.1.0","platform":"ruby","checksum":"856b0f1c7316a4d6c052dd2eef5c42f887d56d93a171fe8880da1af064ca0751"},
|
||||
{"name":"faraday-multipart","version":"1.1.1","platform":"ruby","checksum":"77a18ff40149030fd1aef55bb4fc7a67ce46419a8a3fcd010e28c2526e8d8903"},
|
||||
{"name":"faraday-net_http","version":"3.1.0","platform":"ruby","checksum":"1627be414960d0131691190ff524506ba6607402a50fb6eccda9e64ca60f859f"},
|
||||
{"name":"faraday-net_http_persistent","version":"2.1.0","platform":"ruby","checksum":"b41720b13f56dae77114d9de54baef2d76d0b06ab40d695b2a98e254b56ade0b"},
|
||||
{"name":"faraday-retry","version":"2.2.1","platform":"ruby","checksum":"4146fed14549c0580bf14591fca419a40717de0dd24f267a8ec2d9a728677608"},
|
||||
@ -219,7 +219,7 @@
|
||||
{"name":"gitlab","version":"4.19.0","platform":"ruby","checksum":"3f645e3e195dbc24f0834fbf83e8ccfb2056d8e9712b01a640aad418a6949679"},
|
||||
{"name":"gitlab-chronic","version":"0.10.6","platform":"ruby","checksum":"a244d11a1396d2aac6ae9b2f326adf1605ec1ad20c29f06e8b672047d415a9ac"},
|
||||
{"name":"gitlab-cloud-connector","version":"1.20.0","platform":"ruby","checksum":"259a703e2c635128a1d259d90f2b38edfaefd0b812332b363ed9cdca3200aa45"},
|
||||
{"name":"gitlab-crystalball","version":"1.1.0","platform":"ruby","checksum":"bd314742a89cad8cb858fec41fc5282ff64ccf262cffa1d5b118f053c5c382a8"},
|
||||
{"name":"gitlab-crystalball","version":"1.1.1","platform":"ruby","checksum":"0464a113b0809e0e9fa7c0100bb6634fe38465af95aa04efa49541d64250b8ed"},
|
||||
{"name":"gitlab-dangerfiles","version":"4.9.2","platform":"ruby","checksum":"d5c050f685d8720f6e70191a7d1216854d860dbdea5b455f87abe7542e005798"},
|
||||
{"name":"gitlab-experiment","version":"0.9.1","platform":"ruby","checksum":"f230ee742154805a755d5f2539dc44d93cdff08c5bbbb7656018d61f93d01f48"},
|
||||
{"name":"gitlab-fog-azure-rm","version":"2.2.0","platform":"ruby","checksum":"31aa7c2170f57874053144e7f716ec9e15f32e71ffbd2c56753dce46e2e78ba9"},
|
||||
|
@ -623,7 +623,7 @@ GEM
|
||||
faraday (>= 1, < 3)
|
||||
faraday-http-cache (2.5.0)
|
||||
faraday (>= 0.8)
|
||||
faraday-multipart (1.1.0)
|
||||
faraday-multipart (1.1.1)
|
||||
multipart-post (~> 2.0)
|
||||
faraday-net_http (3.1.0)
|
||||
net-http
|
||||
@ -741,7 +741,7 @@ GEM
|
||||
gitlab-cloud-connector (1.20.0)
|
||||
activesupport (~> 7.0)
|
||||
jwt (~> 2.9.3)
|
||||
gitlab-crystalball (1.1.0)
|
||||
gitlab-crystalball (1.1.1)
|
||||
git (< 4)
|
||||
ostruct (< 1)
|
||||
gitlab-dangerfiles (4.9.2)
|
||||
|
@ -21,7 +21,8 @@ module ResolvesGroups
|
||||
dependency_proxy_setting: [:dependency_proxy_setting],
|
||||
analyzer_statuses: [:analyzer_group_statuses],
|
||||
marked_for_deletion: [:deletion_schedule],
|
||||
marked_for_deletion_on: [:deletion_schedule]
|
||||
marked_for_deletion_on: [:deletion_schedule],
|
||||
is_self_deletion_scheduled: [:deletion_schedule]
|
||||
}.freeze
|
||||
|
||||
def resolve_with_lookahead(...)
|
||||
|
@ -382,6 +382,12 @@ module Types
|
||||
method: :self_deletion_in_progress?,
|
||||
experiment: { milestone: '18.2' }
|
||||
|
||||
field :is_self_deletion_scheduled, GraphQL::Types::Boolean,
|
||||
null: false,
|
||||
description: 'Indicates if group deletion is scheduled.',
|
||||
method: :self_deletion_scheduled?,
|
||||
experiment: { milestone: '18.2' }
|
||||
|
||||
def label(title:)
|
||||
BatchLoader::GraphQL.for(title).batch(key: group) do |titles, loader, args|
|
||||
LabelsFinder
|
||||
|
@ -98,6 +98,9 @@ class GroupChildEntity < Grape::Entity
|
||||
# For both group and project
|
||||
expose :self_deletion_in_progress?, as: :is_self_deletion_in_progress
|
||||
|
||||
# For both group and project
|
||||
expose :self_deletion_scheduled?, as: :is_self_deletion_scheduled
|
||||
|
||||
private
|
||||
|
||||
def access_group_counts?(group)
|
||||
|
@ -0,0 +1,22 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class FinalizeBackfillOnboardingStatusRegistrationObjective < Gitlab::Database::Migration[2.3]
|
||||
milestone '18.2'
|
||||
|
||||
disable_ddl_transaction!
|
||||
restrict_gitlab_migration gitlab_schema: :gitlab_main
|
||||
|
||||
def up
|
||||
ensure_batched_background_migration_is_finished(
|
||||
job_class_name: 'BackfillOnboardingStatusRegistrationObjective',
|
||||
table_name: :user_details,
|
||||
column_name: :id,
|
||||
job_arguments: [],
|
||||
finalize: true
|
||||
)
|
||||
end
|
||||
|
||||
def down
|
||||
# no-op
|
||||
end
|
||||
end
|
1
db/schema_migrations/20250625145056
Normal file
1
db/schema_migrations/20250625145056
Normal file
@ -0,0 +1 @@
|
||||
5e9ea448da51802af75ba821eca156251feba56b43ba69958661e5b73de8e914
|
@ -12191,6 +12191,31 @@ Input type: `UpdatePackagesProtectionRuleInput`
|
||||
| <a id="mutationupdatepackagesprotectionruleerrors"></a>`errors` | [`[String!]!`](#string) | Errors encountered during the mutation. |
|
||||
| <a id="mutationupdatepackagesprotectionrulepackageprotectionrule"></a>`packageProtectionRule` | [`PackagesProtectionRule`](#packagesprotectionrule) | Packages protection rule after mutation. |
|
||||
|
||||
### `Mutation.updateProjectComplianceViolation`
|
||||
|
||||
{{< details >}}
|
||||
**Introduced** in GitLab 18.2.
|
||||
**Status**: Experiment.
|
||||
{{< /details >}}
|
||||
|
||||
Input type: `UpdateProjectComplianceViolationInput`
|
||||
|
||||
#### Arguments
|
||||
|
||||
| Name | Type | Description |
|
||||
| ---- | ---- | ----------- |
|
||||
| <a id="mutationupdateprojectcomplianceviolationclientmutationid"></a>`clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. |
|
||||
| <a id="mutationupdateprojectcomplianceviolationid"></a>`id` | [`ComplianceManagementProjectsComplianceViolationID!`](#compliancemanagementprojectscomplianceviolationid) | Global ID of the project compliance violation to update. |
|
||||
| <a id="mutationupdateprojectcomplianceviolationstatus"></a>`status` | [`ComplianceViolationStatus!`](#complianceviolationstatus) | New status for the project compliance violation. |
|
||||
|
||||
#### Fields
|
||||
|
||||
| Name | Type | Description |
|
||||
| ---- | ---- | ----------- |
|
||||
| <a id="mutationupdateprojectcomplianceviolationclientmutationid"></a>`clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. |
|
||||
| <a id="mutationupdateprojectcomplianceviolationcomplianceviolation"></a>`complianceViolation` | [`ProjectComplianceViolation`](#projectcomplianceviolation) | Compliance violation after status update. |
|
||||
| <a id="mutationupdateprojectcomplianceviolationerrors"></a>`errors` | [`[String!]!`](#string) | Errors encountered during the mutation. |
|
||||
|
||||
### `Mutation.updateRequirement`
|
||||
|
||||
Input type: `UpdateRequirementInput`
|
||||
@ -28478,6 +28503,7 @@ GPG signature for a signed commit.
|
||||
| <a id="groupid"></a>`id` | [`ID`](#id) | ID of the group. |
|
||||
| <a id="groupislinkedtosubscription"></a>`isLinkedToSubscription` | [`Boolean`](#boolean) | Indicates if group is linked to a subscription. |
|
||||
| <a id="groupisselfdeletioninprogress"></a>`isSelfDeletionInProgress` {{< icon name="warning-solid" >}} | [`Boolean!`](#boolean) | **Introduced** in GitLab 18.2. **Status**: Experiment. Indicates if group deletion is in progress. |
|
||||
| <a id="groupisselfdeletionscheduled"></a>`isSelfDeletionScheduled` {{< icon name="warning-solid" >}} | [`Boolean!`](#boolean) | **Introduced** in GitLab 18.2. **Status**: Experiment. Indicates if group deletion is scheduled. |
|
||||
| <a id="grouplfsenabled"></a>`lfsEnabled` | [`Boolean`](#boolean) | Indicates if Large File Storage (LFS) is enabled for namespace. |
|
||||
| <a id="grouplicensedfeatures"></a>`licensedFeatures` {{< icon name="warning-solid" >}} | [`NamespaceLicensedFeatures!`](#namespacelicensedfeatures) | **Introduced** in GitLab 18.1. **Status**: Experiment. Licensed features available on the namespace. |
|
||||
| <a id="grouplifecycles"></a>`lifecycles` {{< icon name="warning-solid" >}} | [`WorkItemLifecycleConnection`](#workitemlifecycleconnection) | **Introduced** in GitLab 18.1. **Status**: Experiment. Lifecycles of work items available to the namespace. |
|
||||
|
@ -15,7 +15,7 @@ Below are available schemas related to Cells and Organizations:
|
||||
| ------ | ----------- |
|
||||
| `gitlab_main` (deprecated) | This is being replaced with `gitlab_main_cell`, for the purpose of building the [Cells](https://handbook.gitlab.com/handbook/engineering/architecture/design-documents/cells/) architecture. |
|
||||
| `gitlab_main_cell`| To be renamed to `gitlab_main_org`. Use for all tables in the `main:` database that are for an Organization. For example, `projects` and `groups` |
|
||||
| `gitlab_main_cell_setting` | All tables in the `main:` database related to cell settings. For example, `application_settings`. |
|
||||
| `gitlab_main_cell_setting` | All tables in the `main:` database related to cell settings. For example, `application_settings`. These cell-local tables should not have any foreign key references from/to organization tables. |
|
||||
| `gitlab_main_clusterwide` (deprecated) | All tables in the `main:` database where all rows, or a subset of rows needs to be present across the cluster, in the [Cells](https://handbook.gitlab.com/handbook/engineering/architecture/design-documents/cells/) architecture. For example, `plans`. For the [Cells 1.0 architecture](https://handbook.gitlab.com/handbook/engineering/architecture/design-documents/cells/iterations/cells-1.0/), there are no real clusterwide tables as each cell will have its own database. In effect, these tables will still be stored locally in each cell. |
|
||||
| `gitlab_main_cell_local` | For tables in the `main:` database that are related to features that is distinct for each cell. For example, `zoekt_nodes`, or `shards`. These cell-local tables should not have any foreign key references from/to organization tables. |
|
||||
| `gitlab_ci` | Use for all tables in the `ci:` database that are for an Organization. For example, `ci_pipelines` and `ci_builds` |
|
||||
|
@ -65,7 +65,7 @@ Follow these guidelines when you document GitLab Duo features.
|
||||
|
||||
When documenting a GitLab Duo experiment:
|
||||
|
||||
- On the [top-level GitLab Duo page](../../user/gitlab_duo/feature_summary.md):
|
||||
- On the [GitLab Duo feature summary page](../../user/gitlab_duo/feature_summary.md):
|
||||
- Add a row to the table.
|
||||
- Add the feature to an area at the top of the page, near other features that are available
|
||||
during a similar stage of the software development lifecycle.
|
||||
@ -80,7 +80,7 @@ When documenting a GitLab Duo experiment:
|
||||
|
||||
When a GitLab Duo experiment moves to beta:
|
||||
|
||||
- On the [top-level GitLab Duo page](../../user/gitlab_duo/feature_summary.md),
|
||||
- On the [GitLab Duo feature summary page](../../user/gitlab_duo/feature_summary.md),
|
||||
update the row in the table.
|
||||
- Make sure you update the history and status values, including any
|
||||
[add-on information](styleguide/availability_details.md#add-ons).
|
||||
@ -92,8 +92,8 @@ When a GitLab Duo experiment moves to beta:
|
||||
|
||||
When a GitLab Duo feature becomes generally available:
|
||||
|
||||
- On the [top-level GitLab Duo page](../../user/gitlab_duo/feature_summary.md),
|
||||
update the row in the table.
|
||||
- On the [GitLab Duo feature summary page](../../user/gitlab_duo/feature_summary.md),
|
||||
move the feature to the GA table.
|
||||
- Make sure you update the history and status values, including any
|
||||
[add-on information](styleguide/availability_details.md#add-ons).
|
||||
- For features that are part of the [Early Access Program](../../policy/early_access_program/_index.md#add-a-feature-to-the-program)
|
||||
|
@ -216,6 +216,7 @@ Audit event types belong to the following product categories.
|
||||
| [`update_approval_rules`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/89939) | Updating a merge approval rule | {{< icon name="check-circle" >}} Yes | GitLab [15.2](https://gitlab.com/gitlab-org/gitlab/-/issues/363092) | Project |
|
||||
| [`update_compliance_framework`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74292) | A compliance framework is updated | {{< icon name="check-circle" >}} Yes | GitLab [14.6](https://gitlab.com/gitlab-org/gitlab/-/issues/340649) | Group |
|
||||
| [`update_compliance_requirement`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/169485) | A compliance framework requirement is updated. | {{< icon name="check-circle" >}} Yes | GitLab [17.7](https://gitlab.com/gitlab-org/gitlab/-/issues/470695) | Group |
|
||||
| [`update_project_compliance_violation`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/195768) | Project compliance violation is updated | {{< icon name="check-circle" >}} Yes | GitLab [18.2](https://gitlab.com/gitlab-org/gitlab/-/issues/542343) | Project |
|
||||
| [`update_status_check`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/84624) | An external status check is updated | {{< icon name="check-circle" >}} Yes | GitLab [15.9](https://gitlab.com/gitlab-org/gitlab/-/issues/355805) | Project |
|
||||
| [`updated_compliance_requirement_control`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/177557) | Compliance requirement control updated. | {{< icon name="check-circle" >}} Yes | GitLab [17.9](https://gitlab.com/gitlab-org/gitlab/-/issues/512381) | Group |
|
||||
|
||||
|
@ -4401,9 +4401,6 @@ msgstr ""
|
||||
msgid "AdminSelfHostedModels|Assign a model to enable this feature"
|
||||
msgstr ""
|
||||
|
||||
msgid "AdminSelfHostedModels|Assign a model to the %{subFeatureTitle} sub-feature before applying to all"
|
||||
msgstr ""
|
||||
|
||||
msgid "AdminSelfHostedModels|Create self-hosted model"
|
||||
msgstr ""
|
||||
|
||||
@ -56584,7 +56581,7 @@ msgstr ""
|
||||
msgid "SecurityOrchestration|Run a %{scannerStart}%{scanner}%{scannerEnd} scan with the following options:"
|
||||
msgstr ""
|
||||
|
||||
msgid "SecurityOrchestration|Runs comprehensive scans during release processes and when merging to main/production branches"
|
||||
msgid "SecurityOrchestration|Runs comprehensive scans for `release/*` branches and when merging to main/production branches"
|
||||
msgstr ""
|
||||
|
||||
msgid "SecurityOrchestration|Runs scans on a schedule for maintenance and continuous monitoring of protected branches"
|
||||
|
@ -310,6 +310,7 @@ RSpec.describe GitlabSchema.types['Group'], feature_category: :groups_and_projec
|
||||
markedForDeletion
|
||||
markedForDeletionOn
|
||||
permanentDeletionDate
|
||||
isSelfDeletionScheduled
|
||||
}
|
||||
}
|
||||
)
|
||||
@ -324,7 +325,8 @@ RSpec.describe GitlabSchema.types['Group'], feature_category: :groups_and_projec
|
||||
{
|
||||
marked_for_deletion: result.dig('data', 'group', 'markedForDeletion'),
|
||||
marked_for_deletion_on: result.dig('data', 'group', 'markedForDeletionOn'),
|
||||
permanent_deletion_date: result.dig('data', 'group', 'permanentDeletionDate')
|
||||
permanent_deletion_date: result.dig('data', 'group', 'permanentDeletionDate'),
|
||||
is_self_deletion_scheduled: result.dig('data', 'group', 'isSelfDeletionScheduled')
|
||||
}
|
||||
end
|
||||
|
||||
@ -333,6 +335,10 @@ RSpec.describe GitlabSchema.types['Group'], feature_category: :groups_and_projec
|
||||
expect(group_data[:marked_for_deletion]).to be true
|
||||
end
|
||||
|
||||
it 'is_self_deletion_scheduled returns true' do
|
||||
expect(group_data[:is_self_deletion_scheduled]).to be true
|
||||
end
|
||||
|
||||
it 'marked_for_deletion_on returns correct date' do
|
||||
expect(Time.zone.parse(group_data[:marked_for_deletion_on]))
|
||||
.to eq(pending_delete_group.marked_for_deletion_on.iso8601)
|
||||
@ -353,6 +359,10 @@ RSpec.describe GitlabSchema.types['Group'], feature_category: :groups_and_projec
|
||||
expect(group_data[:marked_for_deletion]).to be true
|
||||
end
|
||||
|
||||
it 'is_self_deletion_scheduled returns false' do
|
||||
expect(group_data[:is_self_deletion_scheduled]).to be false
|
||||
end
|
||||
|
||||
it 'marked_for_deletion_on returns nil' do
|
||||
expect(group_data[:marked_for_deletion_on]).to be_nil
|
||||
end
|
||||
|
@ -147,6 +147,14 @@ RSpec.describe GroupChildEntity, feature_category: :groups_and_projects do
|
||||
expect(described_class.new(group, request: request).as_json[:marked_for_deletion_on]).to eq(date)
|
||||
end
|
||||
|
||||
it 'returns is_self_deletion_scheduled as true for top group' do
|
||||
expect(described_class.new(group, request: request).as_json[:is_self_deletion_scheduled]).to eq(true)
|
||||
end
|
||||
|
||||
it 'returns is_self_deletion_scheduled as false for subgroups' do
|
||||
expect(described_class.new(subgroup, request: request).as_json[:is_self_deletion_scheduled]).to eq(false)
|
||||
end
|
||||
|
||||
it 'returns permanent_deletion_date as the date the group will be deleted' do
|
||||
expect(described_class.new(group, request: request).as_json[:permanent_deletion_date]).to eq((date + deletion_adjourned_period.days).strftime('%F'))
|
||||
end
|
||||
|
Reference in New Issue
Block a user