#-- copyright # OpenProject is an open source project management software. # Copyright (C) 2012-2020 the OpenProject GmbH # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License version 3. # # OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: # Copyright (C) 2006-2017 Jean-Philippe Lang # Copyright (C) 2010-2013 the ChiliProject Team # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # See docs/COPYRIGHT.rdoc for more details. #++ require File.dirname(__FILE__) + '/../spec_helper' describe 'MeetingAgenda', type: :model do before(:each) do @a = FactoryBot.build :meeting_agenda, text: "Some content...\n\nMore content!\n\nExtraordinary content!!" end # TODO: Test the right user and messages are set in the history describe '#lock!' do it 'locks the agenda' do @a.save @a.reload @a.lock! @a.reload expect(@a.locked).to be_truthy end end describe '#unlock!' do it 'unlocks the agenda' do @a.locked = true @a.save @a.reload @a.unlock! @a.reload expect(@a.locked).to be_falsey end end # a meeting agenda is editable when it is not locked describe '#editable?' do it 'is editable when not locked' do @a.locked = false expect(@a.editable?).to be_truthy end it 'is not editable when locked' do @a.locked = true expect(@a.editable?).to be_falsey end end end