Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# frozen_string_literal: true

class ChangeRoleProjectAssignmentFkToCascade < Code0::ZeroTrack::Database::Migration[1.0]
def change
remove_foreign_key :namespace_role_project_assignments, :namespace_roles, column: :role_id

add_foreign_key :namespace_role_project_assignments, :namespace_roles, column: :role_id, on_delete: :cascade
end
end
1 change: 1 addition & 0 deletions db/schema_migrations/20260708120000
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
6ce443e0ec07185edb85eb55ae866acc8c9f66c67170e98a3fd0b86e5df8ef15
2 changes: 1 addition & 1 deletion db/structure.sql
Original file line number Diff line number Diff line change
Expand Up @@ -1798,7 +1798,7 @@ ALTER TABLE ONLY runtime_function_definition_data_type_links
ADD CONSTRAINT fk_rails_5a52fd74a0 FOREIGN KEY (referenced_data_type_id) REFERENCES data_types(id) ON DELETE RESTRICT;

ALTER TABLE ONLY namespace_role_project_assignments
ADD CONSTRAINT fk_rails_623f8a5b72 FOREIGN KEY (role_id) REFERENCES namespace_roles(id);
ADD CONSTRAINT fk_rails_623f8a5b72 FOREIGN KEY (role_id) REFERENCES namespace_roles(id) ON DELETE CASCADE;

ALTER TABLE ONLY runtime_function_definition_data_type_links
ADD CONSTRAINT fk_rails_64dd235e33 FOREIGN KEY (runtime_function_definition_id) REFERENCES runtime_function_definitions(id) ON DELETE CASCADE;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,26 @@
target_type: 'Namespace'
)
end

context 'when role is assigned to a project' do
before do
create(:namespace_role_project_assignment,
role: namespace_role,
project: create(:namespace_project, namespace: namespace))
end

it 'deletes namespace role' do
mutate!

expect(graphql_data_at(:namespaces_roles_delete, :namespace_role, :id)).to be_present

expect(
SagittariusSchema.object_from_id(
graphql_data_at(:namespaces_roles_delete, :namespace_role, :id)
)
).to be_nil
end
end
end

context 'when user is not a member of the namespace' do
Expand Down