Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
6d3c75444a
commit
7d96316836
|
@ -61,11 +61,13 @@ export default {
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template #right-secondary>
|
<template #right-secondary>
|
||||||
<gl-sprintf :message="__('Created %{timestamp}')">
|
<span>
|
||||||
<template #timestamp>
|
<gl-sprintf :message="__('Created %{timestamp}')">
|
||||||
<time-ago-tooltip :time="packageEntity.createdAt" />
|
<template #timestamp>
|
||||||
</template>
|
<time-ago-tooltip :time="packageEntity.createdAt" />
|
||||||
</gl-sprintf>
|
</template>
|
||||||
|
</gl-sprintf>
|
||||||
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</list-item>
|
</list-item>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -152,11 +152,13 @@ module Ci
|
||||||
}
|
}
|
||||||
|
|
||||||
scope :owned_or_instance_wide, -> (project_id) do
|
scope :owned_or_instance_wide, -> (project_id) do
|
||||||
|
project = project_id.respond_to?(:shared_runners) ? project_id : Project.find(project_id)
|
||||||
|
|
||||||
from_union(
|
from_union(
|
||||||
[
|
[
|
||||||
belonging_to_project(project_id),
|
belonging_to_project(project_id),
|
||||||
belonging_to_parent_group_of_project(project_id),
|
belonging_to_parent_group_of_project(project_id),
|
||||||
instance_type
|
project.shared_runners
|
||||||
],
|
],
|
||||||
remove_duplicates: false
|
remove_duplicates: false
|
||||||
)
|
)
|
||||||
|
@ -173,7 +175,7 @@ module Ci
|
||||||
from_union(
|
from_union(
|
||||||
[
|
[
|
||||||
group_and_ancestor_runners,
|
group_and_ancestor_runners,
|
||||||
instance_type
|
group.shared_runners
|
||||||
],
|
],
|
||||||
remove_duplicates: false
|
remove_duplicates: false
|
||||||
)
|
)
|
||||||
|
|
|
@ -492,6 +492,10 @@ class Namespace < ApplicationRecord
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def shared_runners
|
||||||
|
@shared_runners ||= shared_runners_enabled ? Ci::Runner.instance_type : Ci::Runner.none
|
||||||
|
end
|
||||||
|
|
||||||
def root?
|
def root?
|
||||||
!has_parent?
|
!has_parent?
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
- name: "REST API endpoint to list group runners no longer accepts `project_type` value for `type` argument"
|
||||||
|
announcement_milestone: "14.8"
|
||||||
|
announcement_date: "2022-02-22"
|
||||||
|
removal_milestone: "15.0"
|
||||||
|
removal_date: "2022-05-22"
|
||||||
|
breaking_change: true
|
||||||
|
reporter: pedropombeiro
|
||||||
|
body: |
|
||||||
|
The `GET /groups/:id/runners?type=project_type` endpoint will be removed in GitLab 15.0. The endpoint always returned an empty collection.
|
||||||
|
stage: Verify
|
||||||
|
tiers: [Core, Premium, Ultimate]
|
||||||
|
issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/351466
|
||||||
|
documentation_url: https://docs.gitlab.com/ee/api/runners.html
|
||||||
|
image_url: # (optional) This is a link to a thumbnail image depicting the feature
|
||||||
|
video_url: # (optional) Use the youtube thumbnail URL with the structure of https://img.youtube.com/vi/UNIQUEID/hqdefault.jpg
|
|
@ -11191,7 +11191,7 @@ four standard [pagination arguments](#connection-pagination-arguments):
|
||||||
| <a id="groupiterationsin"></a>`in` | [`[IterationSearchableField!]`](#iterationsearchablefield) | Fields in which the fuzzy-search should be performed with the query given in the argument `search`. Defaults to `[title]`. |
|
| <a id="groupiterationsin"></a>`in` | [`[IterationSearchableField!]`](#iterationsearchablefield) | Fields in which the fuzzy-search should be performed with the query given in the argument `search`. Defaults to `[title]`. |
|
||||||
| <a id="groupiterationsincludeancestors"></a>`includeAncestors` | [`Boolean`](#boolean) | Whether to include ancestor iterations. Defaults to true. |
|
| <a id="groupiterationsincludeancestors"></a>`includeAncestors` | [`Boolean`](#boolean) | Whether to include ancestor iterations. Defaults to true. |
|
||||||
| <a id="groupiterationsiterationcadenceids"></a>`iterationCadenceIds` | [`[IterationsCadenceID!]`](#iterationscadenceid) | Global iteration cadence IDs by which to look up the iterations. |
|
| <a id="groupiterationsiterationcadenceids"></a>`iterationCadenceIds` | [`[IterationsCadenceID!]`](#iterationscadenceid) | Global iteration cadence IDs by which to look up the iterations. |
|
||||||
| <a id="groupiterationssearch"></a>`search` | [`String`](#string) | Query used for fuzzy-searching in the fields selected in the argument `in`. |
|
| <a id="groupiterationssearch"></a>`search` | [`String`](#string) | Query used for fuzzy-searching in the fields selected in the argument `in`. Returns all iterations if empty. |
|
||||||
| <a id="groupiterationssort"></a>`sort` | [`IterationSort`](#iterationsort) | List iterations by sort order. If unspecified, an arbitrary order (subject to change) is used. |
|
| <a id="groupiterationssort"></a>`sort` | [`IterationSort`](#iterationsort) | List iterations by sort order. If unspecified, an arbitrary order (subject to change) is used. |
|
||||||
| <a id="groupiterationsstartdate"></a>`startDate` **{warning-solid}** | [`Time`](#time) | **Deprecated** in 13.5. Use timeframe.start. |
|
| <a id="groupiterationsstartdate"></a>`startDate` **{warning-solid}** | [`Time`](#time) | **Deprecated** in 13.5. Use timeframe.start. |
|
||||||
| <a id="groupiterationsstate"></a>`state` | [`IterationState`](#iterationstate) | Filter iterations by state. |
|
| <a id="groupiterationsstate"></a>`state` | [`IterationState`](#iterationstate) | Filter iterations by state. |
|
||||||
|
@ -13935,7 +13935,7 @@ four standard [pagination arguments](#connection-pagination-arguments):
|
||||||
| <a id="projectiterationsin"></a>`in` | [`[IterationSearchableField!]`](#iterationsearchablefield) | Fields in which the fuzzy-search should be performed with the query given in the argument `search`. Defaults to `[title]`. |
|
| <a id="projectiterationsin"></a>`in` | [`[IterationSearchableField!]`](#iterationsearchablefield) | Fields in which the fuzzy-search should be performed with the query given in the argument `search`. Defaults to `[title]`. |
|
||||||
| <a id="projectiterationsincludeancestors"></a>`includeAncestors` | [`Boolean`](#boolean) | Whether to include ancestor iterations. Defaults to true. |
|
| <a id="projectiterationsincludeancestors"></a>`includeAncestors` | [`Boolean`](#boolean) | Whether to include ancestor iterations. Defaults to true. |
|
||||||
| <a id="projectiterationsiterationcadenceids"></a>`iterationCadenceIds` | [`[IterationsCadenceID!]`](#iterationscadenceid) | Global iteration cadence IDs by which to look up the iterations. |
|
| <a id="projectiterationsiterationcadenceids"></a>`iterationCadenceIds` | [`[IterationsCadenceID!]`](#iterationscadenceid) | Global iteration cadence IDs by which to look up the iterations. |
|
||||||
| <a id="projectiterationssearch"></a>`search` | [`String`](#string) | Query used for fuzzy-searching in the fields selected in the argument `in`. |
|
| <a id="projectiterationssearch"></a>`search` | [`String`](#string) | Query used for fuzzy-searching in the fields selected in the argument `in`. Returns all iterations if empty. |
|
||||||
| <a id="projectiterationssort"></a>`sort` | [`IterationSort`](#iterationsort) | List iterations by sort order. If unspecified, an arbitrary order (subject to change) is used. |
|
| <a id="projectiterationssort"></a>`sort` | [`IterationSort`](#iterationsort) | List iterations by sort order. If unspecified, an arbitrary order (subject to change) is used. |
|
||||||
| <a id="projectiterationsstartdate"></a>`startDate` **{warning-solid}** | [`Time`](#time) | **Deprecated** in 13.5. Use timeframe.start. |
|
| <a id="projectiterationsstartdate"></a>`startDate` **{warning-solid}** | [`Time`](#time) | **Deprecated** in 13.5. Use timeframe.start. |
|
||||||
| <a id="projectiterationsstate"></a>`state` | [`IterationState`](#iterationstate) | Filter iterations by state. |
|
| <a id="projectiterationsstate"></a>`state` | [`IterationState`](#iterationstate) | Filter iterations by state. |
|
||||||
|
|
|
@ -448,7 +448,7 @@ Example response:
|
||||||
|
|
||||||
## List project's runners
|
## List project's runners
|
||||||
|
|
||||||
List all runners available in the project, including from ancestor groups and any shared runners.
|
List all runners available in the project, including from ancestor groups and [any allowed shared runners](../ci/runners/runners_scope.md#enable-shared-runners).
|
||||||
|
|
||||||
```plaintext
|
```plaintext
|
||||||
GET /projects/:id/runners
|
GET /projects/:id/runners
|
||||||
|
@ -566,7 +566,7 @@ curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://git
|
||||||
|
|
||||||
## List group's runners
|
## List group's runners
|
||||||
|
|
||||||
List all runners available in the group as well as its ancestor groups, including any shared runners.
|
List all runners available in the group as well as its ancestor groups, including [any allowed shared runners](../ci/runners/runners_scope.md#enable-shared-runners).
|
||||||
|
|
||||||
```plaintext
|
```plaintext
|
||||||
GET /groups/:id/runners
|
GET /groups/:id/runners
|
||||||
|
@ -576,13 +576,13 @@ GET /groups/:id/runners/all?paused=true
|
||||||
GET /groups/:id/runners?tag_list=tag1,tag2
|
GET /groups/:id/runners?tag_list=tag1,tag2
|
||||||
```
|
```
|
||||||
|
|
||||||
| Attribute | Type | Required | Description |
|
| Attribute | Type | Required | Description |
|
||||||
|------------|----------------|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|------------|----------------|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| `id` | integer | yes | The ID of the group owned by the authenticated user |
|
| `id` | integer | yes | The ID of the group owned by the authenticated user |
|
||||||
| `type` | string | no | The type of runners to show, one of: `instance_type`, `group_type`, `project_type` |
|
| `type` | string | no | The type of runners to show, one of: `instance_type`, `group_type`, `project_type`. The `project_type` value is [deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/351466) and will be removed in GitLab 15.0 |
|
||||||
| `status` | string | no | The status of runners to show, one of: `online` and `offline`. `active` and `paused` are also possible values which were deprecated in GitLab 14.8 and will be removed in GitLab 15.0 |
|
| `status` | string | no | The status of runners to show, one of: `online` and `offline`. `active` and `paused` are also possible values which were deprecated in GitLab 14.8 and will be removed in GitLab 15.0 |
|
||||||
| `paused` | boolean | no | Whether to include only runners that are accepting or ignoring new jobs |
|
| `paused` | boolean | no | Whether to include only runners that are accepting or ignoring new jobs |
|
||||||
| `tag_list` | string array | no | List of the runner's tags |
|
| `tag_list` | string array | no | List of the runner's tags |
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/9/runners"
|
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/9/runners"
|
||||||
|
|
|
@ -39,7 +39,7 @@ Each metric is defined in a separate YAML file consisting of a number of fields:
|
||||||
| `product_group` | yes | The [group](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/data/stages.yml) that owns the metric. |
|
| `product_group` | yes | The [group](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/data/stages.yml) that owns the metric. |
|
||||||
| `product_category` | no | The [product category](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/data/categories.yml) for the metric. |
|
| `product_category` | no | The [product category](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/data/categories.yml) for the metric. |
|
||||||
| `value_type` | yes | `string`; one of [`string`, `number`, `boolean`, `object`](https://json-schema.org/understanding-json-schema/reference/type.html). |
|
| `value_type` | yes | `string`; one of [`string`, `number`, `boolean`, `object`](https://json-schema.org/understanding-json-schema/reference/type.html). |
|
||||||
| `status` | yes | `string`; [status](#metric-statuses) of the metric, may be set to `active`, `deprecated`, `removed`, `broken`. |
|
| `status` | yes | `string`; [status](#metric-statuses) of the metric, may be set to `active`, `removed`, `broken`. |
|
||||||
| `time_frame` | yes | `string`; may be set to a value like `7d`, `28d`, `all`, `none`. |
|
| `time_frame` | yes | `string`; may be set to a value like `7d`, `28d`, `all`, `none`. |
|
||||||
| `data_source` | yes | `string`; may be set to a value like `database`, `redis`, `redis_hll`, `prometheus`, `system`. |
|
| `data_source` | yes | `string`; may be set to a value like `database`, `redis`, `redis_hll`, `prometheus`, `system`. |
|
||||||
| `data_category` | yes | `string`; [categories](#data-category) of the metric, may be set to `operational`, `optional`, `subscription`, `standard`. The default value is `optional`.|
|
| `data_category` | yes | `string`; [categories](#data-category) of the metric, may be set to `operational`, `optional`, `subscription`, `standard`. The default value is `optional`.|
|
||||||
|
@ -60,7 +60,6 @@ Metric definitions can have one of the following statuses:
|
||||||
|
|
||||||
- `active`: Metric is used and reports data.
|
- `active`: Metric is used and reports data.
|
||||||
- `broken`: Metric reports broken data (for example, -1 fallback), or does not report data at all. A metric marked as `broken` must also have the `repair_issue_url` attribute.
|
- `broken`: Metric reports broken data (for example, -1 fallback), or does not report data at all. A metric marked as `broken` must also have the `repair_issue_url` attribute.
|
||||||
- `deprecated`: Metric is deprecated and possibly planned to be removed.
|
|
||||||
- `removed`: Metric was removed, but it may appear in Service Ping payloads sent from instances running on older versions of GitLab.
|
- `removed`: Metric was removed, but it may appear in Service Ping payloads sent from instances running on older versions of GitLab.
|
||||||
|
|
||||||
### Metric value_type
|
### Metric value_type
|
||||||
|
|
|
@ -777,6 +777,18 @@ When checking for active runners, specify `paused=false`.
|
||||||
|
|
||||||
**Planned removal milestone: 15.0 (2022-05-22)**
|
**Planned removal milestone: 15.0 (2022-05-22)**
|
||||||
|
|
||||||
|
### REST API endpoint to list group runners no longer accepts `project_type` value for `type` argument
|
||||||
|
|
||||||
|
WARNING:
|
||||||
|
This feature will be changed or removed in 15.0
|
||||||
|
as a [breaking change](https://docs.gitlab.com/ee/development/contributing/#breaking-changes).
|
||||||
|
Before updating GitLab, review the details carefully to determine if you need to make any
|
||||||
|
changes to your code, settings, or workflow.
|
||||||
|
|
||||||
|
The `GET /groups/:id/runners?type=project_type` endpoint will be removed in GitLab 15.0. The endpoint always returned an empty collection.
|
||||||
|
|
||||||
|
**Planned removal milestone: 15.0 (2022-05-22)**
|
||||||
|
|
||||||
### REST and GraphQL API Runner usage of `active` replaced by `paused`
|
### REST and GraphQL API Runner usage of `active` replaced by `paused`
|
||||||
|
|
||||||
WARNING:
|
WARNING:
|
||||||
|
|
|
@ -31854,6 +31854,9 @@ msgstr ""
|
||||||
msgid "SecurityOrchestration|If you are using Auto DevOps, your %{monospacedStart}auto-deploy-values.yaml%{monospacedEnd} file will not be updated if you change a policy in this section. Auto DevOps users should make changes by following the %{linkStart}Container Network Policy documentation%{linkEnd}."
|
msgid "SecurityOrchestration|If you are using Auto DevOps, your %{monospacedStart}auto-deploy-values.yaml%{monospacedEnd} file will not be updated if you change a policy in this section. Auto DevOps users should make changes by following the %{linkStart}Container Network Policy documentation%{linkEnd}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "SecurityOrchestration|Invalid policy type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "SecurityOrchestration|Latest scan"
|
msgid "SecurityOrchestration|Latest scan"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -31872,6 +31875,12 @@ msgstr ""
|
||||||
msgid "SecurityOrchestration|Policies"
|
msgid "SecurityOrchestration|Policies"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "SecurityOrchestration|Policy cannot be enabled for non-existing branches (%{branches})"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "SecurityOrchestration|Policy cannot be enabled without branch information"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "SecurityOrchestration|Policy description"
|
msgid "SecurityOrchestration|Policy description"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -72,12 +72,14 @@ exports[`VersionRow renders 1`] = `
|
||||||
<div
|
<div
|
||||||
class="gl-display-flex gl-align-items-center gl-min-h-6"
|
class="gl-display-flex gl-align-items-center gl-min-h-6"
|
||||||
>
|
>
|
||||||
Created
|
<span>
|
||||||
<time-ago-tooltip-stub
|
Created
|
||||||
cssclass=""
|
<time-ago-tooltip-stub
|
||||||
time="2021-08-10T09:33:54Z"
|
cssclass=""
|
||||||
tooltipplacement="top"
|
time="2021-08-10T09:33:54Z"
|
||||||
/>
|
tooltipplacement="top"
|
||||||
|
/>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -265,10 +265,10 @@ RSpec.describe Ci::Runner do
|
||||||
it_behaves_like '.belonging_to_parent_group_of_project'
|
it_behaves_like '.belonging_to_parent_group_of_project'
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'with existing system wide, group and project runners' do
|
context 'with instance runners sharing enabled' do
|
||||||
# group specific
|
# group specific
|
||||||
let_it_be(:group) { create(:group) }
|
let_it_be(:group) { create(:group, shared_runners_enabled: true) }
|
||||||
let_it_be(:project) { create(:project, group: group) }
|
let_it_be(:project) { create(:project, group: group, shared_runners_enabled: true) }
|
||||||
let_it_be(:group_runner) { create(:ci_runner, :group, groups: [group]) }
|
let_it_be(:group_runner) { create(:ci_runner, :group, groups: [group]) }
|
||||||
|
|
||||||
# project specific
|
# project specific
|
||||||
|
@ -299,6 +299,40 @@ RSpec.describe Ci::Runner do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'with instance runners sharing disabled' do
|
||||||
|
# group specific
|
||||||
|
let_it_be(:group) { create(:group, shared_runners_enabled: false) }
|
||||||
|
let_it_be(:project) { create(:project, group: group, shared_runners_enabled: false) }
|
||||||
|
let_it_be(:group_runner) { create(:ci_runner, :group, groups: [group]) }
|
||||||
|
|
||||||
|
# project specific
|
||||||
|
let_it_be(:project_runner) { create(:ci_runner, :project, projects: [project]) }
|
||||||
|
|
||||||
|
# globally shared
|
||||||
|
let_it_be(:shared_runner) { create(:ci_runner, :instance) }
|
||||||
|
|
||||||
|
describe '.owned_or_instance_wide' do
|
||||||
|
subject { described_class.owned_or_instance_wide(project.id) }
|
||||||
|
|
||||||
|
it 'returns a project specific and a group specific runner' do
|
||||||
|
is_expected.to contain_exactly(group_runner, project_runner)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe '.group_or_instance_wide' do
|
||||||
|
subject { described_class.group_or_instance_wide(group) }
|
||||||
|
|
||||||
|
before do
|
||||||
|
# Ensure the project runner is instantiated
|
||||||
|
project_runner
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'returns a group specific runner' do
|
||||||
|
is_expected.to contain_exactly(group_runner)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe '#display_name' do
|
describe '#display_name' do
|
||||||
it 'returns the description if it has a value' do
|
it 'returns the description if it has a value' do
|
||||||
runner = build(:ci_runner, description: 'Linux/Ruby-1.9.3-p448')
|
runner = build(:ci_runner, description: 'Linux/Ruby-1.9.3-p448')
|
||||||
|
|
|
@ -1048,6 +1048,7 @@ RSpec.describe API::Ci::Runners do
|
||||||
])
|
])
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# TODO: Remove in %15.0 (https://gitlab.com/gitlab-org/gitlab/-/issues/351466)
|
||||||
it 'returns empty result when type does not match' do
|
it 'returns empty result when type does not match' do
|
||||||
get api("/groups/#{group.id}/runners?type=project_type", user)
|
get api("/groups/#{group.id}/runners?type=project_type", user)
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,12 @@ RSpec.shared_examples 'it has loose foreign keys' do
|
||||||
let(:fully_qualified_table_name) { "#{connection.current_schema}.#{table_name}" }
|
let(:fully_qualified_table_name) { "#{connection.current_schema}.#{table_name}" }
|
||||||
let(:deleted_records) { LooseForeignKeys::DeletedRecord.where(fully_qualified_table_name: fully_qualified_table_name) }
|
let(:deleted_records) { LooseForeignKeys::DeletedRecord.where(fully_qualified_table_name: fully_qualified_table_name) }
|
||||||
|
|
||||||
|
around do |example|
|
||||||
|
LooseForeignKeys::DeletedRecord.using_connection(connection) do
|
||||||
|
example.run
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
it 'has at least one loose foreign key definition' do
|
it 'has at least one loose foreign key definition' do
|
||||||
definitions = Gitlab::Database::LooseForeignKeys.definitions_by_table[table_name]
|
definitions = Gitlab::Database::LooseForeignKeys.definitions_by_table[table_name]
|
||||||
expect(definitions.size).to be > 0
|
expect(definitions.size).to be > 0
|
||||||
|
@ -69,7 +75,9 @@ RSpec.shared_examples 'cleanup by a loose foreign key' do
|
||||||
|
|
||||||
expect(find_model).to be_present
|
expect(find_model).to be_present
|
||||||
|
|
||||||
LooseForeignKeys::ProcessDeletedRecordsService.new(connection: model.connection).execute
|
LooseForeignKeys::DeletedRecord.using_connection(parent.connection) do
|
||||||
|
LooseForeignKeys::ProcessDeletedRecordsService.new(connection: parent.connection).execute
|
||||||
|
end
|
||||||
|
|
||||||
if foreign_key_definition.on_delete.eql?(:async_delete)
|
if foreign_key_definition.on_delete.eql?(:async_delete)
|
||||||
expect(find_model).not_to be_present
|
expect(find_model).not_to be_present
|
||||||
|
|
Loading…
Reference in New Issue