Remove FactoryBot.* prefix where applicable

This commit is contained in:
Oliver Günther
2022-01-24 19:22:35 +01:00
parent 642a5860fb
commit f08bea3467
1376 changed files with 8551 additions and 8549 deletions
@@ -47,14 +47,14 @@ module DevelopmentData
def create_types!(cfs)
# Create ALL CFs types
non_req_cfs = cfs.reject(&:is_required).map { |cf| "custom_field_#{cf.id}" }
type = FactoryBot.build :type, name: 'All CFS'
type = build :type, name: 'All CFS'
extend_group(type, ['Custom fields', non_req_cfs])
type.save!
print_status '.'
# Create type
req_cfs = cfs.select(&:is_required).map { |cf| "custom_field_#{cf.id}" }
type_req = FactoryBot.build :type, name: 'Required CF'
type_req = build :type, name: 'Required CF'
extend_group(type_req, ['Custom fields', req_cfs])
type_req.save!
print_status '.'
@@ -40,7 +40,7 @@ describe 'rendering the login buttons', js: true do
end
describe 'in a public project', with_settings: { login_required: false } do
let(:public_project) { FactoryBot.build(:project, public: true) }
let(:public_project) { build(:project, public: true) }
it 'renders correctly' do
visit project_path(public_project)
@@ -32,7 +32,7 @@ describe 'layouts/base', type: :view do
describe 'authenticator plugin' do
include Redmine::MenuManager::MenuHelper
helper Redmine::MenuManager::MenuHelper
let(:anonymous) { FactoryBot.build_stubbed(:anonymous) }
let(:anonymous) { build_stubbed(:anonymous) }
before do
allow(view).to receive(:current_menu_item).and_return('overview')
@@ -20,7 +20,7 @@ describe ::Avatars::AvatarController, type: :controller do
end
describe 'when logged in' do
let(:user) { FactoryBot.create :user }
let(:user) { create :user }
before do
login_as user
@@ -4,7 +4,7 @@ require File.expand_path(File.dirname(__FILE__) + '/../../shared_examples')
describe ::Avatars::UsersController, type: :controller do
include_context "there are users with and without avatars"
let(:current_user) { FactoryBot.create :admin }
let(:current_user) { create :admin }
let(:enabled) { true }
before do
@@ -26,7 +26,7 @@ describe ::Avatars::UsersController, type: :controller do
end
context 'as another user' do
let(:current_user) { FactoryBot.create :user }
let(:current_user) { create :user }
before do
get :show, params: { id: target_user.id }
end
@@ -4,7 +4,7 @@ require_relative './shared_avatar_examples'
describe 'My avatar management', type: :feature, js: true do
include Rails.application.routes.url_helpers
let(:user) { FactoryBot.create :user }
let(:user) { create :user }
let(:target_user) { user }
let(:avatar_management_path) { edit_my_avatar_path }
@@ -4,7 +4,7 @@ require_relative './shared_avatar_examples'
describe 'User avatar management', type: :feature, js: true do
include Rails.application.routes.url_helpers
let(:user) { FactoryBot.create :admin }
let(:user) { create :admin }
let(:avatar_management_path) { edit_user_path(target_user, tab: 'avatar') }
before do
@@ -12,12 +12,12 @@ describe 'User avatar management', type: :feature, js: true do
end
context 'when user is admin' do
let(:target_user) { FactoryBot.create :user }
let(:target_user) { create :user }
it_behaves_like 'avatar management'
end
context 'when user is self' do
let(:user) { FactoryBot.create :user }
let(:user) { create :user }
let(:target_user) { user }
it 'forbids the user to access' do
visit avatar_management_path
@@ -26,8 +26,8 @@ describe 'User avatar management', type: :feature, js: true do
end
context 'when user is another user' do
let(:target_user) { FactoryBot.create :user }
let(:user) { FactoryBot.create :user }
let(:target_user) { create :user }
let(:user) { create :user }
it 'forbids the user to access' do
visit avatar_management_path
@@ -36,7 +36,7 @@ describe 'User avatar management', type: :feature, js: true do
end
describe 'none enabled' do
let(:target_user) { FactoryBot.create :user }
let(:target_user) { create :user }
before do
allow(Setting)
@@ -3,9 +3,9 @@ require 'spec_helper'
describe AvatarHelper, type: :helper, with_settings: { protocol: 'http' } do
include AngularHelper
let(:user) { FactoryBot.build_stubbed(:user) }
let(:user) { build_stubbed(:user) }
let(:mail_digest) { Digest::MD5.hexdigest(user.mail) }
let(:avatar_stub) { FactoryBot.build_stubbed(:avatar_attachment) }
let(:avatar_stub) { build_stubbed(:avatar_attachment) }
let(:enable_gravatars) { false }
let(:enable_local_avatars) { false }
@@ -29,8 +29,8 @@
require 'spec_helper'
describe ::API::V3::Users::UserRepresenter do
let(:user) { FactoryBot.build_stubbed(:user, status: 1) }
let(:current_user) { FactoryBot.build_stubbed(:user) }
let(:user) { build_stubbed(:user, status: 1) }
let(:current_user) { build_stubbed(:user) }
let(:representer) { described_class.new(user, current_user: current_user) }
context 'generation' do
+1 -1
View File
@@ -3,7 +3,7 @@ require File.expand_path(File.dirname(__FILE__) + '/../shared_examples')
describe User, type: :model do
include_examples "there are users with and without avatars"
let(:user) { FactoryBot.build :user }
let(:user) { build :user }
specify { expect(user.attachments).to all be_a_kind_of Attachment }
@@ -33,8 +33,8 @@ describe 'API v3 User avatar resource', type: :request, content_type: :json do
include Rack::Test::Methods
include API::V3::Utilities::PathHelper
let(:current_user) { FactoryBot.create(:admin) }
let(:other_user) { FactoryBot.create(:user) }
let(:current_user) { create(:admin) }
let(:other_user) { create(:user) }
subject(:response) { last_response }
@@ -93,8 +93,8 @@ describe 'API v3 User avatar resource', type: :request, content_type: :json do
let(:local_avatars) { true }
let(:other_user) do
u = FactoryBot.create :user
u.attachments = [FactoryBot.build(:avatar_attachment, author: u)]
u = create :user
u.attachments = [build(:avatar_attachment, author: u)]
u
end
@@ -1,10 +1,10 @@
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
describe ::Avatars::UpdateService do
let(:user_without_avatar) { FactoryBot.build_stubbed :user }
let(:user_without_avatar) { build_stubbed :user }
let(:user_with_avatar) do
u = FactoryBot.create :user
u.attachments = [FactoryBot.build(:avatar_attachment, author: u)]
u = create :user
u.attachments = [build(:avatar_attachment, author: u)]
u
end
+6 -6
View File
@@ -23,7 +23,7 @@ shared_examples_for "an action checked for required login" do
end
shared_examples_for "an action requiring login" do
let(:current) { FactoryBot.create(:user) }
let(:current) { create(:user) }
before do
allow(User).to receive(:current).and_return(current)
@@ -49,7 +49,7 @@ shared_examples_for "an action requiring login" do
end
shared_examples_for "an action requiring admin" do
let(:current) { FactoryBot.create(:admin) }
let(:current) { create(:admin) }
before do
allow(User).to receive(:current).and_return(current)
@@ -67,7 +67,7 @@ shared_examples_for "an action requiring admin" do
describe "with being logged in as a normal user" do
before do
allow(User).to receive(:current).and_return FactoryBot.create(:user)
allow(User).to receive(:current).and_return create(:user)
action
end
@@ -91,10 +91,10 @@ shared_examples_for "an action requiring admin" do
end
shared_context "there are users with and without avatars" do
let(:base_path) { File.expand_path 'fixtures', __dir__ }
let(:user_without_avatar) { FactoryBot.create :user }
let(:user_without_avatar) { create :user }
let(:user_with_avatar) do
u = FactoryBot.create :user
u.attachments = [FactoryBot.build(:avatar_attachment, author: u)]
u = create :user
u.attachments = [build(:avatar_attachment, author: u)]
u
end
let(:avatar_file) do
@@ -33,10 +33,10 @@ describe 'API v3 Work package resource' do
include Rack::Test::Methods
include Capybara::RSpecMatchers
let(:current_user) { FactoryBot.create(:admin) }
let(:project) { FactoryBot.create(:project) }
let(:current_user) { create(:admin) }
let(:project) { create(:project) }
let(:work_package) do
FactoryBot.create(:work_package,
create(:work_package,
project: project,
story_points: 8,
remaining_hours: 5)
@@ -67,7 +67,7 @@ describe 'API v3 Work package resource' do
context 'backlogs deactivated' do
let(:project) do
FactoryBot.create(:project, disable_modules: 'backlogs')
create(:project, disable_modules: 'backlogs')
end
include_context 'query work package'
@@ -33,10 +33,10 @@ describe 'API v3 Work package form resource', type: :request do
include Rack::Test::Methods
include Capybara::RSpecMatchers
let(:project) { FactoryBot.create(:project, public: false) }
let(:work_package) { FactoryBot.create(:work_package, project: project) }
let(:authorized_user) { FactoryBot.create(:user, member_in_project: project) }
let(:unauthorized_user) { FactoryBot.create(:user) }
let(:project) { create(:project, public: false) }
let(:work_package) { create(:work_package, project: project) }
let(:authorized_user) { create(:user, member_in_project: project) }
let(:unauthorized_user) { create(:user) }
before do
allow(Story).to receive(:types).and_return([work_package.type_id])
@@ -29,15 +29,15 @@
require 'spec_helper'
describe ::API::V3::WorkPackages::Schema::SpecificWorkPackageSchema do
let(:project) { FactoryBot.build(:project) }
let(:type) { FactoryBot.build(:type) }
let(:project) { build(:project) }
let(:type) { build(:type) }
let(:work_package) do
FactoryBot.build(:work_package,
build(:work_package,
project: project,
type: type)
end
let(:current_user) do
FactoryBot.build_stubbed(:user).tap do |u|
build_stubbed(:user).tap do |u|
allow(u)
.to receive(:allowed_to?)
.and_return(true)
@@ -45,7 +45,7 @@ describe ::API::V3::WorkPackages::Schema::SpecificWorkPackageSchema do
end
shared_examples_for 'with parent which is a BACKLOGS type' do |writable|
let(:parent) { FactoryBot.create(:work_package, type: type_task) }
let(:parent) { create(:work_package, type: type_task) }
before do
work_package.parent_id = parent.id
@@ -58,7 +58,7 @@ describe ::API::V3::WorkPackages::Schema::SpecificWorkPackageSchema do
end
shared_examples_for 'with parent which is not a BACKLOGS type' do
let(:parent) { FactoryBot.create(:work_package, type: type_feature) }
let(:parent) { create(:work_package, type: type_feature) }
before do
work_package.parent_id = parent.id
@@ -100,8 +100,8 @@ describe ::API::V3::WorkPackages::Schema::SpecificWorkPackageSchema do
describe '#version_writable?' do
subject { described_class.new(work_package: work_package) }
let(:type_task) { FactoryBot.create(:type_task) }
let(:type_feature) { FactoryBot.create(:type_feature) }
let(:type_task) { create(:type_task) }
let(:type_feature) { create(:type_feature) }
before do
allow(WorkPackage).to receive(:backlogs_types).and_return([type_task.id])
@@ -29,10 +29,10 @@
require 'spec_helper'
describe ::API::V3::WorkPackages::Schema::WorkPackageSchemaRepresenter do
let(:custom_field) { FactoryBot.build(:custom_field) }
let(:work_package) { FactoryBot.build_stubbed(:stubbed_work_package, type: FactoryBot.build_stubbed(:type)) }
let(:custom_field) { build(:custom_field) }
let(:work_package) { build_stubbed(:stubbed_work_package, type: build_stubbed(:type)) }
let(:current_user) do
FactoryBot.build_stubbed(:user, member_in_project: work_package.project).tap do |u|
build_stubbed(:user, member_in_project: work_package.project).tap do |u|
allow(u)
.to receive(:allowed_to?)
.and_return(false)
@@ -30,18 +30,18 @@ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
describe WorkPackages::BaseContract, type: :model do
let(:instance) { described_class.new(work_package, user) }
let(:type_feature) { FactoryBot.build(:type_feature) }
let(:type_task) { FactoryBot.build(:type_task) }
let(:type_bug) { FactoryBot.build(:type_bug) }
let(:version1) { FactoryBot.build_stubbed(:version, name: 'Version1', project: p) }
let(:version2) { FactoryBot.build_stubbed(:version, name: 'Version2', project: p) }
let(:role) { FactoryBot.build(:role) }
let(:user) { FactoryBot.build(:admin) }
let(:issue_priority) { FactoryBot.build(:priority) }
let(:status) { FactoryBot.build_stubbed(:status, name: 'status 1', is_default: true) }
let(:type_feature) { build(:type_feature) }
let(:type_task) { build(:type_task) }
let(:type_bug) { build(:type_bug) }
let(:version1) { build_stubbed(:version, name: 'Version1', project: p) }
let(:version2) { build_stubbed(:version, name: 'Version2', project: p) }
let(:role) { build(:role) }
let(:user) { build(:admin) }
let(:issue_priority) { build(:priority) }
let(:status) { build_stubbed(:status, name: 'status 1', is_default: true) }
let(:project) do
p = FactoryBot.build(:project, members: [FactoryBot.build(:member,
p = build(:project, members: [build(:member,
principal: user,
roles: [role])],
types: [type_feature, type_task, type_bug])
@@ -57,7 +57,7 @@ describe WorkPackages::BaseContract, type: :model do
end
let(:other_project) do
p = FactoryBot.build(:project, members: [FactoryBot.build(:member,
p = build(:project, members: [build(:member,
principal: user,
roles: [role])],
types: [type_feature, type_task, type_bug])
@@ -72,7 +72,7 @@ describe WorkPackages::BaseContract, type: :model do
end
let(:story) do
FactoryBot.build_stubbed(:stubbed_work_package,
build_stubbed(:stubbed_work_package,
subject: 'Story',
project: project,
type: type_feature,
@@ -83,7 +83,7 @@ describe WorkPackages::BaseContract, type: :model do
end
let(:story2) do
FactoryBot.build_stubbed(:stubbed_work_package,
build_stubbed(:stubbed_work_package,
subject: 'Story2',
project: project,
type: type_feature,
@@ -94,7 +94,7 @@ describe WorkPackages::BaseContract, type: :model do
end
let(:task) do
FactoryBot.build_stubbed(:stubbed_work_package,
build_stubbed(:stubbed_work_package,
subject: 'Task',
type: type_task,
version: version1,
@@ -105,7 +105,7 @@ describe WorkPackages::BaseContract, type: :model do
end
let(:task2) do
FactoryBot.build_stubbed(:stubbed_work_package,
build_stubbed(:stubbed_work_package,
subject: 'Task2',
type: type_task,
version: version1,
@@ -116,7 +116,7 @@ describe WorkPackages::BaseContract, type: :model do
end
let(:bug) do
FactoryBot.build_stubbed(:stubbed_work_package,
build_stubbed(:stubbed_work_package,
subject: 'Bug',
type: type_bug,
version: version1,
@@ -127,7 +127,7 @@ describe WorkPackages::BaseContract, type: :model do
end
let(:bug2) do
FactoryBot.build_stubbed(:stubbed_work_package,
build_stubbed(:stubbed_work_package,
subject: 'Bug2',
type: type_bug,
version: version1,
@@ -30,11 +30,11 @@ require 'spec_helper'
describe WorkPackages::CreateContract do
let(:work_package) do
WorkPackage.new FactoryBot.attributes_for(:stubbed_work_package, author: other_user, project: project)
WorkPackage.new attributes_for(:stubbed_work_package, author: other_user, project: project)
end
let(:other_user) { FactoryBot.build_stubbed(:user) }
let(:other_user) { build_stubbed(:user) }
include_context 'user with stubbed permissions'
let (:project) { FactoryBot.build_stubbed(:project) }
let (:project) { build_stubbed(:project) }
let(:permissions) do
%i[
view_work_packages
@@ -30,13 +30,13 @@ require 'spec_helper'
describe WorkPackages::UpdateContract do
let(:work_package) do
FactoryBot.create(:work_package,
create(:work_package,
done_ratio: 50,
estimated_hours: 6.0,
project: project)
end
let(:member) { FactoryBot.create(:user, member_in_project: project, member_through_role: role) }
let(:project) { FactoryBot.create(:project) }
let(:member) { create(:user, member_in_project: project, member_through_role: role) }
let(:project) { create(:project) }
let(:current_user) { member }
let(:permissions) do
%i[
@@ -49,7 +49,7 @@ describe WorkPackages::UpdateContract do
add_work_package_notes
]
end
let(:role) { FactoryBot.create :role, permissions: permissions }
let(:role) { create :role, permissions: permissions }
let(:changed_values) { [] }
subject(:contract) { described_class.new(work_package, current_user) }
@@ -94,7 +94,7 @@ describe WorkPackages::UpdateContract do
contract.validate
end
let(:child) do
FactoryBot.create(:work_package, parent_id: work_package.id, project: project)
create(:work_package, parent_id: work_package.id, project: project)
end
context 'has not changed' do
@@ -29,7 +29,7 @@
require 'spec_helper'
describe BacklogsSettingsController, type: :controller do
current_user { FactoryBot.build_stubbed :admin }
current_user { build_stubbed :admin }
describe 'GET show' do
it 'performs that request' do
@@ -39,7 +39,7 @@ describe BacklogsSettingsController, type: :controller do
end
context 'as regular user' do
current_user { FactoryBot.build_stubbed :user }
current_user { build_stubbed :user }
it 'fails' do
get :show
@@ -92,7 +92,7 @@ describe BacklogsSettingsController, type: :controller do
end
context 'with a non-admin' do
current_user { FactoryBot.build_stubbed :user }
current_user { build_stubbed :user }
it 'does not update the settings' do
expect(Setting)
@@ -30,21 +30,21 @@ require 'spec_helper'
describe VersionsController, type: :controller do
let(:version) do
FactoryBot.create(:version,
create(:version,
sharing: 'system')
end
let(:other_project) do
FactoryBot.create(:project).tap do |p|
FactoryBot.create(:member,
create(:project).tap do |p|
create(:member,
user: current_user,
roles: [FactoryBot.create(:role, permissions: [:manage_versions])],
roles: [create(:role, permissions: [:manage_versions])],
project: p)
end
end
let(:current_user) do
FactoryBot.create(:user,
create(:user,
member_in_project: version.project,
member_with_permissions: [:manage_versions])
end
@@ -30,40 +30,40 @@ require 'spec_helper'
describe 'Backlogs', js: true do
let(:story_type) do
FactoryBot.create(:type_feature)
create(:type_feature)
end
let(:story_type2) do
type = FactoryBot.create(:type)
type = create(:type)
project.types << type
type
end
let(:inactive_story_type) do
FactoryBot.create(:type)
create(:type)
end
let(:task_type) do
type = FactoryBot.create(:type_task)
type = create(:type_task)
project.types << type
type
end
let(:user) do
FactoryBot.create :user,
create :user,
member_in_project: project,
member_with_permissions: %i(add_work_packages
view_master_backlog
view_work_packages
assign_versions)
end
let(:project) { FactoryBot.create :project }
let(:project) { create :project }
let(:backlog_version) { FactoryBot.create(:version, project: project) }
let(:backlog_version) { create(:version, project: project) }
let!(:existing_story1) do
FactoryBot.create(:work_package,
create(:work_package,
type: story_type,
project: project,
status: default_status,
@@ -73,7 +73,7 @@ describe 'Backlogs', js: true do
version: backlog_version)
end
let!(:existing_story2) do
FactoryBot.create(:work_package,
create(:work_package,
type: story_type,
project: project,
status: default_status,
@@ -83,10 +83,10 @@ describe 'Backlogs', js: true do
version: backlog_version)
end
let!(:default_status) do
FactoryBot.create(:default_status)
create(:default_status)
end
let!(:default_priority) do
FactoryBot.create(:default_priority)
create(:default_priority)
end
before do
@@ -33,25 +33,25 @@ describe 'Backlogs in backlog view',
type: :feature,
js: true do
let!(:project) do
FactoryBot.create(:project,
create(:project,
types: [story, task],
enabled_module_names: %w(work_package_tracking backlogs))
end
let!(:story) { FactoryBot.create(:type_feature) }
let!(:other_story) { FactoryBot.create(:type) }
let!(:task) { FactoryBot.create(:type_task) }
let!(:priority) { FactoryBot.create(:default_priority) }
let!(:default_status) { FactoryBot.create(:status, is_default: true) }
let!(:other_status) { FactoryBot.create(:status) }
let!(:story) { create(:type_feature) }
let!(:other_story) { create(:type) }
let!(:task) { create(:type_task) }
let!(:priority) { create(:default_priority) }
let!(:default_status) { create(:status, is_default: true) }
let!(:other_status) { create(:status) }
let!(:workflows) do
FactoryBot.create(:workflow,
create(:workflow,
old_status: default_status,
new_status: other_status,
role: role,
type_id: story.id)
end
let(:role) do
FactoryBot.create(:role,
create(:role,
permissions: %i(view_master_backlog
add_work_packages
view_work_packages
@@ -62,34 +62,34 @@ describe 'Backlogs in backlog view',
assign_versions))
end
let!(:current_user) do
FactoryBot.create(:user,
create(:user,
member_in_project: project,
member_through_role: role)
end
let!(:sprint) do
FactoryBot.create(:version,
create(:version,
project: project,
start_date: Date.today - 10.days,
effective_date: Date.today + 10.days,
version_settings_attributes: [{ project: project, display: VersionSetting::DISPLAY_LEFT }])
end
let!(:backlog) do
FactoryBot.create(:version,
create(:version,
project: project,
version_settings_attributes: [{ project: project, display: VersionSetting::DISPLAY_RIGHT }])
end
let!(:other_project) do
FactoryBot.create(:project)
create(:project)
end
let!(:other_project_sprint) do
FactoryBot.create(:version,
create(:version,
project: other_project,
sharing: 'system',
start_date: Date.today - 10.days,
effective_date: Date.today + 10.days)
end
let!(:sprint_story1) do
FactoryBot.create(:work_package,
create(:work_package,
project: project,
type: story,
status: default_status,
@@ -31,10 +31,10 @@ require 'spec_helper'
describe 'Empty backlogs project',
type: :feature,
js: true do
let(:project) { FactoryBot.create(:project, types: [story, task], enabled_module_names: %w(backlogs)) }
let(:story) { FactoryBot.create(:type_feature) }
let(:task) { FactoryBot.create(:type_task) }
let(:status) { FactoryBot.create(:status, is_default: true) }
let(:project) { create(:project, types: [story, task], enabled_module_names: %w(backlogs)) }
let(:story) { create(:type_feature) }
let(:task) { create(:type_task) }
let(:status) { create(:status, is_default: true) }
before do
project
@@ -50,7 +50,7 @@ describe 'Empty backlogs project',
end
context 'as admin' do
let(:current_user) { FactoryBot.create(:admin) }
let(:current_user) { create(:admin) }
it 'should show a no results box with action' do
expect(page).to have_selector '.generic-table--no-results-container', text: I18n.t(:backlogs_empty_title)
@@ -62,8 +62,8 @@ describe 'Empty backlogs project',
end
context 'as regular member' do
let(:role) { FactoryBot.create(:role, permissions: %i(view_master_backlog)) }
let(:current_user) { FactoryBot.create :user, member_in_project: project, member_through_role: role }
let(:role) { create(:role, permissions: %i(view_master_backlog)) }
let(:current_user) { create :user, member_in_project: project, member_through_role: role }
it 'should only show a no results box' do
expect(page).to have_selector '.generic-table--no-results-container', text: I18n.t(:backlogs_empty_title)
@@ -32,29 +32,29 @@ describe 'Impediments on taskboard',
type: :feature,
js: true do
let!(:project) do
FactoryBot.create(:project,
create(:project,
types: [story, task],
enabled_module_names: %w(work_package_tracking backlogs))
end
let!(:story) { FactoryBot.create(:type_feature) }
let!(:task) { FactoryBot.create(:type_task) }
let!(:priority) { FactoryBot.create(:default_priority) }
let!(:status) { FactoryBot.create(:status, is_default: true) }
let!(:other_status) { FactoryBot.create(:status) }
let!(:story) { create(:type_feature) }
let!(:task) { create(:type_task) }
let!(:priority) { create(:default_priority) }
let!(:status) { create(:status, is_default: true) }
let!(:other_status) { create(:status) }
let!(:workflows) do
FactoryBot.create(:workflow,
create(:workflow,
old_status: status,
new_status: other_status,
role: role,
type_id: story.id)
FactoryBot.create(:workflow,
create(:workflow,
old_status: status,
new_status: other_status,
role: role,
type_id: task.id)
end
let(:role) do
FactoryBot.create(:role,
create(:role,
permissions: %i(view_taskboards
add_work_packages
view_work_packages
@@ -63,12 +63,12 @@ describe 'Impediments on taskboard',
assign_versions))
end
let!(:current_user) do
FactoryBot.create(:user,
create(:user,
member_in_project: project,
member_through_role: role)
end
let!(:task1) do
FactoryBot.create(:work_package,
create(:work_package,
status: status,
project: project,
type: task,
@@ -76,29 +76,29 @@ describe 'Impediments on taskboard',
parent: story1)
end
let!(:story1) do
FactoryBot.create(:work_package,
create(:work_package,
project: project,
type: story,
version: sprint)
end
let!(:other_task) do
FactoryBot.create(:work_package,
create(:work_package,
project: project,
type: task,
version: sprint,
parent: other_story)
end
let!(:other_story) do
FactoryBot.create(:work_package,
create(:work_package,
project: project,
type: story,
version: other_sprint)
end
let!(:sprint) do
FactoryBot.create(:version, project: project)
create(:version, project: project)
end
let!(:other_sprint) do
FactoryBot.create(:version, project: project)
create(:version, project: project)
end
before do
@@ -30,27 +30,27 @@ require 'spec_helper'
describe 'backlogs onboarding tour', js: true do
let(:next_button) { find('.enjoyhint_next_btn') }
let(:user) { FactoryBot.create :admin }
let(:user) { create :admin }
let(:demo_project) do
FactoryBot.create :project,
create :project,
name: 'Demo project',
identifier: 'demo-project',
public: true,
enabled_module_names: %w[work_package_tracking wiki]
end
let(:project) do
FactoryBot.create :project,
create :project,
name: 'Scrum project',
identifier: 'your-scrum-project',
public: true,
enabled_module_names: %w[work_package_tracking wiki backlogs]
end
let(:sprint) { FactoryBot.create(:version, project: project, name: 'Sprint 1') }
let(:status) { FactoryBot.create(:default_status) }
let(:priority) { FactoryBot.create(:default_priority) }
let(:sprint) { create(:version, project: project, name: 'Sprint 1') }
let(:status) { create(:default_status) }
let(:priority) { create(:default_priority) }
let(:impediment) do
FactoryBot.build(:impediment, author: user,
build(:impediment, author: user,
version: sprint,
assigned_to: user,
project: project,
@@ -58,16 +58,16 @@ describe 'backlogs onboarding tour', js: true do
status: status)
end
let(:story_type) { FactoryBot.create(:type_feature) }
let(:story_type) { create(:type_feature) }
let(:task_type) do
type = FactoryBot.create(:type_task)
type = create(:type_task)
project.types << type
type
end
let!(:existing_story) do
FactoryBot.create(:work_package,
create(:work_package,
type: story_type,
project: project,
status: status,
@@ -125,8 +125,8 @@ describe 'backlogs onboarding tour', js: true do
context 'with a new user who is not allowed to see the backlogs plugin' do
# necessary to be able to see public projects
let(:non_member_role) { FactoryBot.create :non_member, permissions: [:view_work_packages] }
let(:non_member_user) { FactoryBot.create :user }
let(:non_member_role) { create :non_member, permissions: [:view_work_packages] }
let(:non_member_user) { create :user }
before do
non_member_role
@@ -31,16 +31,16 @@ require 'spec_helper'
describe 'Resolved status',
type: :feature do
let!(:project) do
FactoryBot.create(:project,
create(:project,
enabled_module_names: %w(backlogs))
end
let!(:status) { FactoryBot.create(:status, is_default: true) }
let!(:status) { create(:status, is_default: true) }
let(:role) do
FactoryBot.create(:role,
create(:role,
permissions: %i[select_done_statuses])
end
let!(:current_user) do
FactoryBot.create(:user,
create(:user,
member_in_project: project,
member_through_role: role)
end
@@ -33,25 +33,25 @@ describe 'Stories in backlog',
type: :feature,
js: true do
let!(:project) do
FactoryBot.create(:project,
create(:project,
types: [story, task, other_story],
enabled_module_names: %w(work_package_tracking backlogs))
end
let!(:story) { FactoryBot.create(:type_feature) }
let!(:other_story) { FactoryBot.create(:type) }
let!(:task) { FactoryBot.create(:type_task) }
let!(:priority) { FactoryBot.create(:default_priority) }
let!(:default_status) { FactoryBot.create(:status, is_default: true) }
let!(:other_status) { FactoryBot.create(:status) }
let!(:story) { create(:type_feature) }
let!(:other_story) { create(:type) }
let!(:task) { create(:type_task) }
let!(:priority) { create(:default_priority) }
let!(:default_status) { create(:status, is_default: true) }
let!(:other_status) { create(:status) }
let!(:workflows) do
FactoryBot.create(:workflow,
create(:workflow,
old_status: default_status,
new_status: other_status,
role: role,
type_id: story.id)
end
let(:role) do
FactoryBot.create(:role,
create(:role,
permissions: %i(view_master_backlog
add_work_packages
view_work_packages
@@ -60,12 +60,12 @@ describe 'Stories in backlog',
assign_versions))
end
let!(:current_user) do
FactoryBot.create(:user,
create(:user,
member_in_project: project,
member_through_role: role)
end
let!(:sprint_story1) do
FactoryBot.create(:work_package,
create(:work_package,
project: project,
type: story,
status: default_status,
@@ -74,21 +74,21 @@ describe 'Stories in backlog',
story_points: 10)
end
let!(:sprint_story1_task) do
FactoryBot.create(:work_package,
create(:work_package,
project: project,
type: task,
status: default_status,
version: sprint)
end
let!(:sprint_story2_parent) do
FactoryBot.create(:work_package,
create(:work_package,
project: project,
type: FactoryBot.create(:type),
type: create(:type),
status: default_status,
version: sprint)
end
let!(:sprint_story2) do
FactoryBot.create(:work_package,
create(:work_package,
project: project,
type: story,
status: default_status,
@@ -97,34 +97,34 @@ describe 'Stories in backlog',
story_points: 20)
end
let!(:backlog_story1) do
FactoryBot.create(:work_package,
create(:work_package,
project: project,
type: story,
status: default_status,
version: backlog)
end
let!(:sprint) do
FactoryBot.create(:version,
create(:version,
project: project,
start_date: Date.today - 10.days,
effective_date: Date.today + 10.days,
version_settings_attributes: [{ project: project, display: VersionSetting::DISPLAY_LEFT }])
end
let!(:backlog) do
FactoryBot.create(:version,
create(:version,
project: project,
version_settings_attributes: [{ project: project, display: VersionSetting::DISPLAY_RIGHT }])
end
let!(:other_project) do
FactoryBot.create(:project).tap do |p|
FactoryBot.create(:member,
create(:project).tap do |p|
create(:member,
principal: current_user,
project: p,
roles: [role])
end
end
let!(:sprint_story_in_other_project) do
FactoryBot.create(:work_package,
create(:work_package,
project: other_project,
type: story,
status: default_status,
@@ -33,25 +33,25 @@ describe 'Tasks on taskboard',
type: :feature,
js: true do
let!(:project) do
FactoryBot.create(:project,
create(:project,
types: [story, task, other_story],
enabled_module_names: %w(work_package_tracking backlogs))
end
let!(:story) { FactoryBot.create(:type_feature) }
let!(:other_story) { FactoryBot.create(:type) }
let!(:task) { FactoryBot.create(:type_task) }
let!(:priority) { FactoryBot.create(:default_priority) }
let!(:default_status) { FactoryBot.create(:status, is_default: true) }
let!(:other_status) { FactoryBot.create(:status) }
let!(:story) { create(:type_feature) }
let!(:other_story) { create(:type) }
let!(:task) { create(:type_task) }
let!(:priority) { create(:default_priority) }
let!(:default_status) { create(:status, is_default: true) }
let!(:other_status) { create(:status) }
let!(:workflows) do
FactoryBot.create(:workflow,
create(:workflow,
old_status: default_status,
new_status: other_status,
role: role,
type_id: task.id)
end
let(:role) do
FactoryBot.create(:role,
create(:role,
permissions: %i(view_taskboards
add_work_packages
view_work_packages
@@ -60,12 +60,12 @@ describe 'Tasks on taskboard',
assign_versions))
end
let!(:current_user) do
FactoryBot.create(:user,
create(:user,
member_in_project: project,
member_through_role: role)
end
let!(:story1) do
FactoryBot.create(:work_package,
create(:work_package,
project: project,
type: story,
status: default_status,
@@ -74,7 +74,7 @@ describe 'Tasks on taskboard',
story_points: 10)
end
let!(:story1_task) do
FactoryBot.create(:work_package,
create(:work_package,
project: project,
parent: story1,
type: task,
@@ -82,7 +82,7 @@ describe 'Tasks on taskboard',
version: sprint)
end
let!(:story1_task_subtask) do
FactoryBot.create(:work_package,
create(:work_package,
project: project,
parent: story1_task,
type: task,
@@ -90,14 +90,14 @@ describe 'Tasks on taskboard',
version: sprint)
end
let!(:other_work_package) do
FactoryBot.create(:work_package,
create(:work_package,
project: project,
type: FactoryBot.create(:type),
type: create(:type),
status: default_status,
version: sprint)
end
let!(:other_work_package_subtask) do
FactoryBot.create(:work_package,
create(:work_package,
project: project,
parent: other_work_package,
type: task,
@@ -105,7 +105,7 @@ describe 'Tasks on taskboard',
version: sprint)
end
let!(:story2) do
FactoryBot.create(:work_package,
create(:work_package,
project: project,
type: story,
status: default_status,
@@ -114,22 +114,22 @@ describe 'Tasks on taskboard',
story_points: 20)
end
let!(:sprint) do
FactoryBot.create(:version,
create(:version,
project: project,
start_date: Date.today - 10.days,
effective_date: Date.today + 10.days,
version_settings_attributes: [{ project: project, display: VersionSetting::DISPLAY_LEFT }])
end
let!(:other_project) do
FactoryBot.create(:project).tap do |p|
FactoryBot.create(:member,
create(:project).tap do |p|
create(:member,
principal: current_user,
project: p,
roles: [role])
end
end
let!(:story_in_other_project) do
FactoryBot.create(:work_package,
create(:work_package,
project: other_project,
type: story,
status: default_status,
@@ -30,39 +30,39 @@ require 'spec_helper'
describe 'Filter by backlog type', js: true do
let(:story_type) do
type = FactoryBot.create(:type_feature)
type = create(:type_feature)
project.types << type
type
end
let(:task_type) do
type = FactoryBot.create(:type_task)
type = create(:type_task)
project.types << type
type
end
let(:user) { FactoryBot.create :admin }
let(:project) { FactoryBot.create :project }
let(:user) { create :admin }
let(:project) { create :project }
let(:wp_table) { ::Pages::WorkPackagesTable.new(project) }
let(:filters) { ::Components::WorkPackages::Filters.new }
let(:member) do
FactoryBot.create(:member,
create(:member,
user: user,
project: project,
roles: [FactoryBot.create(:role)])
roles: [create(:role)])
end
let(:work_package_with_story_type) do
FactoryBot.create(:work_package,
create(:work_package,
type: story_type,
project: project)
end
let(:work_package_with_task_type) do
FactoryBot.create(:work_package,
create(:work_package,
type: task_type,
project: project)
end
@@ -38,19 +38,19 @@ describe 'Work packages having story points', type: :feature, js: true do
'task_type' => task_type.id.to_s)
end
let(:current_user) { FactoryBot.create(:admin) }
let(:current_user) { create(:admin) }
let(:project) do
FactoryBot.create(:project,
create(:project,
enabled_module_names: %w(work_package_tracking backlogs))
end
let(:status) { FactoryBot.create :default_status }
let(:story_type) { FactoryBot.create(:type_feature) }
let(:task_type) { FactoryBot.create(:type_feature) }
let(:status) { create :default_status }
let(:story_type) { create(:type_feature) }
let(:task_type) { create(:type_feature) }
describe 'showing the story points on the work package show page' do
let(:story_points) { 42 }
let(:story_with_sp) do
FactoryBot.create(:story,
create(:story,
type: story_type,
author: current_user,
project: project,
+5 -5
View File
@@ -29,13 +29,13 @@
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
describe Backlog, type: :model do
let(:project) { FactoryBot.build(:project) }
let(:project) { build(:project) }
before(:each) do
@feature = FactoryBot.create(:type_feature)
@feature = create(:type_feature)
allow(Setting).to receive(:plugin_openproject_backlogs).and_return({ 'story_types' => [@feature.id.to_s],
'task_type' => '0' })
@status = FactoryBot.create(:status)
@status = create(:status)
end
describe 'Class Methods' do
@@ -43,9 +43,9 @@ describe Backlog, type: :model do
describe 'WITH one open version defined in the project' do
before(:each) do
@project = project
@work_packages = [FactoryBot.create(:work_package, subject: 'work_package1', project: @project, type: @feature,
@work_packages = [create(:work_package, subject: 'work_package1', project: @project, type: @feature,
status: @status)]
@version = FactoryBot.create(:version, project: project, work_packages: @work_packages)
@version = create(:version, project: project, work_packages: @work_packages)
@version_settings = @version.version_settings.create(display: VersionSetting::DISPLAY_RIGHT, project: project)
end
+14 -14
View File
@@ -36,18 +36,18 @@ describe Burndown, type: :model do
story.last_journal.update(created_at: day)
end
let(:user) { @user ||= FactoryBot.create(:user) }
let(:role) { @role ||= FactoryBot.create(:role) }
let(:type_feature) { @type_feature ||= FactoryBot.create(:type_feature) }
let(:type_task) { @type_task ||= FactoryBot.create(:type_task) }
let(:issue_priority) { @issue_priority ||= FactoryBot.create(:priority, is_default: true) }
let(:version) { @version ||= FactoryBot.create(:version, project: project) }
let(:user) { @user ||= create(:user) }
let(:role) { @role ||= create(:role) }
let(:type_feature) { @type_feature ||= create(:type_feature) }
let(:type_task) { @type_task ||= create(:type_task) }
let(:issue_priority) { @issue_priority ||= create(:priority, is_default: true) }
let(:version) { @version ||= create(:version, project: project) }
let(:sprint) { @sprint ||= Sprint.find(version.id) }
let(:project) do
unless @project
@project = FactoryBot.build(:project)
@project.members = [FactoryBot.build(:member, principal: user,
@project = build(:project)
@project.members = [build(:member, principal: user,
project: @project,
roles: [role])]
@project.versions << version
@@ -55,9 +55,9 @@ describe Burndown, type: :model do
@project
end
let(:issue_open) { @status1 ||= FactoryBot.create(:status, name: 'status 1', is_default: true) }
let(:issue_closed) { @status2 ||= FactoryBot.create(:status, name: 'status 2', is_closed: true) }
let(:issue_resolved) { @status3 ||= FactoryBot.create(:status, name: 'status 3', is_closed: false) }
let(:issue_open) { @status1 ||= create(:status, name: 'status 1', is_default: true) }
let(:issue_closed) { @status2 ||= create(:status, name: 'status 2', is_closed: true) }
let(:issue_resolved) { @status3 ||= create(:status, name: 'status 3', is_closed: false) }
before(:each) do
Rails.cache.clear
@@ -73,7 +73,7 @@ describe Burndown, type: :model do
project.save!
[issue_open, issue_closed, issue_resolved].permutation(2).each do |transition|
FactoryBot.create(:workflow,
create(:workflow,
old_status: transition[0],
new_status: transition[1],
role: role,
@@ -109,7 +109,7 @@ describe Burndown, type: :model do
describe 'WITH 1 story assigned to the sprint' do
before(:each) do
@story = FactoryBot.build(:story, subject: 'Story 1',
@story = build(:story, subject: 'Story 1',
project: project,
version: version,
type: type_feature,
@@ -161,7 +161,7 @@ describe Burndown, type: :model do
@stories = []
(0..9).each do |i|
@stories[i] = FactoryBot.create(:story, subject: "Story #{i}",
@stories[i] = create(:story, subject: "Story #{i}",
project: project,
version: version,
type: type_feature,
+12 -12
View File
@@ -29,32 +29,32 @@
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
describe Impediment, type: :model do
let(:user) { @user ||= FactoryBot.create(:user) }
let(:role) { @role ||= FactoryBot.create(:role) }
let(:type_feature) { @type_feature ||= FactoryBot.create(:type_feature) }
let(:type_task) { @type_task ||= FactoryBot.create(:type_task) }
let(:issue_priority) { @issue_priority ||= FactoryBot.create(:priority, is_default: true) }
let(:status) { FactoryBot.create(:status) }
let(:user) { @user ||= create(:user) }
let(:role) { @role ||= create(:role) }
let(:type_feature) { @type_feature ||= create(:type_feature) }
let(:type_task) { @type_task ||= create(:type_task) }
let(:issue_priority) { @issue_priority ||= create(:priority, is_default: true) }
let(:status) { create(:status) }
let(:task) do
FactoryBot.build(:task, type: type_task,
build(:task, type: type_task,
project: project,
author: user,
priority: issue_priority,
status: status)
end
let(:feature) do
FactoryBot.build(:work_package, type: type_feature,
build(:work_package, type: type_feature,
project: project,
author: user,
priority: issue_priority,
status: status)
end
let(:version) { FactoryBot.create(:version, project: project) }
let(:version) { create(:version, project: project) }
let(:project) do
unless @project
@project = FactoryBot.build(:project, types: [type_feature, type_task])
@project.members = [FactoryBot.build(:member, principal: user,
@project = build(:project, types: [type_feature, type_task])
@project.members = [build(:member, principal: user,
project: @project,
roles: [role])]
end
@@ -62,7 +62,7 @@ describe Impediment, type: :model do
end
let(:impediment) do
FactoryBot.build(:impediment, author: user,
build(:impediment, author: user,
version: version,
assigned_to: user,
priority: issue_priority,
@@ -31,7 +31,7 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
describe WorkPackage, type: :model do
describe 'Story positions' do
def build_work_package(options)
FactoryBot.build(:work_package, options.reverse_merge(version_id: sprint_1.id,
build(:work_package, options.reverse_merge(version_id: sprint_1.id,
priority_id: priority.id,
project_id: project.id,
status_id: status.id,
@@ -42,17 +42,17 @@ describe WorkPackage, type: :model do
build_work_package(options).tap(&:save!)
end
let(:status) { FactoryBot.create(:status) }
let(:priority) { FactoryBot.create(:priority_normal) }
let(:project) { FactoryBot.create(:project) }
let(:status) { create(:status) }
let(:priority) { create(:priority_normal) }
let(:project) { create(:project) }
let(:story_type) { FactoryBot.create(:type, name: 'Story') }
let(:epic_type) { FactoryBot.create(:type, name: 'Epic') }
let(:task_type) { FactoryBot.create(:type, name: 'Task') }
let(:other_type) { FactoryBot.create(:type, name: 'Feedback') }
let(:story_type) { create(:type, name: 'Story') }
let(:epic_type) { create(:type, name: 'Epic') }
let(:task_type) { create(:type, name: 'Task') }
let(:other_type) { create(:type, name: 'Feedback') }
let(:sprint_1) { FactoryBot.create(:version, project_id: project.id, name: 'Sprint 1') }
let(:sprint_2) { FactoryBot.create(:version, project_id: project.id, name: 'Sprint 2') }
let(:sprint_1) { create(:version, project_id: project.id, name: 'Sprint 1') }
let(:sprint_2) { create(:version, project_id: project.id, name: 'Sprint 2') }
let(:work_package_1) { create_work_package(subject: 'WorkPackage 1', version_id: sprint_1.id) }
let(:work_package_2) { create_work_package(subject: 'WorkPackage 2', version_id: sprint_1.id) }
@@ -249,22 +249,22 @@ describe WorkPackage, type: :model do
# to keep the 'version' if possible (e.g. within project
# hierarchies with shared versions)
let(:project_wo_backlogs) { FactoryBot.create(:project) }
let(:sub_project_wo_backlogs) { FactoryBot.create(:project) }
let(:project_wo_backlogs) { create(:project) }
let(:sub_project_wo_backlogs) { create(:project) }
let(:shared_sprint) do
FactoryBot.create(:version,
create(:version,
project_id: project.id,
name: 'Shared Sprint',
sharing: 'descendants')
end
let(:version_go_live) do
FactoryBot.create(:version,
create(:version,
project_id: project_wo_backlogs.id,
name: 'Go-Live')
end
shared_let(:admin) { FactoryBot.create :admin }
shared_let(:admin) { create :admin }
def move_to_project(work_package, project)
WorkPackages::UpdateService
+9 -9
View File
@@ -31,7 +31,7 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
describe WorkPackage, type: :model do
describe 'validations' do
let(:work_package) do
FactoryBot.build(:work_package)
build(:work_package)
end
describe 'story points' do
@@ -114,15 +114,15 @@ describe WorkPackage, type: :model do
describe 'definition of done' do
before(:each) do
@status_resolved = FactoryBot.build(:status, name: 'Resolved', is_default: false)
@status_open = FactoryBot.build(:status, name: 'Open', is_default: true)
@project = FactoryBot.build(:project)
@status_resolved = build(:status, name: 'Resolved', is_default: false)
@status_open = build(:status, name: 'Open', is_default: true)
@project = build(:project)
@project.done_statuses = [@status_resolved]
@project.types = [FactoryBot.build(:type_feature)]
@project.types = [build(:type_feature)]
@work_package = FactoryBot.build(:work_package, project: @project,
@work_package = build(:work_package, project: @project,
status: @status_open,
type: FactoryBot.build(:type_feature))
type: build(:type_feature))
end
it 'should not be done when having the initial status "open"' do
@@ -142,8 +142,8 @@ describe WorkPackage, type: :model do
end
describe 'backlogs_enabled?' do
let(:project) { FactoryBot.build(:project) }
let(:work_package) { FactoryBot.build(:work_package) }
let(:project) { build(:project) }
let(:work_package) { build(:work_package) }
it 'should be false without a project' do
work_package.project = nil
+20 -20
View File
@@ -29,14 +29,14 @@
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
describe Sprint, type: :model do
let(:sprint) { FactoryBot.build(:sprint) }
let(:project) { FactoryBot.build(:project) }
let(:sprint) { build(:sprint) }
let(:project) { build(:project) }
describe 'Class Methods' do
describe '#displayed_left' do
describe 'WITH display set to left' do
before(:each) do
sprint.version_settings = [FactoryBot.build(:version_setting, project: project,
sprint.version_settings = [build(:version_setting, project: project,
display: VersionSetting::DISPLAY_LEFT)]
sprint.project = project
sprint.save!
@@ -49,10 +49,10 @@ describe Sprint, type: :model do
describe 'WITH a version setting defined for another project' do
before(:each) do
another_project = FactoryBot.build(:project, name: 'another project',
another_project = build(:project, name: 'another project',
identifier: 'another project')
sprint.version_settings = [FactoryBot.build(:version_setting, project: another_project,
sprint.version_settings = [build(:version_setting, project: another_project,
display: VersionSetting::DISPLAY_RIGHT)]
sprint.project = project
sprint.save
@@ -71,23 +71,23 @@ describe Sprint, type: :model do
end
context 'WITH a shared version from another project' do
let!(:parent_project) { FactoryBot.create :project, identifier: "parent", name: "Parent" }
let!(:parent_project) { create :project, identifier: "parent", name: "Parent" }
let!(:home_project) do
FactoryBot.create(:project, identifier: "home", name: "Home").tap do |p|
create(:project, identifier: "home", name: "Home").tap do |p|
p.parent = parent_project
p.save!
end
end
let!(:sister_project) do
FactoryBot.create(:project, identifier: "sister", name: "Sister").tap do |p|
create(:project, identifier: "sister", name: "Sister").tap do |p|
p.parent = parent_project
p.save!
end
end
let!(:version) { FactoryBot.create :version, name: "Shared Version", sharing: "tree", project: home_project }
let!(:version) { create :version, name: "Shared Version", sharing: "tree", project: home_project }
let(:displayed) { Sprint.apply_to(sister_project).displayed_left(sister_project) }
@@ -185,7 +185,7 @@ describe Sprint, type: :model do
describe '#displayed_right' do
before(:each) do
sprint.version_settings = [FactoryBot.build(:version_setting, project: project, display: VersionSetting::DISPLAY_RIGHT)]
sprint.version_settings = [build(:version_setting, project: project, display: VersionSetting::DISPLAY_RIGHT)]
sprint.project = project
sprint.save!
end
@@ -195,10 +195,10 @@ describe Sprint, type: :model do
describe '#order_by_date' do
before(:each) do
@sprint1 = FactoryBot.create(:sprint, name: 'sprint1', project: project, start_date: Date.today + 2.days)
@sprint2 = FactoryBot.create(:sprint, name: 'sprint2', project: project, start_date: Date.today + 1.day,
@sprint1 = create(:sprint, name: 'sprint1', project: project, start_date: Date.today + 2.days)
@sprint2 = create(:sprint, name: 'sprint2', project: project, start_date: Date.today + 1.day,
effective_date: Date.today + 3.days)
@sprint3 = FactoryBot.create(:sprint, name: 'sprint3', project: project, start_date: Date.today + 1.day,
@sprint3 = create(:sprint, name: 'sprint3', project: project, start_date: Date.today + 1.day,
effective_date: Date.today + 2.days)
end
@@ -212,12 +212,12 @@ describe Sprint, type: :model do
describe '#apply_to' do
before(:each) do
project.save
@other_project = FactoryBot.create(:project)
@other_project = create(:project)
end
describe 'WITH the version being shared system wide' do
before(:each) do
@version = FactoryBot.create(:sprint, name: 'systemwide', project: @other_project, sharing: 'system')
@version = create(:sprint, name: 'systemwide', project: @other_project, sharing: 'system')
end
it { expect(Sprint.apply_to(project).size).to eq(1) }
@@ -228,7 +228,7 @@ describe Sprint, type: :model do
before(:each) do
project.update(parent: @other_project)
project.reload
@version = FactoryBot.create(:sprint, name: 'descended', project: @other_project, sharing: 'descendants')
@version = create(:sprint, name: 'descended', project: @other_project, sharing: 'descendants')
end
it { expect(Sprint.apply_to(project).size).to eq(1) }
@@ -237,11 +237,11 @@ describe Sprint, type: :model do
describe 'WITH the version being shared within the tree' do
before(:each) do
@parent_project = FactoryBot.create(:project)
@parent_project = create(:project)
@other_project.update(parent: @parent_project)
project.update(parent: @parent_project)
project.reload
@version = FactoryBot.create(:sprint, name: 'treed', project: @other_project, sharing: 'tree')
@version = create(:sprint, name: 'treed', project: @other_project, sharing: 'tree')
end
it { expect(Sprint.apply_to(project).size).to eq(1) }
@@ -250,9 +250,9 @@ describe Sprint, type: :model do
describe 'WITH the version being shared within the tree' do
before(:each) do
@descendant_project = FactoryBot.create(:project, parent: project)
@descendant_project = create(:project, parent: project)
project.reload
@version = FactoryBot.create(:sprint, name: 'hierar', project: @descendant_project, sharing: 'hierarchy')
@version = create(:sprint, name: 'hierar', project: @descendant_project, sharing: 'hierarchy')
end
it { expect(Sprint.apply_to(project).size).to eq(1) }
+16 -16
View File
@@ -29,24 +29,24 @@
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
describe Story, type: :model do
let(:user) { @user ||= FactoryBot.create(:user) }
let(:role) { @role ||= FactoryBot.create(:role) }
let(:status1) { @status1 ||= FactoryBot.create(:status, name: 'status 1', is_default: true) }
let(:type_feature) { @type_feature ||= FactoryBot.create(:type_feature) }
let(:version) { @version ||= FactoryBot.create(:version, project: project) }
let(:version2) { FactoryBot.create(:version, project: project) }
let(:sprint) { @sprint ||= FactoryBot.create(:sprint, project: project) }
let(:issue_priority) { @issue_priority ||= FactoryBot.create(:priority) }
let(:task_type) { FactoryBot.create(:type_task) }
let(:user) { @user ||= create(:user) }
let(:role) { @role ||= create(:role) }
let(:status1) { @status1 ||= create(:status, name: 'status 1', is_default: true) }
let(:type_feature) { @type_feature ||= create(:type_feature) }
let(:version) { @version ||= create(:version, project: project) }
let(:version2) { create(:version, project: project) }
let(:sprint) { @sprint ||= create(:sprint, project: project) }
let(:issue_priority) { @issue_priority ||= create(:priority) }
let(:task_type) { create(:type_task) }
let(:task) do
FactoryBot.create(:story, version: version,
create(:story, version: version,
project: project,
status: status1,
type: task_type,
priority: issue_priority)
end
let(:story1) do
FactoryBot.create(:story, version: version,
create(:story, version: version,
project: project,
status: status1,
type: type_feature,
@@ -54,7 +54,7 @@ describe Story, type: :model do
end
let(:story2) do
FactoryBot.create(:story, version: version,
create(:story, version: version,
project: project,
status: status1,
type: type_feature,
@@ -63,8 +63,8 @@ describe Story, type: :model do
let(:project) do
unless @project
@project = FactoryBot.build(:project)
@project.members = [FactoryBot.build(:member, principal: user,
@project = build(:project)
@project.members = [build(:member, principal: user,
project: @project,
roles: [role])]
end
@@ -132,7 +132,7 @@ describe Story, type: :model do
before do
story1
other_project = FactoryBot.create(:project)
other_project = create(:project)
version2.update! project_id: other_project.id
story2.version_id = version2.id
@@ -152,7 +152,7 @@ describe Story, type: :model do
version.sharing = 'system'
version.save!
another_project = FactoryBot.create(:project)
another_project = create(:project)
story1
story2.project = another_project
+4 -4
View File
@@ -29,11 +29,11 @@
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
describe Task, type: :model do
let(:task_type) { FactoryBot.create(:type) }
let(:default_status) { FactoryBot.create(:default_status) }
let(:project) { FactoryBot.create(:project) }
let(:task_type) { create(:type) }
let(:default_status) { create(:default_status) }
let(:project) { create(:project) }
let(:task) do
FactoryBot.build(:task,
build(:task,
project: project,
status: default_status,
type: task_type)
+2 -2
View File
@@ -32,7 +32,7 @@ describe User, type: :model do
describe 'backlogs_preference' do
describe 'task_color' do
it 'reads from and writes to a user preference' do
u = FactoryBot.create(:user)
u = create(:user)
u.backlogs_preference(:task_color, '#FFCC33')
expect(u.backlogs_preference(:task_color)).to eq('#FFCC33')
@@ -41,7 +41,7 @@ describe User, type: :model do
end
it 'computes a random color and persists it, when none is set' do
u = FactoryBot.create(:user)
u = create(:user)
u.backlogs_preference(:task_color, nil)
u.save!
@@ -29,7 +29,7 @@
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
describe VersionSetting, type: :model do
let(:version_setting) { FactoryBot.build(:version_setting) }
let(:version_setting) { build(:version_setting) }
it { is_expected.to belong_to(:project) }
it { is_expected.to belong_to(:version) }
+14 -14
View File
@@ -33,7 +33,7 @@ describe Version, type: :model do
describe 'rebuild positions' do
def build_work_package(options = {})
FactoryBot.build(:work_package, options.reverse_merge(version_id: version.id,
build(:work_package, options.reverse_merge(version_id: version.id,
priority_id: priority.id,
project_id: project.id,
status_id: status.id))
@@ -43,18 +43,18 @@ describe Version, type: :model do
build_work_package(options).tap(&:save!)
end
let(:status) { FactoryBot.create(:status) }
let(:priority) { FactoryBot.create(:priority_normal) }
let(:project) { FactoryBot.create(:project, name: 'Project 1', types: [epic_type, story_type, task_type, other_type]) }
let(:status) { create(:status) }
let(:priority) { create(:priority_normal) }
let(:project) { create(:project, name: 'Project 1', types: [epic_type, story_type, task_type, other_type]) }
let(:epic_type) { FactoryBot.create(:type, name: 'Epic') }
let(:story_type) { FactoryBot.create(:type, name: 'Story') }
let(:task_type) { FactoryBot.create(:type, name: 'Task') }
let(:other_type) { FactoryBot.create(:type, name: 'Other') }
let(:epic_type) { create(:type, name: 'Epic') }
let(:story_type) { create(:type, name: 'Story') }
let(:task_type) { create(:type, name: 'Task') }
let(:other_type) { create(:type, name: 'Other') }
let(:version) { FactoryBot.create(:version, project_id: project.id, name: 'Version') }
let(:version) { create(:version, project_id: project.id, name: 'Version') }
shared_let(:admin) { FactoryBot.create :admin }
shared_let(:admin) { create :admin }
def move_to_project(work_package, project)
WorkPackages::UpdateService
@@ -87,15 +87,15 @@ describe Version, type: :model do
end
it 'moves an work_package to a project where backlogs is disabled while using versions' do
project2 = FactoryBot.create(:project, name: 'Project 2', types: [epic_type, story_type, task_type, other_type])
project2 = create(:project, name: 'Project 2', types: [epic_type, story_type, task_type, other_type])
project2.enabled_module_names = project2.enabled_module_names - ['backlogs']
project2.save!
project2.reload
work_package1 = FactoryBot.create(:work_package, type_id: task_type.id, status_id: status.id, project_id: project.id)
work_package2 = FactoryBot.create(:work_package, parent_id: work_package1.id, type_id: task_type.id, status_id: status.id,
work_package1 = create(:work_package, type_id: task_type.id, status_id: status.id, project_id: project.id)
work_package2 = create(:work_package, parent_id: work_package1.id, type_id: task_type.id, status_id: status.id,
project_id: project.id)
work_package3 = FactoryBot.create(:work_package, parent_id: work_package2.id, type_id: task_type.id, status_id: status.id,
work_package3 = create(:work_package, parent_id: work_package2.id, type_id: task_type.id, status_id: status.id,
project_id: project.id)
work_package1.reload
@@ -29,7 +29,7 @@
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
describe WorkPackage::PDFExport::WorkPackageToPdf, type: :model do
let(:project) { FactoryBot.create :project }
let(:project) { create :project }
let(:query) { Query.new_default(name: '_', project: project) }
subject { described_class.new query }
@@ -31,32 +31,32 @@ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
describe Impediments::CreateService do
let(:instance) { described_class.new(user: user) }
let(:user) { FactoryBot.create(:user) }
let(:role) { FactoryBot.create(:role, permissions: %i(add_work_packages assign_versions)) }
let(:type_feature) { FactoryBot.create(:type_feature) }
let(:type_task) { FactoryBot.create(:type_task) }
let(:priority) { FactoryBot.create(:priority, is_default: true) }
let(:user) { create(:user) }
let(:role) { create(:role, permissions: %i(add_work_packages assign_versions)) }
let(:type_feature) { create(:type_feature) }
let(:type_task) { create(:type_task) }
let(:priority) { create(:priority, is_default: true) }
let(:feature) do
FactoryBot.build(:work_package,
build(:work_package,
type: type_feature,
project: project,
author: user,
priority: priority,
status: status1)
end
let(:version) { FactoryBot.create(:version, project: project) }
let(:version) { create(:version, project: project) }
let(:project) do
project = FactoryBot.create(:project, types: [type_feature, type_task])
project = create(:project, types: [type_feature, type_task])
FactoryBot.create(:member, principal: user,
create(:member, principal: user,
project: project,
roles: [role])
project
end
let(:status1) { FactoryBot.create(:status, name: 'status 1', is_default: true) }
let(:status1) { create(:status, name: 'status 1', is_default: true) }
before(:each) do
allow(Setting).to receive(:plugin_openproject_backlogs).and_return('points_burn_direction' => 'down',
@@ -129,7 +129,7 @@ describe Impediments::CreateService do
end
before(:each) do
feature.version = FactoryBot.create(:version, project: project, name: 'another version')
feature.version = create(:version, project: project, name: 'another version')
feature.save
end
@@ -31,39 +31,39 @@ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
describe Impediments::UpdateService, type: :model do
let(:instance) { described_class.new(user: user, impediment: impediment) }
let(:user) { FactoryBot.create(:user) }
let(:role) { FactoryBot.create(:role, permissions: %i(edit_work_packages view_work_packages)) }
let(:type_feature) { FactoryBot.create(:type_feature) }
let(:type_task) { FactoryBot.create(:type_task) }
let(:user) { create(:user) }
let(:role) { create(:role, permissions: %i(edit_work_packages view_work_packages)) }
let(:type_feature) { create(:type_feature) }
let(:type_task) { create(:type_task) }
let(:priority) { impediment.priority }
let(:task) do
FactoryBot.build(:task, type: type_task,
build(:task, type: type_task,
project: project,
author: user,
priority: priority,
status: status1)
end
let(:feature) do
FactoryBot.build(:work_package, type: type_feature,
build(:work_package, type: type_feature,
project: project,
author: user,
priority: priority,
status: status1)
end
let(:version) { FactoryBot.create(:version, project: project) }
let(:version) { create(:version, project: project) }
let(:project) do
project = FactoryBot.create(:project, types: [type_feature, type_task])
project = create(:project, types: [type_feature, type_task])
FactoryBot.create(:member, principal: user,
create(:member, principal: user,
project: project,
roles: [role])
project
end
let(:status1) { FactoryBot.create(:status, name: 'status 1', is_default: true) }
let(:status2) { FactoryBot.create(:status, name: 'status 2') }
let(:status1) { create(:status, name: 'status 1', is_default: true) }
let(:status2) { create(:status, name: 'status 2') }
let(:type_workflow) do
Workflow.create(type_id: type_task.id,
old_status: status1,
@@ -71,7 +71,7 @@ describe Impediments::UpdateService, type: :model do
role: role)
end
let(:impediment) do
FactoryBot.build(:impediment, author: user,
build(:impediment, author: user,
version: version,
assigned_to: user,
project: project,
@@ -134,7 +134,7 @@ describe Impediments::UpdateService, type: :model do
describe 'WHEN changing the blocking relationship to another story' do
let(:story) do
FactoryBot.build(:work_package,
build(:work_package,
subject: 'another story',
type: type_feature,
project: project,
@@ -156,7 +156,7 @@ describe Impediments::UpdateService, type: :model do
end
describe 'WITH the story having another version' do
let(:story_version) { FactoryBot.create(:version, project: project, name: 'another version') }
let(:story_version) { create(:version, project: project, name: 'another version') }
it_should_behave_like 'impediment update with unchanged blocking relationship'
it 'should not be saved successfully' do
@@ -29,23 +29,23 @@
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
describe Stories::CreateService, type: :model do
let(:priority) { FactoryBot.create(:priority) }
let(:priority) { create(:priority) }
let(:project) do
project = FactoryBot.create(:project, types: [type_feature])
project = create(:project, types: [type_feature])
FactoryBot.create(:member,
create(:member,
principal: user,
project: project,
roles: [role])
project
end
let(:role) { FactoryBot.create(:role, permissions: permissions) }
let(:role) { create(:role, permissions: permissions) }
let(:permissions) { %i(add_work_packages manage_subtasks assign_versions) }
let(:status) { FactoryBot.create(:status) }
let(:type_feature) { FactoryBot.create(:type_feature) }
let(:status) { create(:status) }
let(:type_feature) { create(:type_feature) }
let(:user) do
FactoryBot.create(:user)
create(:user)
end
let(:instance) do
@@ -65,12 +65,12 @@ describe Stories::CreateService, type: :model do
}
end
let(:version) { FactoryBot.create(:version, project: project) }
let(:version) { create(:version, project: project) }
let(:story) do
project.enabled_module_names += ['backlogs']
FactoryBot.create(:story,
create(:story,
version: version,
project: project,
status: status,
@@ -29,27 +29,27 @@
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
describe WorkPackages::UpdateAncestorsService do
let(:user) { FactoryBot.create :user }
let(:user) { create :user }
let(:sibling_remaining_hours) { 7.0 }
let(:work_package_remaining_hours) { 5.0 }
let!(:grandparent) do
FactoryBot.create :work_package
create :work_package
end
let!(:parent) do
FactoryBot.create :work_package,
create :work_package,
parent: grandparent
end
let!(:sibling) do
FactoryBot.create :work_package,
create :work_package,
parent: parent,
remaining_hours: sibling_remaining_hours
end
context 'for a new ancestors' do
let!(:work_package) do
FactoryBot.create :work_package,
create :work_package,
remaining_hours: work_package_remaining_hours,
parent: parent
end
@@ -82,7 +82,7 @@ describe WorkPackages::UpdateAncestorsService do
context 'for the previous ancestors' do
let!(:work_package) do
FactoryBot.create :work_package,
create :work_package,
remaining_hours: work_package_remaining_hours,
parent: parent
end
@@ -29,31 +29,31 @@
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
describe WorkPackages::UpdateService, "version inheritance", type: :model do
let(:type_feature) { FactoryBot.build(:type_feature) }
let(:type_task) { FactoryBot.build(:type_task) }
let(:type_bug) { FactoryBot.build(:type_bug) }
let(:type_feature) { build(:type_feature) }
let(:type_task) { build(:type_task) }
let(:type_bug) { build(:type_bug) }
let(:version1) { project.versions.first }
let(:version2) { project.versions.last }
let(:role) { FactoryBot.build(:role) }
let(:user) { FactoryBot.build(:admin) }
let(:issue_priority) { FactoryBot.build(:priority) }
let(:status) { FactoryBot.build(:status, name: 'status 1', is_default: true) }
let(:role) { build(:role) }
let(:user) { build(:admin) }
let(:issue_priority) { build(:priority) }
let(:status) { build(:status, name: 'status 1', is_default: true) }
let(:project) do
p = FactoryBot.build(:project,
members: [FactoryBot.build(:member,
p = build(:project,
members: [build(:member,
principal: user,
roles: [role])],
types: [type_feature, type_task, type_bug])
p.versions << FactoryBot.build(:version, name: 'Version1', project: p)
p.versions << FactoryBot.build(:version, name: 'Version2', project: p)
p.versions << build(:version, name: 'Version1', project: p)
p.versions << build(:version, name: 'Version2', project: p)
p
end
let(:story) do
story = FactoryBot.build(:work_package,
story = build(:work_package,
subject: 'Story',
project: project,
type: type_feature,
@@ -65,7 +65,7 @@ describe WorkPackages::UpdateService, "version inheritance", type: :model do
end
let(:story2) do
story = FactoryBot.build(:work_package,
story = build(:work_package,
subject: 'Story2',
project: project,
type: type_feature,
@@ -77,7 +77,7 @@ describe WorkPackages::UpdateService, "version inheritance", type: :model do
end
let(:story3) do
story = FactoryBot.build(:work_package,
story = build(:work_package,
subject: 'Story3',
project: project,
type: type_feature,
@@ -89,7 +89,7 @@ describe WorkPackages::UpdateService, "version inheritance", type: :model do
end
let(:task) do
FactoryBot.build(:work_package,
build(:work_package,
subject: 'Task',
type: type_task,
version: version1,
@@ -100,7 +100,7 @@ describe WorkPackages::UpdateService, "version inheritance", type: :model do
end
let(:task2) do
FactoryBot.build(:work_package,
build(:work_package,
subject: 'Task2',
type: type_task,
version: version1,
@@ -111,7 +111,7 @@ describe WorkPackages::UpdateService, "version inheritance", type: :model do
end
let(:task3) do
FactoryBot.build(:work_package,
build(:work_package,
subject: 'Task3',
type: type_task,
version: version1,
@@ -122,7 +122,7 @@ describe WorkPackages::UpdateService, "version inheritance", type: :model do
end
let(:task4) do
FactoryBot.build(:work_package,
build(:work_package,
subject: 'Task4',
type: type_task,
version: version1,
@@ -133,7 +133,7 @@ describe WorkPackages::UpdateService, "version inheritance", type: :model do
end
let(:task5) do
FactoryBot.build(:work_package,
build(:work_package,
subject: 'Task5',
type: type_task,
version: version1,
@@ -144,7 +144,7 @@ describe WorkPackages::UpdateService, "version inheritance", type: :model do
end
let(:task6) do
FactoryBot.build(:work_package,
build(:work_package,
subject: 'Task6',
type: type_task,
version: version1,
@@ -155,7 +155,7 @@ describe WorkPackages::UpdateService, "version inheritance", type: :model do
end
let(:bug) do
FactoryBot.build(:work_package,
build(:work_package,
subject: 'Bug',
type: type_bug,
version: version1,
@@ -166,7 +166,7 @@ describe WorkPackages::UpdateService, "version inheritance", type: :model do
end
let(:bug2) do
FactoryBot.build(:work_package,
build(:work_package,
subject: 'Bug2',
type: type_bug,
version: version1,
@@ -177,7 +177,7 @@ describe WorkPackages::UpdateService, "version inheritance", type: :model do
end
let(:bug3) do
FactoryBot.build(:work_package,
build(:work_package,
subject: 'Bug3',
type: type_bug,
version: version1,
@@ -29,46 +29,46 @@
require File.dirname(__FILE__) + '/../../spec_helper'
describe 'rb_burndown_charts/show', type: :view do
let(:user1) { FactoryBot.create(:user) }
let(:user2) { FactoryBot.create(:user) }
let(:user1) { create(:user) }
let(:user2) { create(:user) }
let(:role_allowed) do
FactoryBot.create(:role,
create(:role,
permissions: %i[add_work_packages manage_subtasks])
end
let(:role_forbidden) { FactoryBot.create(:role) }
let(:role_forbidden) { create(:role) }
# We need to create these as some view helpers access the database
let(:statuses) do
[FactoryBot.create(:status),
FactoryBot.create(:status),
FactoryBot.create(:status)]
[create(:status),
create(:status),
create(:status)]
end
let(:type_task) { FactoryBot.create(:type_task) }
let(:type_feature) { FactoryBot.create(:type_feature) }
let(:issue_priority) { FactoryBot.create(:priority) }
let(:type_task) { create(:type_task) }
let(:type_feature) { create(:type_feature) }
let(:issue_priority) { create(:priority) }
let(:project) do
project = FactoryBot.create(:project, types: [type_feature, type_task])
project.members = [FactoryBot.create(:member, principal: user1, project: project, roles: [role_allowed]),
FactoryBot.create(:member, principal: user2, project: project, roles: [role_forbidden])]
project = create(:project, types: [type_feature, type_task])
project.members = [create(:member, principal: user1, project: project, roles: [role_allowed]),
create(:member, principal: user2, project: project, roles: [role_forbidden])]
project
end
let(:story_a) do
FactoryBot.create(:story, status: statuses[0],
create(:story, status: statuses[0],
project: project,
type: type_feature,
version: sprint,
priority: issue_priority)
end
let(:story_b) do
FactoryBot.create(:story, status: statuses[1],
create(:story, status: statuses[1],
project: project,
type: type_feature,
version: sprint,
priority: issue_priority)
end
let(:story_c) do
FactoryBot.create(:story, status: statuses[2],
create(:story, status: statuses[2],
project: project,
type: type_feature,
version: sprint,
@@ -76,10 +76,10 @@ describe 'rb_burndown_charts/show', type: :view do
end
let(:stories) { [story_a, story_b, story_c] }
let(:sprint) do
FactoryBot.create(:sprint, project: project, start_date: Date.today - 1.week, effective_date: Date.today + 1.week)
create(:sprint, project: project, start_date: Date.today - 1.week, effective_date: Date.today + 1.week)
end
let(:task) do
task = FactoryBot.create(:task, project: project, status: statuses[0], version: sprint, type: type_task)
task = create(:task, project: project, status: statuses[0], version: sprint, type: type_task)
# This is necessary as for some unknown reason passing the parent directly
# leads to the task searching for the parent with 'root_id' is NULL, which
# is not the case as the story has its own id as root_id
@@ -29,47 +29,47 @@
require File.dirname(__FILE__) + '/../../spec_helper'
describe 'rb_master_backlogs/index', type: :view do
let(:user) { FactoryBot.create(:user) }
let(:user) { create(:user) }
let(:role_allowed) do
FactoryBot.create(:role,
create(:role,
permissions: %i[view_master_backlog view_taskboards])
end
let(:statuses) do
[FactoryBot.create(:status, is_default: true),
FactoryBot.create(:status),
FactoryBot.create(:status)]
[create(:status, is_default: true),
create(:status),
create(:status)]
end
let(:type_task) { FactoryBot.create(:type_task) }
let(:type_feature) { FactoryBot.create(:type_feature) }
let(:issue_priority) { FactoryBot.create(:priority) }
let(:type_task) { create(:type_task) }
let(:type_feature) { create(:type_feature) }
let(:issue_priority) { create(:priority) }
let(:project) do
project = FactoryBot.create(:project, types: [type_feature, type_task])
project.members = [FactoryBot.create(:member, principal: user, project: project, roles: [role_allowed])]
project = create(:project, types: [type_feature, type_task])
project.members = [create(:member, principal: user, project: project, roles: [role_allowed])]
project
end
let(:story_a) do
FactoryBot.create(:story, status: statuses[0],
create(:story, status: statuses[0],
project: project,
type: type_feature,
version: sprint,
priority: issue_priority)
end
let(:story_b) do
FactoryBot.create(:story, status: statuses[1],
create(:story, status: statuses[1],
project: project,
type: type_feature,
version: sprint,
priority: issue_priority)
end
let(:story_c) do
FactoryBot.create(:story, status: statuses[2],
create(:story, status: statuses[2],
project: project,
type: type_feature,
version: sprint,
priority: issue_priority)
end
let(:stories) { [story_a, story_b, story_c] }
let(:sprint) { FactoryBot.create(:sprint, project: project) }
let(:sprint) { create(:sprint, project: project) }
before :each do
allow(Setting).to receive(:plugin_openproject_backlogs).and_return({ 'story_types' => [type_feature.id],
@@ -90,7 +90,7 @@ describe 'rb_master_backlogs/index', type: :view do
end
it 'shows link to export with the default export card configuration' do
default_export_card_config = FactoryBot.create(:export_card_configuration)
default_export_card_config = create(:export_card_configuration)
assign(:export_card_config_meta, {
default: default_export_card_config,
count: 1
@@ -29,55 +29,55 @@
require File.dirname(__FILE__) + '/../../spec_helper'
describe 'rb_taskboards/show', type: :view do
let(:user1) { FactoryBot.create(:user) }
let(:user2) { FactoryBot.create(:user) }
let(:user1) { create(:user) }
let(:user2) { create(:user) }
let(:role_allowed) do
FactoryBot.create(:role,
create(:role,
permissions: %i[add_work_packages edit_work_packages manage_subtasks])
end
let(:role_forbidden) { FactoryBot.create(:role) }
let(:role_forbidden) { create(:role) }
# We need to create these as some view helpers access the database
let(:statuses) do
[FactoryBot.create(:status),
FactoryBot.create(:status),
FactoryBot.create(:status)]
[create(:status),
create(:status),
create(:status)]
end
let(:type_task) { FactoryBot.create(:type_task) }
let(:type_feature) { FactoryBot.create(:type_feature) }
let(:issue_priority) { FactoryBot.create(:priority) }
let(:type_task) { create(:type_task) }
let(:type_feature) { create(:type_feature) }
let(:issue_priority) { create(:priority) }
let(:project) do
project = FactoryBot.create(:project, types: [type_feature, type_task])
project.members = [FactoryBot.create(:member, principal: user1, project: project, roles: [role_allowed]),
FactoryBot.create(:member, principal: user2, project: project, roles: [role_forbidden])]
project = create(:project, types: [type_feature, type_task])
project.members = [create(:member, principal: user1, project: project, roles: [role_allowed]),
create(:member, principal: user2, project: project, roles: [role_forbidden])]
project
end
let(:story_a) do
FactoryBot.create(:story, status: statuses[0],
create(:story, status: statuses[0],
project: project,
type: type_feature,
version: sprint,
priority: issue_priority)
end
let(:story_b) do
FactoryBot.create(:story, status: statuses[1],
create(:story, status: statuses[1],
project: project,
type: type_feature,
version: sprint,
priority: issue_priority)
end
let(:story_c) do
FactoryBot.create(:story, status: statuses[2],
create(:story, status: statuses[2],
project: project,
type: type_feature,
version: sprint,
priority: issue_priority)
end
let(:stories) { [story_a, story_b, story_c] }
let(:sprint) { FactoryBot.create(:sprint, project: project) }
let(:sprint) { create(:sprint, project: project) }
let(:task) do
task = FactoryBot.create(:task, project: project, status: statuses[0], version: sprint, type: type_task)
task = create(:task, project: project, status: statuses[0], version: sprint, type: type_task)
# This is necessary as for some unknown reason passing the parent directly
# leads to the task searching for the parent with 'root_id' is NULL, which
# is not the case as the story has its own id as root_id
@@ -85,7 +85,7 @@ describe 'rb_taskboards/show', type: :view do
task
end
let(:impediment) do
FactoryBot.create(:impediment, project: project, status: statuses[0], version: sprint, blocks_ids: task.id.to_s,
create(:impediment, project: project, status: statuses[0], version: sprint, blocks_ids: task.id.to_s,
type: type_task)
end
@@ -34,7 +34,7 @@ describe ::API::V3::Activities::ActivityRepresenter do
include_context 'user with stubbed permissions'
include_context 'bcf_topic with stubbed comment'
let(:other_user) { FactoryBot.build_stubbed(:user) }
let(:other_user) { build_stubbed(:user) }
let(:project) do
work_package.project
end
@@ -46,7 +46,7 @@ describe ::API::V3::Activities::ActivityRepresenter do
end
end
let(:journal) do
FactoryBot.build_stubbed(:work_package_journal).tap do |journal|
build_stubbed(:work_package_journal).tap do |journal|
allow(journal)
.to receive(:get_changes)
.and_return(changes)
@@ -41,7 +41,7 @@ describe ::API::V3::WorkPackages::WorkPackageRepresenter do
include_context 'bcf_topic with stubbed comment'
let(:permissions) { %i[view_linked_issues view_work_packages manage_bcf] }
let(:work_package) do
FactoryBot.build_stubbed(:stubbed_work_package, bcf_issue: bcf_topic)
build_stubbed(:stubbed_work_package, bcf_issue: bcf_topic)
end
let(:representer) do
described_class.new(work_package,
@@ -29,9 +29,9 @@
require 'spec_helper'
describe ::OpenProject::Bim::BcfXml::Exporter do
let(:query) { FactoryBot.build(:global_query) }
let(:work_package) { FactoryBot.create :work_package }
let(:admin) { FactoryBot.create(:admin) }
let(:query) { build(:global_query) }
let(:work_package) { create :work_package }
let(:admin) { create(:admin) }
let(:current_user) { admin }
before do
@@ -48,7 +48,7 @@ describe ::OpenProject::Bim::BcfXml::Exporter do
end
context "one WP with BCF issue associated" do
let(:bcf_issue) { FactoryBot.create(:bcf_issue_with_comment, work_package: work_package) }
let(:bcf_issue) { create(:bcf_issue_with_comment, work_package: work_package) }
before do
bcf_issue
@@ -36,32 +36,32 @@ describe ::OpenProject::Bim::BcfXml::Importer do
'application/octet-stream'
)
end
let(:type) { FactoryBot.create :type, name: 'Issue', is_standard: true, is_default: true }
let(:type) { create :type, name: 'Issue', is_standard: true, is_default: true }
let(:project) do
FactoryBot.create(:project,
create(:project,
identifier: 'bim_project',
enabled_module_names: %w[bim work_package_tracking],
types: [type])
end
let(:member_role) do
FactoryBot.create(:role,
create(:role,
permissions: %i[view_linked_issues view_work_packages])
end
let(:manage_bcf_role) do
FactoryBot.create(
create(
:role,
permissions: %i[manage_bcf view_linked_issues view_work_packages edit_work_packages add_work_packages]
)
end
let(:bcf_manager) { FactoryBot.create(:user) }
let(:bcf_manager) { create(:user) }
let(:workflow) do
FactoryBot.create(:workflow_with_default_status,
create(:workflow_with_default_status,
role: manage_bcf_role,
type: type)
end
let(:priority) { FactoryBot.create :default_priority }
let(:priority) { create :default_priority }
let(:bcf_manager_member) do
FactoryBot.create(:member,
create(:member,
project: project,
user: bcf_manager,
roles: [manage_bcf_role, member_role])
@@ -30,27 +30,27 @@ require 'spec_helper'
describe ::OpenProject::Bim::BcfXml::IssueReader do
let(:absolute_file_path) { "63E78882-7C6A-4BF7-8982-FC478AFB9C97/markup.bcf" }
let(:type) { FactoryBot.create :type, name: 'Issue', is_standard: true, is_default: true }
let(:type) { create :type, name: 'Issue', is_standard: true, is_default: true }
let(:project) do
FactoryBot.create(:project,
create(:project,
identifier: 'bim_project',
types: [type])
end
let(:manage_bcf_role) do
FactoryBot.create(
create(
:role,
permissions: %i[manage_bcf view_linked_issues view_work_packages edit_work_packages add_work_packages]
)
end
let(:bcf_manager) { FactoryBot.create(:user) }
let(:bcf_manager) { create(:user) }
let(:workflow) do
FactoryBot.create(:workflow_with_default_status,
create(:workflow_with_default_status,
role: manage_bcf_role,
type: type)
end
let(:priority) { FactoryBot.create :default_priority }
let(:priority) { create :default_priority }
let(:bcf_manager_member) do
FactoryBot.create(:member,
create(:member,
project: project,
user: bcf_manager,
roles: [manage_bcf_role])
@@ -152,8 +152,8 @@ describe ::OpenProject::Bim::BcfXml::IssueReader do
context 'on updating import' do
context '#update_comment' do
let(:work_package) { FactoryBot.create(:work_package) }
let!(:bcf_issue) { FactoryBot.create :bcf_issue_with_comment, work_package: work_package }
let(:work_package) { create(:work_package) }
let!(:bcf_issue) { create :bcf_issue_with_comment, work_package: work_package }
before do
allow(subject).to receive(:issue).and_return(bcf_issue)
@@ -29,7 +29,7 @@
require 'spec_helper'
describe ::OpenProject::Bim::BcfXml::IssueWriter do
let(:project) { FactoryBot.create(:project) }
let(:project) { create(:project) }
let(:markup) do
<<-MARKUP
<Markup xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
@@ -83,16 +83,16 @@ describe ::OpenProject::Bim::BcfXml::IssueWriter do
MARKUP
end
let(:bcf_issue) do
FactoryBot.create(:bcf_issue_with_comment,
create(:bcf_issue_with_comment,
work_package: work_package,
markup: markup)
end
let(:priority) { FactoryBot.create :priority_low }
let(:current_user) { FactoryBot.create(:user) }
let(:priority) { create :priority_low }
let(:current_user) { create(:user) }
let(:due_date) { DateTime.now }
let(:type) { FactoryBot.create :type, name: 'Issue' }
let(:type) { create :type, name: 'Issue' }
let(:work_package) do
FactoryBot.create(:work_package,
create(:work_package,
project_id: project.id,
priority: priority,
author: current_user,
@@ -30,7 +30,7 @@ require 'spec_helper'
shared_examples_for 'issues contract' do
let(:current_user) do
FactoryBot.build_stubbed(:user)
build_stubbed(:user)
end
let!(:allowed_to) do
allow(current_user)
@@ -39,8 +39,8 @@ shared_examples_for 'issues contract' do
end
end
let(:issue_uuid) { 'issue uuid' }
let(:project) { FactoryBot.build_stubbed(:project) }
let(:issue_work_package) { FactoryBot.build_stubbed(:stubbed_work_package, project: project) }
let(:project) { build_stubbed(:project) }
let(:issue_work_package) { build_stubbed(:stubbed_work_package, project: project) }
let(:issue_work_package_id) do
id = 5
@@ -32,7 +32,7 @@ require_relative './shared_contract_examples'
describe Bim::Bcf::Issues::UpdateContract do
it_behaves_like 'issues contract' do
let(:issue) do
FactoryBot.build_stubbed(:bcf_issue,
build_stubbed(:bcf_issue,
work_package: issue_work_package).tap do |i|
# in order to actually have something changed
i.index = issue_index
@@ -44,7 +44,7 @@ describe Bim::Bcf::Issues::UpdateContract do
context 'if work_package is altered' do
before do
issue.work_package = FactoryBot.build_stubbed(:stubbed_work_package)
issue.work_package = build_stubbed(:stubbed_work_package)
end
it 'is invalid' do
@@ -39,7 +39,7 @@ describe Bim::Bcf::Viewpoints::CreateContract do
subject(:contract) { described_class.new(viewpoint, current_user) }
let(:current_user) do
FactoryBot.build_stubbed(:user)
build_stubbed(:user)
end
let!(:allowed_to) do
allow(current_user)
@@ -57,13 +57,13 @@ describe Bim::Bcf::Viewpoints::CreateContract do
}
end
let(:viewpoint_issue) do
FactoryBot.build_stubbed(:bcf_issue).tap do |issue|
build_stubbed(:bcf_issue).tap do |issue|
allow(issue)
.to receive(:project)
.and_return(project)
end
end
let(:project) { FactoryBot.build_stubbed(:project) }
let(:project) { build_stubbed(:project) }
def expect_valid(valid, symbols = {})
expect(contract.validate).to eq(valid)
@@ -42,7 +42,7 @@ describe Bim::IfcModels::CreateContract do
end
end
let(:permissions) { %i(manage_ifc_models) }
let(:other_user) { FactoryBot.build_stubbed(:user) }
let(:other_user) { build_stubbed(:user) }
subject(:contract) do
described_class.new(ifc_model, current_user, options: {})
@@ -31,10 +31,10 @@
require 'spec_helper'
shared_examples_for 'ifc model contract' do
let(:current_user) { FactoryBot.build_stubbed(:user) }
let(:other_user) { FactoryBot.build_stubbed(:user) }
let(:model_project) { FactoryBot.build_stubbed(:project) }
let(:ifc_attachment) { FactoryBot.build_stubbed(:attachment, author: model_user) }
let(:current_user) { build_stubbed(:user) }
let(:other_user) { build_stubbed(:user) }
let(:model_project) { build_stubbed(:project) }
let(:ifc_attachment) { build_stubbed(:attachment, author: model_user) }
let(:model_user) { current_user }
let(:model_title) { 'some title' }
@@ -139,7 +139,7 @@ shared_examples_for 'ifc model contract' do
end
context 'if user of attachment and uploader are different' do
let(:ifc_attachment) { FactoryBot.build_stubbed(:attachment, author: other_user) }
let(:ifc_attachment) { build_stubbed(:attachment, author: other_user) }
it 'is invalid' do
expect_valid(false, uploader_id: %i(invalid))
@@ -36,7 +36,7 @@ describe Bim::IfcModels::UpdateContract do
subject(:contract) { described_class.new(ifc_model, current_user) }
let(:ifc_model) do
FactoryBot.build_stubbed(:ifc_model,
build_stubbed(:ifc_model,
uploader: model_user,
title: model_title,
project: model_project).tap do |model|
@@ -56,10 +56,10 @@ describe Bim::IfcModels::UpdateContract do
let(:changed_by_system) { false }
context 'if the uploader changes' do
let(:model_user) { FactoryBot.build_stubbed(:user) }
let(:model_user) { build_stubbed(:user) }
let(:uploader_user) { other_user }
let(:current_user) { other_user }
let(:ifc_attachment) { FactoryBot.build_stubbed(:attachment, author: other_user) }
let(:ifc_attachment) { build_stubbed(:attachment, author: other_user) }
it 'is invalid as not writable' do
expect_valid(false, uploader_id: %i(error_readonly))
@@ -67,10 +67,10 @@ describe Bim::IfcModels::UpdateContract do
end
context 'if the uploader changes' do
let(:model_user) { FactoryBot.build_stubbed(:user) }
let(:model_user) { build_stubbed(:user) }
let(:uploader_user) { other_user }
let(:current_user) { other_user }
let(:ifc_attachment) { FactoryBot.build_stubbed(:attachment, author: other_user) }
let(:ifc_attachment) { build_stubbed(:attachment, author: other_user) }
let(:changed_by_system) { true }
it 'is invalid as does not match' do
@@ -80,7 +80,7 @@ describe Bim::IfcModels::UpdateContract do
context 'if the uploader does not change and the current user is different from the uploader' do
let(:current_user) { other_user }
let(:model_user) { FactoryBot.build_stubbed(:user) }
let(:model_user) { build_stubbed(:user) }
it_behaves_like 'is valid'
end
@@ -30,28 +30,28 @@ require 'spec_helper'
describe ::Bim::Bcf::IssuesController, type: :controller do
let(:manage_bcf_role) do
FactoryBot.create(:role,
create(:role,
permissions: %i[manage_bcf view_linked_issues view_work_packages add_work_packages edit_work_packages])
end
let(:collaborator_role) do
FactoryBot.create(:role,
create(:role,
permissions: %i[view_linked_issues view_work_packages add_work_packages edit_work_packages])
end
let(:bcf_manager) { FactoryBot.create(:user, firstname: "BCF Manager") }
let(:collaborator) { FactoryBot.create(:user) }
let(:bcf_manager) { create(:user, firstname: "BCF Manager") }
let(:collaborator) { create(:user) }
let(:non_member) { FactoryBot.create(:user) }
let(:non_member) { create(:user) }
let(:project) do
FactoryBot.create(:project, enabled_module_names: %w[bim], identifier: 'bim_project')
create(:project, enabled_module_names: %w[bim], identifier: 'bim_project')
end
let(:member) do
FactoryBot.create(:member,
create(:member,
project: project,
user: collaborator,
roles: [collaborator_role])
end
let(:bcf_manager_member) do
FactoryBot.create(:member,
create(:member,
project: project,
user: bcf_manager,
roles: [manage_bcf_role])
@@ -75,7 +75,7 @@ describe ::Bim::Bcf::IssuesController, type: :controller do
context 'no manage_bcf permission' do
let(:bcf_manager_member) do
FactoryBot.create(:member,
create(:member,
project: project,
user: bcf_manager,
roles: [collaborator_role])
@@ -35,13 +35,13 @@ describe WorkPackagesController, type: :controller do
login_as current_user
end
let(:stub_project) { FactoryBot.build_stubbed(:project, identifier: 'test_project', public: false) }
let(:current_user) { FactoryBot.build_stubbed(:user) }
let(:work_packages) { [FactoryBot.build_stubbed(:stubbed_work_package)] }
let(:stub_project) { build_stubbed(:project, identifier: 'test_project', public: false) }
let(:current_user) { build_stubbed(:user) }
let(:work_packages) { [build_stubbed(:stubbed_work_package)] }
describe 'index' do
let(:query) do
FactoryBot.build_stubbed(:query)
build_stubbed(:query)
end
before do
@@ -51,7 +51,7 @@ describe WorkPackagesController, type: :controller do
describe 'bcf' do
let(:mime_type) { 'bcf' }
let(:export_storage) { FactoryBot.build_stubbed(:work_packages_export) }
let(:export_storage) { build_stubbed(:work_packages_export) }
before do
service_instance = double('service_instance')
@@ -32,10 +32,10 @@ describe 'authorization for BCF api',
with_config: { edition: 'bim' },
type: :feature,
js: true do
let!(:user) { FactoryBot.create(:admin) }
let!(:user) { create(:admin) }
let(:client_secret) { app.plaintext_secret }
let(:scope) { 'bcf_v2_1' }
let!(:project) { FactoryBot.create(:project, enabled_module_names: [:bim]) }
let!(:project) { create(:project, enabled_module_names: [:bim]) }
def oauth_path(client_id)
"/oauth/authorize?response_type=code&client_id=#{client_id}&redirect_uri=urn:ietf:wg:oauth:2.0:oob&scope=#{scope}"
@@ -5,18 +5,18 @@ describe 'BCF snapshot column',
js: true,
with_config: { edition: 'bim' },
with_mail: false do
let(:project) { FactoryBot.create(:project, enabled_module_names: %w[bim work_package_tracking]) }
let(:project) { create(:project, enabled_module_names: %w[bim work_package_tracking]) }
let(:wp_table) { Pages::WorkPackagesTable.new(project) }
let(:permissions) { %i[add_work_packages view_work_packages view_linked_issues] }
let!(:work_package) { FactoryBot.create(:work_package, project: project) }
let!(:bcf_issue) { FactoryBot.create(:bcf_issue_with_viewpoint, work_package: work_package) }
let!(:work_package) { create(:work_package, project: project) }
let!(:bcf_issue) { create(:bcf_issue_with_viewpoint, work_package: work_package) }
let(:user) do
FactoryBot.create :user,
create :user,
member_in_project: project,
member_with_permissions: permissions
end
let!(:query) do
query = FactoryBot.build(:query, user: user, project: project)
query = build(:query, user: user, project: project)
query.column_names = ['subject', 'bcf_thumbnail']
query.filters.clear
query.show_hierarchies = false
+9 -9
View File
@@ -6,33 +6,33 @@ describe 'Create BCF',
with_config: { edition: 'bim' },
with_mail: false do
let(:project) do
FactoryBot.create(:project,
create(:project,
types: [type, type_with_cf],
enabled_module_names: %i[bim work_package_tracking],
work_package_custom_fields: [integer_cf])
end
let(:index_page) { Pages::IfcModels::ShowDefault.new(project) }
let(:permissions) { %i[view_ifc_models view_linked_issues manage_bcf add_work_packages edit_work_packages view_work_packages] }
let!(:status) { FactoryBot.create(:default_status) }
let!(:priority) { FactoryBot.create :priority, is_default: true }
let!(:status) { create(:default_status) }
let!(:priority) { create :priority, is_default: true }
let(:user) do
FactoryBot.create :user,
create :user,
member_in_project: project,
member_with_permissions: permissions
end
let!(:model) do
FactoryBot.create(:ifc_model_minimal_converted,
create(:ifc_model_minimal_converted,
project: project,
uploader: user)
end
let(:type) { FactoryBot.create(:type) }
let(:type) { create(:type) }
let(:type_with_cf) do
FactoryBot.create(:type, custom_fields: [integer_cf])
create(:type, custom_fields: [integer_cf])
end
let(:integer_cf) do
FactoryBot.create(:int_wp_custom_field)
create(:int_wp_custom_field)
end
shared_examples 'bcf details creation' do |with_viewpoints|
@@ -142,7 +142,7 @@ describe 'Create BCF',
end
context 'when starting on the details page of an existing work package' do
let(:work_package) { FactoryBot.create :work_package, project: project }
let(:work_package) { create :work_package, project: project }
before do
visit bcf_project_frontend_path(project, "details/#{work_package.id}")
+9 -9
View File
@@ -32,14 +32,14 @@ describe 'bcf export',
type: :feature,
js: true,
with_config: { edition: 'bim' } do
let(:status) { FactoryBot.create(:status, name: 'New', is_default: true) }
let(:closed_status) { FactoryBot.create(:closed_status, name: 'Closed') }
let(:project) { FactoryBot.create :project, enabled_module_names: %i[bim work_package_tracking] }
let(:status) { create(:status, name: 'New', is_default: true) }
let(:closed_status) { create(:closed_status, name: 'Closed') }
let(:project) { create :project, enabled_module_names: %i[bim work_package_tracking] }
let!(:open_work_package) { FactoryBot.create(:work_package, project: project, subject: 'Open WP', status: status) }
let!(:closed_work_package) { FactoryBot.create(:work_package, project: project, subject: 'Closed WP', status: closed_status) }
let!(:open_bcf_issue) { FactoryBot.create(:bcf_issue, work_package: open_work_package) }
let!(:closed_bcf_issue) { FactoryBot.create(:bcf_issue, work_package: closed_work_package) }
let!(:open_work_package) { create(:work_package, project: project, subject: 'Open WP', status: status) }
let!(:closed_work_package) { create(:work_package, project: project, subject: 'Closed WP', status: closed_status) }
let!(:open_bcf_issue) { create(:bcf_issue, work_package: open_work_package) }
let!(:closed_bcf_issue) { create(:bcf_issue, work_package: closed_work_package) }
let(:permissions) do
%i[view_ifc_models
@@ -52,13 +52,13 @@ describe 'bcf export',
end
let(:current_user) do
FactoryBot.create :user,
create :user,
member_in_project: project,
member_with_permissions: permissions
end
let!(:model) do
FactoryBot.create(:ifc_model_minimal_converted,
create(:ifc_model_minimal_converted,
project: project,
uploader: current_user)
end
@@ -35,10 +35,10 @@ describe 'bcf view management',
with_config: { edition: 'bim' },
type: :feature,
js: true do
let(:project) { FactoryBot.create :project, enabled_module_names: %i[bim work_package_tracking] }
let(:project) { create :project, enabled_module_names: %i[bim work_package_tracking] }
let(:bcf_page) { ::Pages::IfcModels::ShowDefault.new(project) }
let(:role) do
FactoryBot.create :role,
create :role,
permissions: %w[
view_work_packages
save_queries
@@ -50,13 +50,13 @@ describe 'bcf view management',
end
let(:user) do
FactoryBot.create :user,
create :user,
member_in_project: project,
member_through_role: role
end
let!(:model) do
FactoryBot.create(:ifc_model_minimal_converted,
create(:ifc_model_minimal_converted,
project: project,
uploader: user,
is_default: true)
+7 -7
View File
@@ -35,17 +35,17 @@ describe 'BIM filter spec',
with_config: { edition: 'bim' },
type: :feature,
js: true do
let(:project) { FactoryBot.create :project, enabled_module_names: %w(bim work_package_tracking) }
let(:open_status) { FactoryBot.create(:status, is_closed: false) }
let(:closed_status) { FactoryBot.create(:status, is_closed: true) }
let(:project) { create :project, enabled_module_names: %w(bim work_package_tracking) }
let(:open_status) { create(:status, is_closed: false) }
let(:closed_status) { create(:status, is_closed: true) }
let(:wp1) { FactoryBot.create(:work_package, project: project, status: open_status) }
let(:wp2) { FactoryBot.create(:work_package, project: project, status: closed_status) }
let(:wp1) { create(:work_package, project: project, status: open_status) }
let(:wp2) { create(:work_package, project: project, status: closed_status) }
let(:admin) { FactoryBot.create :admin }
let(:admin) { create :admin }
let!(:model) do
FactoryBot.create(:ifc_model_minimal_converted,
create(:ifc_model_minimal_converted,
project: project,
uploader: admin)
end
@@ -32,20 +32,20 @@ describe 'BIM navigation spec',
type: :feature,
with_config: { edition: 'bim' },
js: true do
let(:project) { FactoryBot.create :project, enabled_module_names: %i[bim work_package_tracking] }
let!(:work_package) { FactoryBot.create(:work_package, project: project) }
let(:project) { create :project, enabled_module_names: %i[bim work_package_tracking] }
let!(:work_package) { create(:work_package, project: project) }
let(:role) do
FactoryBot.create(:role, permissions: %i[view_ifc_models manage_ifc_models view_work_packages delete_work_packages])
create(:role, permissions: %i[view_ifc_models manage_ifc_models view_work_packages delete_work_packages])
end
let(:user) do
FactoryBot.create :user,
create :user,
member_in_project: project,
member_through_role: role
end
let(:model) do
FactoryBot.create(:ifc_model_minimal_converted,
create(:ifc_model_minimal_converted,
project: project,
uploader: user)
end
@@ -1,6 +1,6 @@
shared_examples 'can upload an IFC file' do
let(:user) { FactoryBot.create :admin }
let(:project) { FactoryBot.create :project, enabled_module_names: %i[bim] }
let(:user) { create :admin }
let(:project) { create :project, enabled_module_names: %i[bim] }
let(:ifc_fixture) { ::UploadedFile.load_from('modules/bim/spec/fixtures/files/minimal.ifc') }
let(:set_tick_is_default_after_file) { true }
@@ -34,25 +34,25 @@ describe 'model management',
with_config: { edition: 'bim' },
type: :feature,
js: true do
let(:project) { FactoryBot.create :project, enabled_module_names: %i[bim work_package_tracking] }
let(:project) { create :project, enabled_module_names: %i[bim work_package_tracking] }
let(:index_page) { Pages::IfcModels::Index.new(project) }
let(:role) { FactoryBot.create(:role, permissions: %i[view_ifc_models manage_bcf manage_ifc_models view_work_packages]) }
let(:role) { create(:role, permissions: %i[view_ifc_models manage_bcf manage_ifc_models view_work_packages]) }
let(:user) do
FactoryBot.create :user,
create :user,
member_in_project: project,
member_through_role: role
end
let!(:model) do
FactoryBot.create(:ifc_model_minimal_converted,
create(:ifc_model_minimal_converted,
project: project,
uploader: user,
is_default: true)
end
let!(:model2) do
FactoryBot.create(:ifc_model_minimal_converted,
create(:ifc_model_minimal_converted,
project: project,
uploader: user)
end
@@ -88,9 +88,9 @@ describe 'model management',
end
context 'with only viewing permissions' do
let(:view_role) { FactoryBot.create(:role, permissions: %i[view_ifc_models view_work_packages]) }
let(:view_role) { create(:role, permissions: %i[view_ifc_models view_work_packages]) }
let(:view_user) do
FactoryBot.create :user,
create :user,
member_in_project: project,
member_through_role: view_role
end
@@ -121,9 +121,9 @@ describe 'model management',
end
context 'without any permissions' do
let(:no_permissions_role) { FactoryBot.create(:role, permissions: %i[]) }
let(:no_permissions_role) { create(:role, permissions: %i[]) }
let(:user_without_permissions) do
FactoryBot.create :user,
create :user,
member_in_project: project,
member_through_role: no_permissions_role
end
@@ -32,19 +32,19 @@ describe 'model viewer',
with_config: { edition: 'bim' },
type: :feature,
js: true do
let(:project) { FactoryBot.create :project, enabled_module_names: %i[bim work_package_tracking] }
let(:project) { create :project, enabled_module_names: %i[bim work_package_tracking] }
# TODO: Add empty viewpoint and stub method to load viewpoints once defined
let(:work_package) { FactoryBot.create(:work_package, project: project) }
let(:role) { FactoryBot.create(:role, permissions: %i[view_ifc_models manage_ifc_models view_work_packages]) }
let(:work_package) { create(:work_package, project: project) }
let(:role) { create(:role, permissions: %i[view_ifc_models manage_ifc_models view_work_packages]) }
let(:user) do
FactoryBot.create :user,
create :user,
member_in_project: project,
member_through_role: role
end
let!(:model) do
FactoryBot.create(:ifc_model_minimal_converted,
create(:ifc_model_minimal_converted,
project: project,
uploader: user)
end
@@ -103,9 +103,9 @@ describe 'model viewer',
end
context 'with only viewing permissions' do
let(:view_role) { FactoryBot.create(:role, permissions: %i[view_ifc_models view_work_packages view_linked_issues]) }
let(:view_role) { create(:role, permissions: %i[view_ifc_models view_work_packages view_linked_issues]) }
let(:view_user) do
FactoryBot.create :user,
create :user,
member_in_project: project,
member_through_role: view_role
end
@@ -125,9 +125,9 @@ describe 'model viewer',
end
context 'without any permissions' do
let(:no_permissions_role) { FactoryBot.create(:role, permissions: %i[]) }
let(:no_permissions_role) { create(:role, permissions: %i[]) }
let(:user_without_permissions) do
FactoryBot.create :user,
create :user,
member_in_project: project,
member_through_role: no_permissions_role
end
@@ -33,16 +33,16 @@ describe 'BIM Revit Add-in navigation spec',
with_config: { edition: 'bim' },
js: true,
driver: :chrome_revit_add_in do
let(:project) { FactoryBot.create :project, enabled_module_names: %i[bim work_package_tracking] }
let!(:work_package) { FactoryBot.create(:work_package, project: project) }
let(:project) { create :project, enabled_module_names: %i[bim work_package_tracking] }
let!(:work_package) { create(:work_package, project: project) }
let(:role) do
FactoryBot.create(:role,
create(:role,
permissions: %i[view_ifc_models manage_ifc_models add_work_packages edit_work_packages view_work_packages])
end
let(:model_page) { ::Pages::IfcModels::ShowDefault.new(project) }
let(:user) do
FactoryBot.create :user,
create :user,
member_in_project: project,
member_through_role: role
end
@@ -112,11 +112,11 @@ describe 'BIM Revit Add-in navigation spec',
end
context 'Creating BCFs' do
let!(:status) { FactoryBot.create(:default_status) }
let!(:priority) { FactoryBot.create :priority, is_default: true }
let!(:status) { create(:default_status) }
let!(:priority) { create :priority, is_default: true }
it 'redirects correctly' do
create_page = model_page.create_wp_by_button(FactoryBot.build(:type_standard))
create_page = model_page.create_wp_by_button(build(:type_standard))
expect(page).to have_current_path /bcf\/new$/, ignore_query: true
create_page.subject_field.set('Some subject')
create_page.save!
@@ -33,16 +33,16 @@ describe 'BIM Revit Add-in navigation spec',
with_config: { edition: 'bim' },
js: true,
driver: :chrome_revit_add_in do
let(:project) { FactoryBot.create :project, enabled_module_names: %i[bim work_package_tracking] }
let!(:work_package) { FactoryBot.create(:work_package, project: project) }
let(:project) { create :project, enabled_module_names: %i[bim work_package_tracking] }
let!(:work_package) { create(:work_package, project: project) }
let(:role) do
FactoryBot.create(:role,
create(:role,
permissions: %i[view_ifc_models manage_ifc_models add_work_packages edit_work_packages view_work_packages])
end
let(:wp_table) { ::Pages::WorkPackagesTable.new(project) }
let(:user) do
FactoryBot.create :user,
create :user,
member_in_project: project,
member_through_role: role
end
@@ -32,19 +32,19 @@ describe 'show default model',
with_config: { edition: 'bim' },
type: :feature,
js: true do
let(:project) { FactoryBot.create :project, enabled_module_names: %i[bim work_package_tracking] }
let(:project) { create :project, enabled_module_names: %i[bim work_package_tracking] }
let(:index_page) { Pages::IfcModels::Index.new(project) }
let(:show_default_page) { Pages::IfcModels::ShowDefault.new(project) }
let(:role) { FactoryBot.create(:role, permissions: %i[view_ifc_models view_work_packages manage_ifc_models]) }
let(:role) { create(:role, permissions: %i[view_ifc_models view_work_packages manage_ifc_models]) }
let(:user) do
FactoryBot.create :user,
create :user,
member_in_project: project,
member_through_role: role
end
let(:model) do
FactoryBot.create(:ifc_model_minimal_converted,
create(:ifc_model_minimal_converted,
is_default: model_is_default,
project: project,
uploader: user)
@@ -58,7 +58,7 @@ describe 'show default model',
end
context 'when the work package module not loaded' do
let(:project) { FactoryBot.create :project, enabled_module_names: [:bim] }
let(:project) { create :project, enabled_module_names: [:bim] }
it 'shows an error loading the page' do
show_default_page.visit!
@@ -67,8 +67,8 @@ describe 'show default model',
end
context 'with everything ready' do
let(:old_work_package) { FactoryBot.create(:work_package, project: project) }
let(:new_work_package) { FactoryBot.create(:work_package, project: project) }
let(:old_work_package) { create(:work_package, project: project) }
let(:new_work_package) { create(:work_package, project: project) }
before do
old_work_package
@@ -32,11 +32,11 @@ describe 'Create viewpoint from BCF details page',
type: :feature,
with_config: { edition: 'bim' },
js: true do
let(:project) { FactoryBot.create :project, enabled_module_names: %i[bim work_package_tracking] }
let(:user) { FactoryBot.create :admin }
let(:project) { create :project, enabled_module_names: %i[bim work_package_tracking] }
let(:user) { create :admin }
let!(:model) do
FactoryBot.create(:ifc_model_minimal_converted,
create(:ifc_model_minimal_converted,
title: 'minimal',
project: project,
uploader: user)
@@ -98,14 +98,14 @@ describe 'Create viewpoint from BCF details page',
end
context 'with a work package with BCF' do
let!(:work_package) { FactoryBot.create(:work_package, project: project) }
let!(:bcf) { FactoryBot.create :bcf_issue, work_package: work_package }
let!(:work_package) { create(:work_package, project: project) }
let!(:bcf) { create :bcf_issue, work_package: work_package }
it_behaves_like 'can create a viewpoint from the BCF details page'
end
context 'with a work package without BCF' do
let!(:work_package) { FactoryBot.create(:work_package, project: project) }
let!(:work_package) { create(:work_package, project: project) }
it_behaves_like 'can create a viewpoint from the BCF details page'
end
@@ -32,15 +32,15 @@ describe 'Delete viewpoint in model viewer',
with_config: { edition: 'bim' },
type: :feature,
js: true do
let(:project) { FactoryBot.create :project, enabled_module_names: %i[bim work_package_tracking] }
let(:user) { FactoryBot.create :admin }
let(:project) { create :project, enabled_module_names: %i[bim work_package_tracking] }
let(:user) { create :admin }
let!(:work_package) { FactoryBot.create(:work_package, project: project) }
let!(:bcf) { FactoryBot.create :bcf_issue, work_package: work_package }
let!(:viewpoint) { FactoryBot.create :bcf_viewpoint, issue: bcf, viewpoint_name: 'minimal_hidden_except_one' }
let!(:work_package) { create(:work_package, project: project) }
let!(:bcf) { create :bcf_issue, work_package: work_package }
let!(:viewpoint) { create :bcf_viewpoint, issue: bcf, viewpoint_name: 'minimal_hidden_except_one' }
let!(:model) do
FactoryBot.create(:ifc_model_minimal_converted,
create(:ifc_model_minimal_converted,
title: 'minimal',
project: project,
uploader: user)
@@ -33,19 +33,19 @@ describe 'Show viewpoint in model viewer',
type: :feature,
js: true do
let(:project) do
FactoryBot.create(:project,
create(:project,
enabled_module_names: %i[bim work_package_tracking],
parent: parent_project)
end
let(:parent_project) { nil }
let(:user) { FactoryBot.create :admin }
let(:user) { create :admin }
let!(:work_package) { FactoryBot.create(:work_package, project: project) }
let!(:bcf) { FactoryBot.create :bcf_issue, work_package: work_package }
let!(:viewpoint) { FactoryBot.create :bcf_viewpoint, issue: bcf, viewpoint_name: 'minimal_hidden_except_one' }
let!(:work_package) { create(:work_package, project: project) }
let!(:bcf) { create :bcf_issue, work_package: work_package }
let!(:viewpoint) { create :bcf_viewpoint, issue: bcf, viewpoint_name: 'minimal_hidden_except_one' }
let!(:model) do
FactoryBot.create(:ifc_model_minimal_converted,
create(:ifc_model_minimal_converted,
title: 'minimal',
project: project,
uploader: user)
@@ -129,7 +129,7 @@ describe 'Show viewpoint in model viewer',
end
context "current project is a parent of the work package's project" do
let(:parent_project) { FactoryBot.create :project, enabled_module_names: [:work_package_tracking] }
let(:parent_project) { create :project, enabled_module_names: [:work_package_tracking] }
let(:wp_details) { ::Pages::SplitWorkPackage.new(work_package, parent_project) }
it_behaves_like "moves to the BCF page"
@@ -139,7 +139,7 @@ describe 'Show viewpoint in model viewer',
let(:permissions) { %i[view_ifc_models view_work_packages] }
let(:user) do
FactoryBot.create(:user,
create(:user,
member_in_project: project,
member_with_permissions: permissions)
end
@@ -33,11 +33,11 @@ require Rails.root + 'spec/lib/api/v3/work_packages/eager_loading/eager_loading_
describe ::API::V3::WorkPackages::EagerLoading::Checksum do
let!(:bcf_issue) do
FactoryBot.create(:bcf_issue,
create(:bcf_issue,
work_package: work_package)
end
let!(:work_package) do
FactoryBot.create(:work_package)
create(:work_package)
end
describe '.apply' do
@@ -57,7 +57,7 @@ describe ::API::V3::WorkPackages::EagerLoading::Checksum do
it 'produces a different checksum on changes to the bcf issue id' do
bcf_issue.delete
FactoryBot.create(:bcf_issue,
create(:bcf_issue,
work_package: work_package)
expect(new_checksum)
@@ -35,7 +35,7 @@ describe OpenProject::Bim::BcfJson::ViewpointReader do
describe 'with empty example' do
let_it_be(:xml_viewpoint) do
FactoryBot.build_stubbed :xml_viewpoint, viewpoint_name: 'empty.bcfv'
build_stubbed :xml_viewpoint, viewpoint_name: 'empty.bcfv'
end
it_behaves_like 'matches the JSON counterpart'
@@ -43,7 +43,7 @@ describe OpenProject::Bim::BcfJson::ViewpointReader do
describe 'with minimal example' do
let_it_be(:xml_viewpoint) do
FactoryBot.build_stubbed :xml_viewpoint, viewpoint_name: 'minimal.bcfv'
build_stubbed :xml_viewpoint, viewpoint_name: 'minimal.bcfv'
end
it_behaves_like 'viewpoint keys'
@@ -54,7 +54,7 @@ describe OpenProject::Bim::BcfJson::ViewpointReader do
describe 'with full viewpoint' do
let_it_be(:xml_viewpoint) do
FactoryBot.build_stubbed :xml_viewpoint, viewpoint_name: 'full_viewpoint.bcfv'
build_stubbed :xml_viewpoint, viewpoint_name: 'full_viewpoint.bcfv'
end
it_behaves_like 'viewpoint keys'
@@ -71,7 +71,7 @@ describe OpenProject::Bim::BcfJson::ViewpointReader do
describe 'with real-world neuhaus_sc_1 example' do
let_it_be(:xml_viewpoint) do
FactoryBot.build_stubbed :xml_viewpoint, viewpoint_name: 'neubau_sc_1.bcfv'
build_stubbed :xml_viewpoint, viewpoint_name: 'neubau_sc_1.bcfv'
end
it_behaves_like 'viewpoint keys'
@@ -83,7 +83,7 @@ describe OpenProject::Bim::BcfJson::ViewpointReader do
describe 'with empty XML nodes' do
let_it_be(:xml_viewpoint) do
FactoryBot.build_stubbed :xml_viewpoint, viewpoint_name: 'empty_nodes.bcfv'
build_stubbed :xml_viewpoint, viewpoint_name: 'empty_nodes.bcfv'
end
it 'ignores empty nodes' do
@@ -63,10 +63,10 @@ describe OpenProject::Bim::BcfXml::ViewpointWriter do
describe 'with minimal example' do
let_it_be(:json_resource) do
FactoryBot.build_stubbed :bcf_viewpoint, uuid: '{{UUID}}', viewpoint_name: 'minimal.bcfv'
build_stubbed :bcf_viewpoint, uuid: '{{UUID}}', viewpoint_name: 'minimal.bcfv'
end
let_it_be(:xml_resource) do
FactoryBot.build_stubbed :xml_viewpoint, uuid: '{{UUID}}', viewpoint_name: 'minimal.bcfv'
build_stubbed :xml_viewpoint, uuid: '{{UUID}}', viewpoint_name: 'minimal.bcfv'
end
it_behaves_like 'converts back to xml'
@@ -74,10 +74,10 @@ describe OpenProject::Bim::BcfXml::ViewpointWriter do
describe 'with full viewpoint' do
let_it_be(:json_resource) do
FactoryBot.build_stubbed :bcf_viewpoint, uuid: '{{UUID}}', viewpoint_name: 'full_viewpoint.bcfv'
build_stubbed :bcf_viewpoint, uuid: '{{UUID}}', viewpoint_name: 'full_viewpoint.bcfv'
end
let_it_be(:xml_resource) do
FactoryBot.build_stubbed :xml_viewpoint, uuid: '{{UUID}}', viewpoint_name: 'full_viewpoint.bcfv'
build_stubbed :xml_viewpoint, uuid: '{{UUID}}', viewpoint_name: 'full_viewpoint.bcfv'
end
it_behaves_like 'converts back to xml'
@@ -85,10 +85,10 @@ describe OpenProject::Bim::BcfXml::ViewpointWriter do
describe 'with real-world neuhaus_sc_1 example' do
let_it_be(:json_resource) do
FactoryBot.build_stubbed :bcf_viewpoint, uuid: '{{UUID}}', viewpoint_name: 'neubau_sc_1.bcfv'
build_stubbed :bcf_viewpoint, uuid: '{{UUID}}', viewpoint_name: 'neubau_sc_1.bcfv'
end
let_it_be(:xml_resource) do
FactoryBot.build_stubbed :xml_viewpoint, uuid: '{{UUID}}', viewpoint_name: 'neubau_sc_1_fixed.bcfv'
build_stubbed :xml_viewpoint, uuid: '{{UUID}}', viewpoint_name: 'neubau_sc_1_fixed.bcfv'
end
it_behaves_like 'converts back to xml'
@@ -40,9 +40,9 @@ describe OpenProject::Bim::WorkPackage::Exporter::Formatters::BcfThumbnail do
end
describe '::format' do
let(:work_package_with_viewpoint) { FactoryBot.create(:work_package) }
let(:bcf_issue) { FactoryBot.create(:bcf_issue_with_viewpoint, work_package: work_package_with_viewpoint) }
let(:work_package_without_viewpoint) { FactoryBot.create(:work_package) }
let(:work_package_with_viewpoint) { create(:work_package) }
let(:bcf_issue) { create(:bcf_issue_with_viewpoint, work_package: work_package_with_viewpoint) }
let(:work_package_without_viewpoint) { create(:work_package) }
before do
bcf_issue
+5 -5
View File
@@ -29,9 +29,9 @@
require 'spec_helper'
describe ::Bim::Bcf::Issue, type: :model do
let(:type) { FactoryBot.create :type, name: "Issue [BCF]" }
let(:work_package) { FactoryBot.create :work_package, type: type }
let(:issue) { FactoryBot.create :bcf_issue, work_package: work_package }
let(:type) { create :type, name: "Issue [BCF]" }
let(:work_package) { create :work_package, type: type }
let(:issue) { create :bcf_issue, work_package: work_package }
context '#markup_doc' do
subject { issue }
@@ -54,8 +54,8 @@ describe ::Bim::Bcf::Issue, type: :model do
end
describe '.of_project' do
let!(:other_work_package) { FactoryBot.create :work_package, type: type }
let!(:other_issue) { FactoryBot.create :bcf_issue, work_package: other_work_package }
let!(:other_work_package) { create :work_package, type: type }
let!(:other_issue) { create :bcf_issue, work_package: other_work_package }
it 'returns all issues of the provided project' do
expect(described_class.of_project(issue.project))
+4 -4
View File
@@ -5,7 +5,7 @@ describe ::Bim::IfcModels::IfcModel, type: :model do
let(:params) { { title: 'foo', is_default: true } }
describe 'converted?' do
let(:attachment) { FactoryBot.build :attachment }
let(:attachment) { build :attachment }
it 'is converted when the xkt attachment is present' do
expect(subject).not_to be_converted
@@ -16,14 +16,14 @@ describe ::Bim::IfcModels::IfcModel, type: :model do
end
describe 'ifc_attachment=' do
let(:project) { FactoryBot.create(:project, enabled_module_names: %i[bim]) }
let(:project) { create(:project, enabled_module_names: %i[bim]) }
let(:ifc_attachment) { subject.ifc_attachment }
let(:new_attachment) do
FileHelpers.mock_uploaded_file name: "model.ifc", content_type: 'application/binary', binary: true
end
subject { FactoryBot.create :ifc_model_minimal_converted, project: project }
subject { create :ifc_model_minimal_converted, project: project }
current_user do
FactoryBot.create :user,
create :user,
member_in_project: project,
member_with_permissions: %i[manage_ifc_models]
end
@@ -29,7 +29,7 @@
require 'spec_helper'
describe Queries::Views::Filters::TypeFilter, type: :model do
let(:current_user) { FactoryBot.create(:user) }
let(:current_user) { create(:user) }
before do
login_as(current_user)
+1 -1
View File
@@ -29,7 +29,7 @@
require 'spec_helper'
describe Type, type: :model do
let(:type) { FactoryBot.create :type, name: "Issue" }
let(:type) { create :type, name: "Issue" }
it 'bcf_thumbnail is available as a WorkPackageRepresenter attribute' do
expect(API::V3::WorkPackages::Schema::WorkPackageSchemaRepresenter.representable_attrs.keys).to(
@@ -31,15 +31,15 @@ require 'spec_helper'
require_relative '../shared_examples'
describe Bim::Bcf::API::V2_1::ProjectExtensions::Representer, 'rendering' do
let(:type_task) { FactoryBot.build_stubbed :type_task, name: 'My BCF type' }
let(:status) { FactoryBot.build_stubbed(:status) }
let(:user) { FactoryBot.build_stubbed(:user) }
let(:type_task) { build_stubbed :type_task, name: 'My BCF type' }
let(:status) { build_stubbed(:status) }
let(:user) { build_stubbed(:user) }
let(:project) do
FactoryBot.build_stubbed(:project)
build_stubbed(:project)
end
let(:work_package) { FactoryBot.build_stubbed(:stubbed_work_package, project: project) }
let(:priority) { FactoryBot.build_stubbed(:priority) }
let(:user) { FactoryBot.build_stubbed(:user) }
let(:work_package) { build_stubbed(:stubbed_work_package, project: project) }
let(:priority) { build_stubbed(:priority) }
let(:user) { build_stubbed(:user) }
let(:contract) do
double('contract',
user: user,
@@ -31,7 +31,7 @@ require 'spec_helper'
require_relative '../shared_examples'
describe Bim::Bcf::API::V2_1::Projects::SingleRepresenter, 'rendering' do
let(:project) { FactoryBot.build_stubbed(:project) }
let(:project) { build_stubbed(:project) }
let(:instance) { described_class.new(project) }
@@ -33,17 +33,17 @@ require_relative '../shared_examples'
describe Bim::Bcf::API::V2_1::Topics::SingleRepresenter, 'rendering' do
include API::V3::Utilities::PathHelper
let(:assignee) { FactoryBot.build_stubbed(:user) }
let(:creator) { FactoryBot.build_stubbed(:user) }
let(:modifier) { FactoryBot.build_stubbed(:user) }
let(:first_journal) { FactoryBot.build_stubbed(:journal, version: 1, user: creator) }
let(:last_journal) { FactoryBot.build_stubbed(:journal, version: 2, user: modifier) }
let(:assignee) { build_stubbed(:user) }
let(:creator) { build_stubbed(:user) }
let(:modifier) { build_stubbed(:user) }
let(:first_journal) { build_stubbed(:journal, version: 1, user: creator) }
let(:last_journal) { build_stubbed(:journal, version: 2, user: modifier) }
let(:journals) { [first_journal, last_journal] }
let(:type) { FactoryBot.build_stubbed(:type) }
let(:status) { FactoryBot.build_stubbed(:status) }
let(:priority) { FactoryBot.build_stubbed(:priority) }
let(:type) { build_stubbed(:type) }
let(:status) { build_stubbed(:status) }
let(:priority) { build_stubbed(:priority) }
let(:work_package) do
FactoryBot.build_stubbed(:stubbed_work_package,
build_stubbed(:stubbed_work_package,
assigned_to: assignee,
due_date: Date.today,
status: status,
@@ -54,13 +54,13 @@ describe Bim::Bcf::API::V2_1::Topics::SingleRepresenter, 'rendering' do
.and_return(journals)
end
end
let(:current_user) { FactoryBot.build_stubbed(:user) }
let(:issue) { FactoryBot.build_stubbed(:bcf_issue, work_package: work_package) }
let(:current_user) { build_stubbed(:user) }
let(:issue) { build_stubbed(:bcf_issue, work_package: work_package) }
let(:manage_bcf_allowed) { true }
let(:statuses) do
[
FactoryBot.build_stubbed(:status),
FactoryBot.build_stubbed(:status)
build_stubbed(:status),
build_stubbed(:status)
]
end
@@ -31,7 +31,7 @@ require 'spec_helper'
require_relative '../shared_examples'
describe Bim::Bcf::API::V2_1::Users::SingleRepresenter, 'rendering' do
let(:user) { FactoryBot.build_stubbed(:user) }
let(:user) { build_stubbed(:user) }
let(:instance) { described_class.new(user) }
@@ -31,7 +31,7 @@ require 'spec_helper'
require_relative '../shared_examples'
describe Bim::Bcf::API::V2_1::Viewpoints::SingleRepresenter, 'rendering' do
let(:viewpoint) { FactoryBot.build_stubbed(:bcf_viewpoint) }
let(:viewpoint) { build_stubbed(:bcf_viewpoint) }
let(:instance) { described_class.new(viewpoint) }
subject { instance.to_json }
@@ -35,7 +35,7 @@ describe 'BCF 2.1 auth resource', type: :request, content_type: :json do
include Rack::Test::Methods
let(:current_user) do
FactoryBot.create(:user)
create(:user)
end
subject(:response) { last_response }
@@ -36,36 +36,36 @@ describe 'BCF 2.1 comments resource', type: :request, content_type: :json, with_
include API::V3::Utilities::PathHelper
let(:project) do
FactoryBot.create(:project, enabled_module_names: %i[bim work_package_tracking])
create(:project, enabled_module_names: %i[bim work_package_tracking])
end
let(:view_only_user) do
FactoryBot.create(:user,
create(:user,
member_in_project: project,
member_with_permissions: %i[view_linked_issues view_work_packages])
end
let(:edit_user) do
FactoryBot.create(:user,
create(:user,
member_in_project: project,
member_with_permissions: %i[view_linked_issues view_work_packages manage_bcf])
end
let(:user_without_permission) { FactoryBot.create(:user, member_in_project: project) }
let(:user_without_permission) { create(:user, member_in_project: project) }
let(:assignee) { FactoryBot.create(:user) }
let(:assignee) { create(:user) }
let(:work_package) do
FactoryBot.create(:work_package, assigned_to: assignee, due_date: Time.zone.today, project: project)
create(:work_package, assigned_to: assignee, due_date: Time.zone.today, project: project)
end
let(:bcf_issue) { FactoryBot.create(:bcf_issue_with_viewpoint, work_package: work_package) }
let(:bcf_issue) { create(:bcf_issue_with_viewpoint, work_package: work_package) }
let(:viewpoint) { bcf_issue.viewpoints.first }
let(:bcf_comment) { FactoryBot.create(:bcf_comment, issue: bcf_issue, author: view_only_user) }
let(:bcf_answer) { FactoryBot.create(:bcf_comment, issue: bcf_issue, reply_to: bcf_comment, author: assignee) }
let(:bcf_comment) { create(:bcf_comment, issue: bcf_issue, author: view_only_user) }
let(:bcf_answer) { create(:bcf_comment, issue: bcf_issue, reply_to: bcf_comment, author: assignee) }
let(:bcf_comment_to_viewpoint) do
FactoryBot.create(:bcf_comment, issue: bcf_issue, viewpoint: viewpoint, author: edit_user)
create(:bcf_comment, issue: bcf_issue, viewpoint: viewpoint, author: edit_user)
end
subject(:response) { last_response }
@@ -562,7 +562,7 @@ describe 'BCF 2.1 comments resource', type: :request, content_type: :json, with_
context 'if the updated comment contains viewpoint reference and is a reply, but update does not set those attributes' do
let(:updated_comment) do
FactoryBot.create(:bcf_comment,
create(:bcf_comment,
issue: bcf_issue,
viewpoint: viewpoint,
reply_to: bcf_comment,
@@ -35,7 +35,7 @@ describe 'BCF 2.1 current-user resource', type: :request, content_type: :json do
include Rack::Test::Methods
let(:current_user) do
FactoryBot.create(:user)
create(:user)
end
subject(:response) { last_response }
@@ -33,17 +33,17 @@ require_relative './shared_responses'
describe 'BCF 2.1 project extensions resource', type: :request, content_type: :json do
include Rack::Test::Methods
shared_let(:type_task) { FactoryBot.create :type_task }
shared_let(:status) { FactoryBot.create :default_status }
shared_let(:priority) { FactoryBot.create :default_priority }
shared_let(:project) { FactoryBot.create(:project, enabled_module_names: [:bim], types: [type_task]) }
shared_let(:type_task) { create :type_task }
shared_let(:status) { create :default_status }
shared_let(:priority) { create :default_priority }
shared_let(:project) { create(:project, enabled_module_names: [:bim], types: [type_task]) }
subject(:response) { last_response }
let(:path) { "/api/bcf/2.1/projects/#{project.id}/extensions" }
context 'with only view_project permissions' do
let(:current_user) do
FactoryBot.create(:user,
create(:user,
member_in_project: project,
member_with_permissions: [:view_project])
end
@@ -73,13 +73,13 @@ describe 'BCF 2.1 project extensions resource', type: :request, content_type: :j
context 'with edit permissions in project' do
let(:current_user) do
FactoryBot.create(:user,
create(:user,
member_in_project: project,
member_with_permissions: %i[view_project edit_project manage_bcf view_members])
end
let(:other_user) do
FactoryBot.create(:user,
create(:user,
member_in_project: project,
member_with_permissions: [:view_project])
end
@@ -35,19 +35,19 @@ describe 'BCF 2.1 projects resource', type: :request, content_type: :json do
include Rack::Test::Methods
let(:view_only_user) do
FactoryBot.create(:user,
create(:user,
member_in_project: project)
end
let(:edit_user) do
FactoryBot.create(:user,
create(:user,
member_in_project: project,
member_with_permissions: [:edit_project])
end
let(:non_member_user) do
FactoryBot.create(:user)
create(:user)
end
let(:project) { FactoryBot.create(:project, enabled_module_names: [:bim]) }
let(:project) { create(:project, enabled_module_names: [:bim]) }
subject(:response) { last_response }
@@ -128,10 +128,10 @@ describe 'BCF 2.1 projects resource', type: :request, content_type: :json do
describe 'GET /api/bcf/2.1/projects' do
let(:path) { "/api/bcf/2.1/projects" }
let(:current_user) { view_only_user }
let!(:invisible_project) { FactoryBot.create(:project, enabled_module_names: [:bcf]) }
let!(:invisible_project) { create(:project, enabled_module_names: [:bcf]) }
let!(:non_bcf_project) do
FactoryBot.create(:project, enabled_module_names: [:work_packages]).tap do |p|
FactoryBot.create(:member,
create(:project, enabled_module_names: [:work_packages]).tap do |p|
create(:member,
project: p,
user: view_only_user,
roles: view_only_user.members.first.roles)

Some files were not shown because too many files have changed in this diff Show More