Files
gitlabhq/spec/migrations/migrate_custom_permissions_spec.rb
2024-03-27 12:12:31 +00:00

27 lines
1001 B
Ruby

# frozen_string_literal: true
require 'spec_helper'
require_migration!
RSpec.describe MigrateCustomPermissions, feature_category: :permissions do
let(:member_roles) { table(:member_roles) }
let!(:member_role_a) { member_roles.create!(name: 'a', base_access_level: 10, read_code: true) }
let!(:member_role_b) { member_roles.create!(name: 'b', base_access_level: 10, archive_project: true) }
let(:boolean_permissions_where) { { read_code: true } }
let(:jsonb_permissions_where) { "member_roles.permissions @> ('{\"read_code\":true}')::jsonb" }
it 'correctly migrates up and down' do
disable_migrations_output do
reversible_migration do |migration|
migration.before -> {
expect(member_roles.where(boolean_permissions_where).pluck(:id)).to contain_exactly(member_role_a.id)
}
migration.after -> {
expect(member_roles.where(jsonb_permissions_where).pluck(:id)).to contain_exactly(member_role_a.id)
}
end
end
end
end