Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add factorybot box traits #430

Open
wants to merge 8 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 77 additions & 0 deletions spec/factories/box.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,82 @@
FactoryBot.define do
factory :box do

box_request

trait :reviewed do
box_request {(create(:box_request, :reviewed))}
end

trait :design_in_progress do
after(:create) { |box| box.check_has_box_items }
reviewed
aasm_state { "design_in_progress"}
designed_by_id {create(:user, :designer).id}
design_reviewed_by_id {create(:user, :reviewer).id}
design_reviewed_at { Time.now }
end

trait :designed_no_research do
design_in_progress
designed_at { Time.now }
aasm_state { "designed"}
box_items {create_list(:box_item, 1, :no_research_needed)}
end

trait :designed_needs_research do
design_in_progress
designed_at { Time.now }
aasm_state { "designed"}
box_items {create_list(:box_item, 1, :research_needed)}
RachelWyatt marked this conversation as resolved.
Show resolved Hide resolved
end

trait :research_in_progress do
designed_needs_research
aasm_state {"research_in_progress"}
researched_by_id {create(:user, :researcher).id}
end

trait :researched do
research_in_progress
after(:build) { |box| box.mark_box_items_as_researched! }
aasm_state {"researched"}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should roll up from box_items, which each have researched_at, and a box is "researched" (and should get its own researched_at populated when all of its box_items are researched (or are box_items that don't need research. most items don't need research -- this is for those community references and personalized stuff.)

end

trait :assembly_in_progress do
researched
aasm_state {"assembly_in_progress"}
assembled_by_id {create(:user, :assembler).id}
end

trait :assembled do
assembly_in_progress
aasm_state {"assembled"}
RachelWyatt marked this conversation as resolved.
Show resolved Hide resolved
assembled_at { Time.now }
end

trait :shipping_in_progress do
assembled
aasm_state {"shipping_in_progress"}
shipped_by_id {create(:user, :shipper).id}
end

trait :shipped do
shipping_in_progress
aasm_state {"shipped"}
RachelWyatt marked this conversation as resolved.
Show resolved Hide resolved
shipped_at { Time.now }
end

trait :follow_up_in_progress do
shipping_in_progress
aasm_state {"follow_up_in_progress"}
followed_up_by_id {create(:user, :follow_upper).id}
end

trait :followed_up do
follow_up_in_progress
aasm_state {"followed_up"}
RachelWyatt marked this conversation as resolved.
Show resolved Hide resolved
followed_up_at { Time.now }
end

end
end
14 changes: 14 additions & 0 deletions spec/factories/box_item.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,19 @@
inventory_type
created_by
updated_by

RachelWyatt marked this conversation as resolved.
Show resolved Hide resolved
trait :research_needed do
inventory_type {create(:inventory_type, :needs_research)}
end

trait :no_research_needed do
inventory_type {create(:inventory_type, :no_research)}
end

trait :researched do
research_needed
researched_at { Time.now }
end

end
end
13 changes: 13 additions & 0 deletions spec/factories/box_request.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,19 @@
factory :box_request, aliases: [:messageable] do
requester

trait :review_in_progress do
reviewed_by_id {create(:user, :reviewer).id}
reviewed_at {Time.now}
end

trait :reviewed do
box
reviewed_by_id {create(:user, :reviewer).id}
reviewed_at {Time.now}
aasm_state {"reviewed"}
end


summary { "This is a summary." }
question_re_affect { "Question re effect." }
question_re_referral_source { "Question about referral source." }
Expand Down
11 changes: 11 additions & 0 deletions spec/factories/inventory_type.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,16 @@
factory :inventory_type do
name { Faker::House.furniture.titleize }
description { Faker::Lorem.sentence }

trait :needs_research do
description {"An inventory type that needs research"}
requires_research {true}
end

trait :no_research do
description {"An inventory type that doesn't need research"}
requires_research {false}
end

end
end
Loading