diff options
author | Clement Ho <ClemMakesApps@gmail.com> | 2018-02-07 12:45:37 -0600 |
---|---|---|
committer | Clement Ho <ClemMakesApps@gmail.com> | 2018-02-07 12:45:37 -0600 |
commit | a0c0ea655a8659bb1388a6ffc6738754c1c0f9bd (patch) | |
tree | bdf8ca27712e033802868fc09533381484f641ae /spec/models/lfs_file_lock_spec.rb | |
parent | 48c78958e31c666fcba0b253104d47be5b3c82b0 (diff) | |
parent | 8900b23eab6abd5a6c01278fa0da18d5bed98491 (diff) | |
download | gitlab-ce-axios-profile.tar.gz |
Merge branch 'master' into axios-profileaxios-profile
Diffstat (limited to 'spec/models/lfs_file_lock_spec.rb')
-rw-r--r-- | spec/models/lfs_file_lock_spec.rb | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/spec/models/lfs_file_lock_spec.rb b/spec/models/lfs_file_lock_spec.rb new file mode 100644 index 00000000000..ce87b01b49c --- /dev/null +++ b/spec/models/lfs_file_lock_spec.rb @@ -0,0 +1,57 @@ +require 'rails_helper' + +describe LfsFileLock do + set(:lfs_file_lock) { create(:lfs_file_lock) } + subject { lfs_file_lock } + + it { is_expected.to belong_to(:project) } + it { is_expected.to belong_to(:user) } + + it { is_expected.to validate_presence_of(:project_id) } + it { is_expected.to validate_presence_of(:user_id) } + it { is_expected.to validate_presence_of(:path) } + + describe '#can_be_unlocked_by?' do + let(:developer) { create(:user) } + let(:master) { create(:user) } + + before do + project = lfs_file_lock.project + + project.add_developer(developer) + project.add_master(master) + end + + context "when it's forced" do + it 'can be unlocked by the author' do + user = lfs_file_lock.user + + expect(lfs_file_lock.can_be_unlocked_by?(user, true)).to eq(true) + end + + it 'can be unlocked by a master' do + expect(lfs_file_lock.can_be_unlocked_by?(master, true)).to eq(true) + end + + it "can't be unlocked by other user" do + expect(lfs_file_lock.can_be_unlocked_by?(developer, true)).to eq(false) + end + end + + context "when it isn't forced" do + it 'can be unlocked by the author' do + user = lfs_file_lock.user + + expect(lfs_file_lock.can_be_unlocked_by?(user)).to eq(true) + end + + it "can't be unlocked by a master" do + expect(lfs_file_lock.can_be_unlocked_by?(master)).to eq(false) + end + + it "can't be unlocked by other user" do + expect(lfs_file_lock.can_be_unlocked_by?(developer)).to eq(false) + end + end + end +end |