mirror of
https://github.com/opf/openproject.git
synced 2026-06-14 03:30:14 +00:00
Remove FactoryBot.* prefix where applicable
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) }
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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) }
|
||||
|
||||
@@ -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
|
||||
|
||||
+23
-23
@@ -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
|
||||
|
||||
@@ -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}")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
+3
-3
@@ -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'
|
||||
|
||||
+3
-3
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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,
|
||||
|
||||
+1
-1
@@ -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) }
|
||||
|
||||
|
||||
+13
-13
@@ -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
|
||||
|
||||
|
||||
+1
-1
@@ -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) }
|
||||
|
||||
|
||||
+1
-1
@@ -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
Reference in New Issue
Block a user