mirror of
https://github.com/gitlabhq/gitlabhq.git
synced 2025-07-25 17:08:32 +00:00
27 lines
1001 B
Ruby
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
|